随机森林的ROC曲线误差
我试图在下面创建一条ROC曲线。我得到一个表示预测错误的错误(bc_rf_predict_prob,bc_test$类): 预测和标签的交叉验证运行数必须相等随机森林的ROC曲线误差,r,random-forest,roc,R,Random Forest,Roc,我试图在下面创建一条ROC曲线。我得到一个表示预测错误的错误(bc_rf_predict_prob,bc_test$类): 预测和标签的交叉验证运行数必须相等 library(mlbench) #has the Breast Cancer dataset in it library(caret) data(BreastCancer) #two class model bc_changed<-BreastCancer[2:11] #removes variables not to be u
library(mlbench) #has the Breast Cancer dataset in it
library(caret)
data(BreastCancer) #two class model
bc_changed<-BreastCancer[2:11] #removes variables not to be used
#Create train and test/holdout samples (works fine)
set.seed(59)
bc_rand <- bc_changed[order(runif(699)), ] #699 observations
bc_rand <- sample(1:699, 499)
bc_train <- bc_changed[ bc_rand,]
bc_test <- bc_changed[-bc_rand,]
#random forest decision tree (works fine)
library(caret)
library(randomForest)
set.seed(59)
bc_rf <- randomForest(Class ~.,data=bc_train, ntree=500,na.action = na.omit, importance=TRUE)
#ROC
library(ROCR)
actual <- bc_test$Class
bc_rf_predict_prob<-predict(bc_rf, type="prob", bc_test)
bc.pred = prediction(bc_rf_predict_prob,bc_test$Class) #not work- error
library(mlbench)#包含乳腺癌数据集
图书馆(插入符号)
数据(乳腺癌)#两类模型
bc_根据更改,预测
功能有两个必需的输入,预测
和标签
,它们必须具有相同的尺寸
对于矩阵或数据帧,所有交叉验证运行必须具有相同的长度
由于str(bc\u rf\u predict\u prob)>[1]矩阵[1:200,1:2]
,这意味着str(bc\u test$Class)
应该有一个匹配的维度
听起来您只需要bc\u rf\u predict\u prob
的第一列向量,但是如果不查看数据,我无法确定 您是否尝试过使用str(predict(bc_rf,type=“prob”,bc_test))
来确定predict的数据类型/结构?同意这就是问题所在。我得到矩阵[1:200,1:2]10.12110.051…-attr(,“dimnames”)=2..$的列表:chr[1:200]“3”“4”“5”“12”..$:chr[1:2]“良性”“恶性”-attr(,“类”)=chr[1:2]“矩阵”“投票”那么-我在上面做什么?谢谢。需要在bc_rf_predict_prob的末尾添加[,2]。因此bc_rf_predict_prob[,2]。
bc_rf_predict_prob<-predict(bc_rf, type="prob", bc_test)