我正在尝试一些数据的随机林,其中类变量是二进制(1或0)。这是我正在运行的代码:
forest.model <- randomForest(x = ticdata2000[,1:85], y = ticdata2000[,86],
ntree=500,
mtry=9,
importance=TRUE,
norm.votes=TRUE,
na.action=na.roughfix,
replace=FALSE,
)
但是当森林结束时,我收到以下错误:
Warning message:
In randomForest.default(x = ticdata2000[, 1:85], y = ticdata2000[, :
The response has five or fewer unique values. Are you sure you want to do regression?
答案当然是否定的。我不想做回归。我有一个单独的离散变量,只需要2个类。当然,当我使用这个模型运行预测时,我会得到连续数字,当我想要一个零和一个列表时。有人可以告诉我我做错了什么来使用回归而不是分类?
答案 0 :(得分:10)
使用as.factor
(或factor
)将您的回复列更改为系数。由于您已将该变量存储为 numeric 0和1,因此R正确地将其解释为数字变量。如果你想让R以不同的方式对待它,你必须这样说。
y
参数下的文档中提到了这一点:
响应向量。如果是因子,则假定分类,否则 假设回归。如果省略,randomForest将运行 无监督模式。