我有一个名为df3的火车数据集。它是一个数据表。
我将其转换为稀疏矩阵,如下所示:
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
之后我想预测测试数据集。 首先,我选择了我的变量并将它们作为数据框:
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 :(得分:0)
如果您提供一个小型数据集来绘制测试和火车,那么它会有所帮助。您的问题可能在代码中,也可能在数据中。如果您首先使用一些非稀疏数据开发模型会发生什么。如果这个模型运行正常,那么你可能会得到一个线索。