我运行了一个预测随机森林模型。当我运行下面的代码时,我得到两个不同的混淆矩阵 - 唯一的区别是我在预测函数中使用data = train,而我只使用'train'。为什么会产生这样的差异 - 对一个人的回忆会更糟糕。
conf.matrix <- table(train$Status,predict(fit2,train))
Pred:Churn Pred:Current
Actual:Churn 2543 984
Actual:Current 44 27206
conf.matrix <- table(train$Status,predict(fit2,data = train))
Pred:Churn Pred:Current
Actual:Churn 1609 1918
Actual:Current 464 26786
非常感谢。
答案 0 :(得分:1)
第二个示例中的data
参数将被忽略,因为@mtoto和@agenis指出正确的参数名称为newdata
。如果没有newdata
,predict.randomForest
将返回模型的 out-of-bag 预测。
这就是你想要做的。
上的帖子请注意
之间存在差异predict(model)
和
predict(model, newdata=train)
获取训练数据集的预测时。第一个选项从随机森林获得袋外预测。在将预测值与训练数据的实际值进行比较时,这通常是您想要的。
第二个将您的训练数据视为新数据集,并在每个树上运行观察。这将导致预测和实际之间的人为密切相关,因为RF算法通常不修剪单个树,而是依赖于树的集合来控制过度拟合。因此,如果您想获得有关培训数据的预测,请不要这样做。