2016-12-04 101 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

如果您提供的测试和训练的绘制,然后它会帮助一个小数据集。你的问题可能在代码中,或者可能在数据中。如果您首先使用一些非稀疏数据开发模型,会发生什么情况。如果这个模型运行良好,那么你可能会得到一个线索。