我第一次与随机森林打交道,遇到了一些我无法弄清楚的问题。当我对所有数据集(大约 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
但是,我的列都是因子和数字。
有人能看出我哪里错了吗???