我已经从训练数据集中创建了10个样本。我用这10个样本训练了随机森林模型。我想在测试集上测试这些模型,并获得10个预测数据集。然而,当我想将预测概率更改为是/否类时,我只得到一个大因子,而不是一个因子列表。
# Training models
set.seed(111)
sample_num = 10
modelList<- vector("list", sample_num)
names(modelList)<-sprintf("model%s", seq(1:sample_num))
for(s in 1:sample_num){
trainingdata<-CVD_trainingSamples[[s]]
modelList[[s]] <- randomForest(death ~., data = trainingdata,
ntree = 500)
}
# Test the trained models on the control set
predictControl<-vector("list", sample_num)
names(predictControl)<-sprintf("prediction of model%s",
seq(1:sample_num))
for(s in 1:sample_num){
fitModel<-modelList[[s]]
predictControl[[s]]<- predict(fitModel, controlBatch, type =
"prob")[,2]
}
for(s in 1:training_num){
predClass_control <- vector("list", training_num)
predClass_control<-
as.factor(ifelse(predictControl[[s]]>0.5,1,0))
}
predClass_control的结果是一个大因子(9670个元素),而我期望它是一个长度为10的列表,每个元素包含9670个因子
在这部分代码中For (s in 1:training_num){
predClass_control <- vector("list", training_num)
predClass_control<-
as.factor(ifelse(predictControl[[s]]>0.5,1,0))
}
你重新赋值变量predClass_control
,因此它的值在for循环的每次迭代中被删除。