计算特征重要性的不同方法
计算特征重要性的不同方法

确定哪些特征与期望的预测输出更相关(称为特征重要性)一直是一个有趣的话题大约一年。我尝试了几个不同的特征重要性库,比如 scikit permutation_importance、eli5 PermutationImportance 和 SHAP。我认为收集所有特征重要性方法可能很有用。
请注意,排列方法不会给出相同的重要特征列表,因为它取决于特征的排列。所以在这方面,SHAP 方法似乎更可靠,因为特征重要性是基于模型对不同特征组合的预测。
我正在使用来自 Kaggle 的关于咖啡开盘价和收盘价的数据集,因为我❤️ 咖啡!享受!
跨多个单元格使用的库
子功能
加载数据




准备 X 和 y 矩阵


让我们测试一下这个数据集的一些预测模型:


Xgboost 给出了比 RandomForest 更好的 F1 分数,所以让我们使用 xgboost 模型。
排列重要性:识别重要特征
方式0:手动排列重要性

方式1:scikit permutation_importance

方式2:scikit feature_importance

方式3:eli5排列重要性

方式 4:手动 SHAP(正在进行中!)

剩下的步骤是计算每个特征的边际贡献,这是每个特征的 y_levels 预测差异的总和。然后,计算每个特征的边际贡献的因子权重,请参阅第一个参考资料以获得对这两个步骤的出色描述。正如你所看到的,如果有很多特征,组合的数量就会变得非常大,贡献的计算就会变得很昂贵。
方式5:使用SHAP,手工计算特征重要性
通过使用 dir 我们可以看到 shap_values 对象中的所有函数。

希望这个特征重要性方法列表是有用的,在一个地方有好的信息总是很好的!如果我找到更多方法,我会继续更新这篇文章!
快乐练习!
参考
- 解释如何编写 SHAP 的优秀博文,并参考了原始论文(Lundberg 和 Lee,2017)。 https://towardsdatascience.com/shap-explained-the-way-i-wish-someone-explained-it-to-me-ab81cc69ef30
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

浙公网安备 33010602011771号