【问题标题】:Cannot extractPrediction using caret in R无法在 R 中使用插入符号提取预测
【发布时间】:2013-12-07 02:35:19
【问题描述】:

我完全被随机森林分类模型困住了,因为我无法提取预测。而且我真的没有线索,因为:

predict(forest.model1, titanic.final.test)

像魅力一样工作,而

extractPrediction(list(forest.model1), testX=titanic.final.test[,-2], testY=titanic.final.test[,2])

这应该是等效的,给我这个错误:

Error in predict.randomForest(modelFit, newdata) : 
  variables in the training data missing in newdata

这是我的 trainControl:

forest.fitControl <- trainControl( method = "repeatedcv", repeats = 5, 
summaryFunction = twoClassSummary, classProbs=TRUE,
returnData=TRUE, seeds=NULL, savePredictions=TRUE, returnResamp="all")

有什么想法吗?

【问题讨论】:

    标签: r machine-learning random-forest


    【解决方案1】:

    Test 和 Train 需要具有相同的结构(即所有相同的列)。所以我唯一的猜测是否定第二列会导致数据用于训练模型的结构不同。如果不查看训练与测试数据帧的结构,很难知道。

    查看代码后编辑: 从您的回购中重新创建了它...当然它不应该是您为 testX 提取并用于 testY 的第一列。比如:

    extractPrediction(list(forest.model1), testX=titanic.final.test[,-1], testY=titanic.final.test[,1])
    

    【讨论】:

    • 你完全正确;这只是一个列选择问题,我完全被蒙蔽了。很多时候,更简单的解释是最好的解释! Tnx 分配!
    • 太棒了!我只是重新阅读了所有内容,并意识到我对 extractPrediction() 所做的事情并不了解。相同的想法,但列选择已关闭。
    • 很遗憾我说得太早了。我仔细检查了训练和测试集的列数完全相同。我完全确定这一点。但仍然得到同样的错误......
    • 同号同名?为了使预测起作用,名称需要完全匹配。
    • 跟进问题,因为我不熟悉caret,extractPrediction 本身不能提供什么预测?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2017-12-21
    • 2016-04-22
    • 2019-04-15
    • 2015-06-27
    • 2018-02-26
    相关资源
    最近更新 更多