2016-12-04 159 views
0

我有一個名爲df3的火車數據集。它是一個數據表。預測誤差Xgboost R

我將其轉換爲稀疏矩陣如下:

sparse_matrix9 = sparse.model.matrix(ind_cco_fin_ult1~canal_entrada + 
            nomprov + 
            sexo + 
            ind_empleado + 
            indext + age + fark + ind_actividad_cliente 
           ,data = df3) 

和我一起xgboost仿照它:

bst10_X <- xgboost(data = sparse_matrix9, label = output, max_depth = 15, 
      eta = 0.03, nthread = 2, nrounds = 550,prediction=TRUE, eval_metric = "auc",objective = "binary:logistic") 

#train-auc:0.881950+0.000475 test-auc:0.819496+0.001057 

之後,我想預測的測試數據集。 首先我chosed我的變量,並使其成爲數據幀:

test4<-as.data.frame(
     test3$canal_entrada, 
     test3$nomprov, 
     test3$sexo, 
     test3$ind_empleado, 
     test3$indext, 
     test3$age, 
     test3$fark, 
     test3$ind_actividad_cliente 
) 

之後,我想將其轉換爲稀疏矩陣:

sparse_matrix_test = xgb.DMatrix(data.matrix(test4)) 

和預測的測試數據集值:

res <- predict(bst10_X, newdata = sparse_matrix_test) 

但它給我的預測只有一個獨特的價值:

unique(res) 
0.00113265 

爲什麼它只給我一個價值?我錯在哪裏?如何使用訓練好的模型預測測試數據集?

謝謝。

回答

0

如果您提供的測試和訓練的繪製,然後它會幫助一個小數據集。你的問題可能在代碼中,或者可能在數據中。如果您首先使用一些非稀疏數據開發模型,會發生什麼情況。如果這個模型運行良好,那麼你可能會得到一個線索。