使用随机森林变量重要性进行特征选择

机器算法验证 特征选择 随机森林 引导程序 数据泄露
2022-04-07 09:40:36

我目前正试图说服我的同事,他进行特征选择的方法导致数据泄漏,我需要帮助。

他们使用的方法如下:他们首先对所有变量运行一个随机森林,得到特征重要性度量;均值降低准确度。然后,他们删除所有在此度量上得分较低的变量并重新运行森林,并将袋外错误率报告为模型的错误。

他们认为,由于 MeanDecreaseAccuracy 度量是使用引导程序和袋外记录计算的,因此没有数据泄漏。我试图让他们相信,由于变量重要性度量使用所有数据(在袋子记录中构建树和在袋子记录中以获得准确性降低),如果他们使用此措施在此进行特征选择,则存在数据泄漏方式。

我对他们的解决方案是,如果他们想进行特征选择,他们不能使用袋外错误度量,他们必须设置适当的交叉验证拆分并仅在训练集上执行特征选择。

我在这里不正确吗?谁能想到我可以向我的同事展示的令人信服的论点(示例或论文)?

1个回答

你完全正确!

几个月前,当我在我的主管面前证明不同的特征选择方法时,我处于完全相同的位置。我会引用我在论文中使用的句子,虽然它还没有发表。

由于变量的排序取决于所有样本,因此选择步骤是使用所有样本的信息执行的,因此后续模型的OOB错误不再具有独立测试集的性质,因为它不独立于先前的选择步。

- 行进。

有关参考,请参见Hapfelmeier 和 Ulm 的“使用随机森林的新变量选择方法”的第 4.1 节或 Svetnik 等人的“Breiman 随机森林在药物分子结构-活性关系建模中 的应用”,他们在上下文中解决了这个问题前向/后向特征选择。