【问题标题】:set random forest to classification将随机森林设置为分类
【发布时间】:2013-06-12 21:18:10
【问题描述】:

我正在尝试对类变量为二进制(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 和 1 的列表。有人能告诉我我做错了什么让这个使用回归而不是分类吗?

【问题讨论】:

    标签: r random-forest


    【解决方案1】:

    使用as.factor(或仅factor)将您的响应列更改为一个因子。由于您将该变量存储为 numeric 0 和 1,R 正确地将其解释为数字变量。如果你想让 R 以不同的方式对待它,你必须告诉它。

    y 参数下的文档中提到了这一点:

    响应向量。如果是因子,则假定分类,否则 假设回归。如果省略,randomForest 将运行在 无监督模式。

    【讨论】:

    • 请明确。当前的 randomForest pdf 不直接包含关于 Y 参数的信息。
    • @oaxacamatt 我不确定我是否遵循您的评论;是针对我的回答吗?据我所知,我的块引用仍然是 CRAN 上当前版本的文档的直接引用。我误会你了吗?
    猜你喜欢
    • 2019-09-05
    • 2013-09-22
    • 2018-02-18
    • 2018-05-20
    • 2016-05-25
    • 2014-11-21
    • 1970-01-01
    • 2017-03-15
    • 2018-07-10
    相关资源
    最近更新 更多