R 混淆矩阵参数改变输出
我运行了一个预测随机森林模型。当我运行下面的代码时,我得到了两个不同的混淆矩阵-唯一的区别是我在预测函数中使用data=train,还有一个我只使用“train”。为什么这会造成如此大的差异?召回一辆车的情况要糟糕得多R 混淆矩阵参数改变输出,r,machine-learning,random-forest,confusion-matrix,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
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
conf.matrix第二个示例中的data
参数被忽略,因为正确的参数名称是newdata
as@mtoto和@agenis。如果没有新数据
,预测.randomForest
将返回模型的包外预测
这就是您想要做的。
从我的帖子上
请注意,两者之间存在差异
predict(model)
及
predict(model, newdata=train)
获取训练数据集的预测时。第一个选项从随机林中获取现成的预测。当比较训练数据上的预测值和实际值时,这通常是您想要的
第二种方法将训练数据视为一个新的数据集,并沿每棵树运行观察结果。这将导致预测和实际之间的人为紧密关联,因为RF算法通常不会修剪单个树,而是依赖树的集合来控制过度拟合。所以,如果你想得到训练数据的预测,就不要这样做
该参数的名称是newdata=
而不是data=
。好的,谢谢,那么为什么data=会工作并影响结果呢?您可能调用的predict()
与predict.randomForest()
不同,后者具有data=
参数。啊,好的,谢谢。所以当我想用新数据测试模型时,我应该使用newdata=test?