用于回归的随机森林——二元响应

机器算法验证 r 回归 随机森林 二进制数据
2022-03-30 19:07:43

这里有点广泛的问题。但是当响应变量是二元结果时,在 R 中使用随机森林进行回归是否可以/可能?本质上,我正在寻找的是发生某事的概率。下面是我一直在使用它运行它的代码和警告消息。或者我最好在分类模式下使用它。我的最终目标是预测某事发生的概率,而不一定预测它将是什么“分类”,1 或 0。

m1RF <- randomForest(EOI_140 ~ .,
                     data = dfTRN,
                     importance = TRUE,
                     ntree = 2000)
Warning message:
In randomForest.default(m, y, ...) :
  The response has five or fewer unique values.  Are you sure you want to do regression?

如果这个问题发错地方,我深表歉意。

2个回答

试试这个"prob"in predict()它是在mtcars预测vs列上完成的

library(randomForest)
mtcars$vs <- as.factor(mtcars$vs)
classifier <- randomForest( formula = vs~hp+drat, data=mtcars)
predict(classifier, type="prob")

我不会分开训练和测试样本,但实际上你必须这样做:)

您必须将因子设置为响应变量,否则它将尝试进行随机森林回归:)

让我们从更简单的东西开始,决策树,因为随机森林是平均的独立决策树的森林。决策树是通过根据使用的功能有条件地将数据拆分为子集来构建的。拆分是通过选择特征来完成的,一次一个,然后根据特征的值选择一个拆分。在这两种情况下,我们都会根据一些最小化的损失函数来做出选择。在回归情况下,我们最小化方差,相当于最小化平方损失。在分类情况下,我们使用熵或基尼杂质作为标准。最后,您的数据被打包到多个子组中并进行预测,在分类情况下,您预测子组中最常见的值,在回归情况下,您预测子组的平均值。显然,如果你计算二进制值的平均值,你会得到分数,即经验概率。因此,基本上在这两种情况下,您都可以以相同的方式计算概率,这个问题仅归结为用于构建树的标准:均方误差熵(或基尼杂质)。如果您选择均方误差,那么您将最小化与线性回归相同的损失,同时选择熵会导致最小化与逻辑回归相同的损失函数