不,因为当你运行时caret::confusionMatrix (data.testTree, testing $ money.gain)
告诉我:数据不能超过参考水平。
我已经运行了这些命令:
cvControl <- trainControl(method = "repeatedcv" number = 10, repeats = 5)
tree.rpart <- caret::train(form.in,data=training,method="rpart",
metric="money.gain",trControl=cvControl)
对于整个测试运行以下命令:
testing <- testing[complete.cases(testing),]
data.testTree <- caret::predict.train(tree.rpart, NewData = testing)
现在我们必须最终确定使用混淆矩阵获得的结果:
caret::confusionMatrix(data.testTree, testing$money.gain)
identical (levels(testing$money.gain), levels(testing$money.gain))
[1] TRUE
答案 0 :(得分:0)
您的dataTest.tree对象可能不包含您预测的类,因为caret :: predict.train函数的选项是&#39; newdata&#39;不是&#39; NewData&#39;就像你拥有它一样。尝试将该行更改为:
dataTest.tree&lt; - caret :: predict.train(tree.part,newdata = testing)
此外,在此后的行中,相同的功能是比较相同的东西,并始终返回TRUE结果。我假设您想要比较预测函数的结果和测试数据集响应级别。我打赌,如果你改变了,那一行的结果将是一个假。