gpt4 book ai didi

如果测试数据中存在新的因子水平,R 中的随机森林包会在 prediction() 期间显示错误。有什么办法可以避免这个错误?

转载 作者:行者123 更新时间:2023-12-03 11:47:43 25 4
gpt4 key购买 nike

我的训练数据中有 30 个预测因子的因子水平。我的测试数据中再次有 30 个相同预测因子的因子水平,但有些水平是不同的。除非水平完全相同,否则 randomForest 不会预测。它显示错误。说,
predict.randomForest(模型,测试)中的错误
训练数据中不存在新的因子水平

最佳答案

我发现的一种解决方法是首先将训练和测试集中的因子变量转换为字符

test$factor <- as.character(test$factor)

然后为每个列添加一个带有测试/训练标志的列,即
test$isTest <- rep(1,nrow(test))
train$isTest <- rep(0,nrow(train))

然后 rbind 他们
fullSet <- rbind(test,train)

然后转换回一个因子
fullSet$factor <- as.factor(fullSet$factor)

这将确保测试集和训练集具有相同的水平。然后你可以分开:
test.new <- fullSet[fullSet$isTest==1,]
train.new <- fullSet[fullSet$isTest==0,]

并且您可以删除/NULL 出 isTest每个列。然后,您将拥有可以训练和测试的具有相同级别的集合。可能有一个更优雅的解决方案,但这在过去对我有用,如果你需要经常重复它,你可以把它写成一个小函数。

关于如果测试数据中存在新的因子水平,R 中的随机森林包会在 prediction() 期间显示错误。有什么办法可以避免这个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com