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

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

确定哪些特征与期望的预测输出更相关(称为特征重要性)一直是一个有趣的话题大约一年。我尝试了几个不同的特征重要性库,比如 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 对象中的所有函数。

希望这个特征重要性方法列表是有用的,在一个地方有好的信息总是很好的!如果我找到更多方法,我会继续更新这篇文章!

快乐练习!

参考

  1. 解释如何编写 SHAP 的优秀博文,并参考了原始论文(Lundberg 和 Lee,2017)。 https://towardsdatascience.com/shap-explained-the-way-i-wish-someone-explained-it-to-me-ab81cc69ef30

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/17434/10100600

posted @ 2022-09-06 00:10  哈哈哈来了啊啊啊  阅读(398)  评论(0)    收藏  举报