首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将列表中的所有元素转换为一个因子

将列表中的所有元素转换为一个因子
EN

Stack Overflow用户
提问于 2022-11-07 17:21:21
回答 1查看 22关注 0票数 0

我已经创建了10个样本的培训数据集。我用这10个样本训练了随机森林模型。我想在测试集上测试这些模型并获得10个预测的dataset.However,当我想将预测的概率转换为yes/no类时,我只得到一个大的因素,而不是一个因素的列表。

代码语言:javascript
复制
# 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个因素。

EN

回答 1

Stack Overflow用户

发布于 2022-11-07 17:33:52

(在1:training_num中){的代码的这一部分中

代码语言:javascript
复制
predClass_control <- vector("list", training_num)
predClass_control<- 
as.factor(ifelse(predictControl[[s]]>0.5,1,0))
}

您重新分配变量predClass_control,以便在for循环的每次迭代中删除它的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74350467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档