随机森林 - 如何知道变量是正面影响还是负面影响

机器算法验证 r 随机森林
2022-03-22 05:50:42

RandomForest在 R 中对一组具有许多变量的数据运行 a 。使用varImpPlot()我知道每个变量对解释目标变量的重要性。但是,我也想知道变量对目标值的影响是正面还是负面

例如,在预测个人收入时,我可能会得到“年龄”的解释很多,但我想知道是“年龄大 -> 收入高”,还是“年龄小 -> 收入高”。

有没有办法通过随机森林知道这一点?

1个回答

正如@Simone 的链接问题的答案所示,完全可以量化预测变量/自变量对目标/因变量的部分影响。这是从随机森林(或一般的机器学习模型)中获得理解的一种非常有用的方法。

然而,这与这个问题所问的并不完全相同,即量化“变量是对目标值产生积极影响还是消极影响”。原因很简单:随机森林的行为与线性模型不同,后者仅在模型公式中指定时才捕获非线性。在没有二次项的简单线性模型中 - 假设模型拟合没有问题 - 正斜率估计表明预测变量的增加导致目标变量的增加。相反,随机森林在没有任何事先说明的情况下捕获高度非线性的部分效应。

因此,使用问题中的示例,随机森林完全有可能捕捉到年轻时收入低,中年收入高,老年(即退休后)收入又低的现实。事实上,随机森林的结构灵活性意味着它们可以捕获比本例中的简单形状更复杂的非线性形状。由于这种灵活性,单个预测变量具有可以准确描述为积极或消极的影响是不寻常的(尽管并非不可能)。绘制出局部效果会给你一个更完整和准确的印象。