随机森林的ROC曲线误差

随机森林的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

我试图在下面创建一条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 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)