Answers:
是的,它确实很普遍。如果您期望超过50%的功能,即使没有冗余,也完全没有用。例如,randomForest包具有包装函数rfcv(),它将预训练randomForest并忽略最不重要的变量。rfcv函数参考本章。请记住,将特征选择+建模嵌入外部交叉验证循环中,以避免过分乐观的结果。
[在下面编辑]
我可以温和地“完全没用”。单个随机森林通常不会像使用套索正则化进行的回归那样完全忽略特征,即使这些(在模拟后的情况下)是随机特征。决策树按要素划分是通过本地标准在数千或数百万个节点中的任意一个中选择的,以后无法撤消。我不主张将特征缩减到一个上等的选择,但是对于某些数据集,使用此变量选择可能会大大提高预测性能(通过重复的外部交叉验证进行估算)。一个典型的发现是,保留100%的功能或仅保留少数几个功能的工作效果会较差,然后可能会有一个大致中等的范围,具有相似的估计预测性能。
也许是一条合理的经验法则:当对于某个给定的问题,希望像套索一样的正则化效果比像岭一样的正则化效果更好时,则可以尝试对随机森林进行预训练,并根据内部包外特征对特征进行排序交叉验证变量的重要性,然后尝试删除一些最不重要的功能。变量重要性量化了在训练后,预测之前对给定特征进行置换(值重排)后,交叉验证模型预测减少了多少。人们永远不会确定是否应该包含一项特定功能,但是用5%最高的功能比5%最低的功能更容易预测。
从实际的角度来看,如果每个功能的购置成本固定不变,则可以减少计算运行时间,并可以节省一些资源。