事先对没有数据样本表示歉意:
我建立了一个由128棵树组成的随机森林,没有调优,有1个二进制结果和4个可解释的连续变量。然后,我比较了这片森林的AUC与已经建立的森林,并对案例进行预测。我想弄清楚的是如何确定到底是什么赋予了这个新森林的预测能力。结果变量的单因素分析没有显着性发现。任何技术建议都将不胜感激。
编辑:总之,我想对这四个解释变量进行多变量分析,以确定可能解释森林预测能力的交互作用。
发布于 2017-08-28 15:22:10
随机森林是一种被称为“黑匣子”的学习算法,因为没有很好的方法来解释输入和结果变量之间的关系。但是,您可以使用类似于变量、重要度图、或部分依赖图之类的方法来帮助您了解哪些变量对预测的贡献最大。
下面是一些关于可变重要度图,以及这里和这里的讨论。它以varImpPlot()的形式在randomForest包中实现,在caret包中以varImp()的形式实现。对此图的解释取决于用于评估可变重要性的度量。例如,如果您使用MeanDecreaseAccuracy,变量的高值将意味着平均而言,包含此变量的模型可以很好地减少分类错误。
下面是关于预测模型的部分依赖图,也是这里的一些其他讨论。它在randomForest包中作为partialPlot()实现。
在实践中,4个解释变量并不多,因此您可以轻松地运行一个二进制逻辑回归(可能使用L2正则化)来进行更多的解释模型。并将它的性能与随机森林进行比较。请参阅有关变量选择的讨论。它是在glmnet包中实现的。基本上,一个L2正则化,也称为脊,是一个惩罚项,增加到你的损失函数,缩小你的系数,以减少方差,以牺牲增加的偏差。这有效地减少了预测误差,如果减少的方差的数量超过了对偏差的补偿(通常是这样)。由于只有4个输入变量,所以我建议使用L2而不是L1 (也称为lasso,它也可以自动选择特性)。请参见使用cv.glmnet:How to estimate shrinkage parameter in Lasso or ridge regression with >50K variables?调整脊和套索收缩参数的答案。
https://stackoverflow.com/questions/45920580
复制相似问题