在测试数据集中使用预测函数时,因子名称具有新的级别

时间:2017-06-13 14:08:02

标签: r decision-tree predict

我正在尝试解决来自kaggle的泰坦尼克数据集。 我几乎完成了关于列车数据集的所有工作 火车(12个变量891个障碍物) 测试(11个变量中的418个障碍物)

我使用了决策树(rpart方法)

混淆矩阵(pred_train,火车$幸存) 混淆矩阵和统计

#fake data with names similiar to question vars
pca_explained <- sort(abs(rnorm(12)), decreasing = TRUE)
col_names     <- paste0("P", seq_along(pca_explained))

#plotly call with factor(x, levels=x)
plotly::plot_ly(type = "bar", 
                x    = factor(col_names, levels=col_names), 
                y    = pca_explained)

我使用 Reference Prediction 0 1 0 549 0 1 0 342 Accuracy : 1 95% CI : (0.996, 1) No Information Rate : 0.616 P-Value [Acc > NIR] : <0.0000000000000002 Kappa : 1 Mcnemar's Test P-Value : NA Sensitivity : 1.000 Specificity : 1.000 Pos Pred Value : 1.000 Neg Pred Value : 1.000 Prevalence : 0.616 Detection Rate : 0.616 Detection Prevalence : 0.616 Balanced Accuracy : 1.000 'Positive' Class : 0

  

model.frame.default中的错误(条款,newdata,na.action = na.action,   xlev = attr(object,:factor名称有新级别Abbott,Master。   E. ..

如何解决这个问题,因为列车和测试数据集(891和418)的观察结果不同,我已经从列车数据集中删除了标识符(passengerId)

1 个答案:

答案 0 :(得分:0)

在训练之前,您需要rbind测试并训练然后使用因子并提取“新”列车并测试所有因子水平