在随机森林之前使用特征选择是否有意义?

机器算法验证 机器学习 特征选择 随机森林
2022-01-30 14:47:50

一切都在标题中,在使用随机森林之前使用特征选择是否有意义?

1个回答

是的,确实如此,而且很常见。如果您期望超过 50% 的功能甚至不是多余的,而是完全无用的。例如,randomForest 包具有包装函数 rfcv(),它将预训练 randomForest 并省略最不重要的变量。rfcv 功能参考本章请记住在外部交叉验证循环中嵌入特征选择 + 建模以避免过于乐观的结果。

[以下编辑]

我可以缓和“完全没用”。单个随机森林通常不会像使用套索正则化的回归那样完全忽略特征,即使这些(在模拟的事后看来)是随机特征。按特征划分的决策树由数千或数百万个节点中的任何一个中的本地标准选择,并且以后无法撤消。我不主张将特征缩减为一个更好的选择,但对于某些数据集来说,使用这种变量选择可以实现预测性能的显着提高(通过重复的外部交叉验证估计)。一个典型的发现是,保留 100% 的特征或只有少数几个特征效果较差,然后可能会有一个具有相似估计预测性能的广泛中间范围。

也许是一个合理的经验法则:当人们期望类套索正则化比类脊正则化更适合给定问题时,可以尝试预训练一个随机森林并通过内部袋外对特征进行排名交叉验证变量重要性并尝试删除一些最不重要的特征。变量重要性量化了交叉验证模型预测减少了多少,当给定特征在训练之后、预测之前被置换(值打乱)时。人们永远无法确定是否应该包含一项特定功能,但前 5% 的功能可能比后 5% 的功能更容易预测。

从实际的角度来看,如果每个特征的获取成本是固定的,则可以降低计算运行时间,并且可以节省一些资源。