Ranger预测R中的维数不正确
评估护林员的问题。在这两种情况下,都无法子集数据(需要rf.trnprob的第一列) 错误: 所有参数必须具有相同的长度Ranger预测R中的维数不正确,r,predict,confusion-matrix,r-ranger,R,Predict,Confusion Matrix,R Ranger,评估护林员的问题。在这两种情况下,都无法子集数据(需要rf.trnprob的第一列) 错误: 所有参数必须具有相同的长度 似乎predict函数调用错误,它应该是response而不是type。使用示例数据集: library(ranger) traindata =iris traindata$Species = factor(as.numeric(traindata$Species=="versicolor")) rangerModel = ranger(Species~.
似乎
predict
函数调用错误,它应该是response
而不是type
。使用示例数据集:
library(ranger)
traindata =iris
traindata$Species = factor(as.numeric(traindata$Species=="versicolor"))
rangerModel = ranger(Species~.,data=traindata,probability=TRUE)
rf.trnprob= predict(rangerModel, traindata, response='prob')
概率存储在这里,每类一列:
head(rf.trnprob$predictions)
0 1
[1,] 1.0000000 0.000000000
[2,] 0.9971786 0.002821429
[3,] 1.0000000 0.000000000
[4,] 1.0000000 0.000000000
[5,] 1.0000000 0.000000000
[6,] 1.0000000 0.000000000
但看起来你想做一个混淆矩阵,所以你可以通过以下方法得到预测:
pred = levels(traindata$Species)[max.col(rf.trnprob$predictions)]
然后:
尝试trainscore$score
head(rf.trnprob$predictions)
0 1
[1,] 1.0000000 0.000000000
[2,] 0.9971786 0.002821429
[3,] 1.0000000 0.000000000
[4,] 1.0000000 0.000000000
[5,] 1.0000000 0.000000000
[6,] 1.0000000 0.000000000
pred = levels(traindata$Species)[max.col(rf.trnprob$predictions)]
table(pred,traindata$Species)
pred 0 1
0 100 2
1 0 48