我正在尝试应用表函数但是我得到了这个错误,所以我认为因为测试是一个因素而且预测是一个矩阵:
表中的错误(rfe_nB_test_folds [,7],rfe_nB_predict): 所有参数必须具有相同的长度
为此,我需要将预测结果转换为因子,因此我可以在表函数上使用它,但是我得到了这个错误,我认为因为10次交叉验证,因为当我尝试没有10次交叉验证时,它可以工作:
[.default
中的错误(rfe_nB_predict ,, 2): 维数不正确
我的代码:
set.seed(100)
rfe_nB_folds<-createFolds(BC_bind$outcome, k=10) #create folds
rfe_nB_fun <- lapply (rfe_nB_folds, function(x){
rfe_nB_traing_folds<-BC_bind[-x,]
rfe_nB_test_folds<-BC_bind[x,]
#build the model
rfe_nB_model<-naiveBayes(outcome ~ ., data = rfe_nB_traing_folds) #test the model
rfe_nB_predict<-predict(rfe_nB_model,rfe_nB_test_folds[-7],type="raw")
rfe_nB_predict<-as.factor(rfe_nB_predict)
CR<-roc.curve(rfe_nB_test_folds[,7], rfe_nB_predict[,2])
print(CR)
rfe_nB_table<-table(rfe_nB_test_folds[,7],rfe_nB_predict)
rfe_nB_confusionMatrix<-confusionMatrix(rfe_nB_table,positive = "R") #to see the matrex of echo flods
return (rfe_nB_confusionMatrix$table)
})
答案 0 :(得分:0)
我使用了特定的列,所以我将它们保存在BC_bind上,如代码所示。
Top_6featurs <- wpdc[,c(33,11,10,32,29,12)] #column number of top 6 featur
BC_bind <- data.frame(cbind(Top_6featurs , wpdc$outcome))