gpt4 book ai didi

R 中的随机森林(y 中的空类且参数长度为 0)

转载 作者:行者123 更新时间:2023-12-02 03:20:12 24 4
gpt4 key购买 nike

我是第一次处理随机森林,我遇到了一些我无法解决的麻烦..当我对所有数据集(大约 3000 行)运行分析时,我没有收到任何错误消息。但是,当我对数据集的子集(大约 300 行)执行相同的分析时,我收到错误:

dataset <- read.csv("datasetNA.csv", sep=";", header=T)
names (dataset)
dataset2 <- dataset[complete.cases(dataset$response),]
library(randomForest)
dataset2 <- na.roughfix(dataset2)
data.rforest <- randomForest(dataset2$response ~ dataset2$predictorA + dataset2$predictorB+ dataset2$predictorC + dataset2$predictorD + dataset2$predictorE + dataset2$predictorF + dataset2$predictorG + dataset2$predictorH + dataset2$predictorI, data=dataset2, ntree=100, keep.forest=FALSE, importance=TRUE)

# subset of my original dataset:
groupA<-dataset2[dataset2$order=="groupA",]
data.rforest <- randomForest(groupA$response ~ groupA$predictorA + groupA$predictorB+ groupA$predictorC + groupA$predictorD + groupA$predictorE + groupA$predictorF + groupA$predictorG + groupA$predictorH + groupA$predictorI, data=groupA, ntree=100, keep.forest=FALSE, importance=TRUE)

Error in randomForest.default(m, y, ...) : Can't have empty classes in y.

但是,我的响应变量没有任何空类。

如果我像这样编写 randomForest (a+b+c,y) 而不是 (y ~ a+b+c) 我会收到其他消息:

Error in if (n == 0) stop("data (x) has 0 rows") : 
argument length zero
Warning messages:
1: In Ops.factor(groupA$responseA + groupA$responseB, :
+ not meaningful for factors

第二个问题是,当我尝试通过 rfImpute() 估算数据时,出现错误:

Errore in na.roughfix.default(x) :  roughfix can only deal with numeric data

但是我的列都是因子和数字。

有人能看出我错在哪里吗???

最佳答案

根据评论中的讨论,这是对潜在解决方案的猜测。

这里的困惑源于这样一个事实:因子的水平是变量的属性。无论您采用数据的哪个子集,无论该子集有多小,这些级别都将保持不变。这是一个功能,而不是一个错误,也是一个常见的困惑来源。

如果您想在子集化时删除缺失的级别,请将子集操作包装在droplevels()中:

groupA <- droplevels(dataset2[dataset2$order=="groupA",])

我可能还应该补充一点,许多 R 用户在开始新 session 时(例如在他们的 .Rprofile 文件中)设置 options(stringsAsFactors = FALSE) 以避免此类麻烦。这样做的缺点是,如果您经常与其他人共享代码,如果他们没有更改 R 的默认选项,这可能会导致问题。

关于R 中的随机森林(y 中的空类且参数长度为 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495041/

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