对于随机森林或 XGBoost,我了解如何计算特征重要性,例如使用信息增益或杂质减少。
特别是在 sklearn(以及其他实现)中,特征重要性被归一化,使得特征的重要性总和为 1。
但考虑到以下事实:
随机森林中的特征重要性没有考虑特征之间的相互依赖:例如,考虑到两个特征都与目标强相关的极端情况,无论如何,它们最终的特征重要性分数总是在 0.5 左右每个,而人们会期望两者都应该得到接近一的分数。
特征重要性始终与所使用的特征集相关,并没有告诉我们任何关于目标和特征之间的统计依赖性的信息。例如,考虑到一个目标和一组随机生成的特征的极端情况,完全独立于目标,当然你仍然可以根据特征重要性度量对特征进行排名,但你得到的结果在此毫无意义案例,因为您已经知道所有功能都独立于目标。
我做了两个例子,我知道特征和目标的数据生成,并解释了为什么随机森林中的特征重要性完全没用。
所以我的问题是:
如果您处于 99.9% 的情况下,您对特征和目标之间的关系一无所知,您如何使用这种方法来推断特征重要性?
我一般不只使用杂质的减少或绝对值的信息增益,而是使用相对的措施,如杂质减少与总杂质之间的比率,这样数字仍然会在 0 和 1 之间有界(就像现在一样)但它也反映了某种关联的力量?(在我看来,首先重要性总和为 1 没有任何意义)
感谢您花时间阅读我的问题。