随机森林结果的多元分析
Posted
技术标签:
【中文标题】随机森林结果的多元分析【英文标题】:Multivariate Analysis on random forest results 【发布时间】:2018-02-05 19:36:06 【问题描述】:对于没有数据样本提前致歉:
我构建了一个由 128 棵树组成的随机森林,没有调整,有 1 个二元结果和 4 个解释性连续变量。然后,我将这个森林的 AUC 与已经建立并预测案例的森林进行了比较。我想弄清楚的是如何确定究竟是什么为这片新森林提供了预测能力。对结果变量进行单变量分析没有发现显着的结果。任何技术建议将不胜感激。
编辑:总而言之,我想对这 4 个解释变量进行多变量分析,以确定正在发生的交互作用可以解释森林的预测能力。
【问题讨论】:
澄清一下,您是否正在寻找可以提高模型准确性的变量或模型超参数。 @WilliamAshford 他提到没有调整,所以我猜他的意思是如何找到最具预测性的变量? 我们在谈论多少个变量?可能会询问超参数的重要性,而无需针对一般情况进行调整。 @WilliamAshford 如 OP 所述,我们正在使用 4 个解释性连续变量。 @WilliamAshford 据我了解,随机森林除了调整树的数量之外不需要太多的超参数调整,所以在这种情况下变量重要性可能更相关? OP,请重申您要问的内容... 【参考方案1】:随机森林是所谓的“黑盒”学习算法,因为没有很好的方法来解释输入变量和结果变量之间的关系。但是,您可以使用变量重要性图或部分依赖图之类的东西来了解哪些变量在做出预测时贡献最大。
这里有一些关于variable importance plots、here 和here 的讨论。它在randomForest
包中实现为varImpPlot()
,在caret
包中实现为varImp()
。该图的解释取决于您用于评估变量重要性的指标。例如,如果您使用MeanDecreaseAccuracy
,则变量的高值意味着平均而言,包含此变量的模型可以大大减少分类错误。
这里有一些关于partial dependence plots for predictive models 和here 的其他讨论。它在randomForest
包中实现为partialPlot()
。
实际上,4 个解释变量并不多,因此您可以轻松地运行二元逻辑回归(可能使用 L2 正则化)以获得更具解释性的模型。并将其性能与随机森林进行比较。请参阅有关variable selection 的讨论。它在glmnet
包中实现。基本上,L2 正则化,也称为岭,是添加到损失函数中的惩罚项,它会缩小系数以减少方差,但会增加偏差。如果减少的方差量超过了对偏差的补偿(通常是这种情况),则这有效地减少了预测误差。由于您只有 4 个输入变量,因此我建议使用 L2 而不是 L1(也称为 lasso,它也可以进行自动特征选择)。使用cv.glmnet
查看岭和套索收缩参数调整的答案:How to estimate shrinkage parameter in Lasso or ridge regression with >50K variables?
【讨论】:
感谢您的回复。我将尝试您对二元逻辑回归的建议并报告结果。顺便说一句,rms
库中lrm
中的 L2 正则化参数是什么?或者这会是数学上的事情吗?
@JonathanRauscher 我不熟悉rms
包,但请参阅我更新的答案以了解更多详细信息。
我试过你的建议,逻辑回归比随机森林弱得多。想法?
@JonathanRauscher 在这种情况下,您可能只想使用逻辑回归进行解释,使用随机森林进行预测。并使用上面提到的图来评估变量的重要性。最终,这取决于您是否更关注可解释性或预测。毫无疑问,随机森林的预测效果更好,但逻辑回归更容易解释。以上是关于随机森林结果的多元分析的主要内容,如果未能解决你的问题,请参考以下文章