令人困惑的混淆矩阵参数改变输出

时间:2016-10-10 08:49:28

标签: r machine-learning random-forest confusion-matrix

我运行了一个预测随机森林模型。当我运行下面的代码时,我得到两个不同的混淆矩阵 - 唯一的区别是我在预测函数中使用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

非常感谢。

1 个答案:

答案 0 :(得分:1)

第二个示例中的data参数将被忽略,因为@mtoto和@agenis指出正确的参数名称为newdata。如果没有newdatapredict.randomForest将返回模型的 out-of-bag 预测。

这就是你想要做的。

来自CrossValidated:

上的帖子
  

请注意

之间存在差异
predict(model)
     

predict(model, newdata=train)
     

获取训练数据集的预测时。第一个选项从随机森林获得袋外预测。在将预测值与训练数据的实际值进行比较时,这通常是您想要的。

     

第二个将您的训练数据视为新数据集,并在每个树上运行观察。这将导致预测和实际之间的人为密切相关,因为RF算法通常不修剪单个树,而是依赖于树的集合来控制过度拟合。因此,如果您想获得有关培训数据的预测,请不要这样做。