特征重要性排序--Permutation Importance

特征重要性排序–Permutation Importance

参考:Permutation Importance | Kaggle

相比于其他衡量特征重要性的方法,Permutation Importance的优点:

  • 计算量低
  • 广泛使用和容易理解
  • 与我们要测量特征重要性的属性一致

Permutation Importance的计算是在模型训练完成后进行的,即,模型参数不再改变。如果我们将验证集中的单独一列的数据进行打乱,并保持其他列和目标值不变,那么,预测打乱后的验证集的结果会怎么变化?
在这里插入图片描述

上图示例是将第二列的数据进行shaffle,如果模型预测对该列特征的依赖性很大,那么打乱后,预测精度会受到很大的影响。

具体实施流程:

  1. 训练模型
  2. 打乱其中一列的数据,用该数据集进行预测,评估预测精度下降来提现该特征变量的重要性
  3. 将验证数据集还原,并重复第二步,分析其他特征变量

代码示例:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

data = pd.read_csv('../input/fifa-2018-match-statistics/FIFA 2018 Statistics.csv')
y = (data['Man of the Match'] == "Yes")  # Convert from string "Yes"/"No" to binary
feature_names = [i for i in data.columns if data[i].dtype in [np.int64]]
X = data[feature_names]
train_X, val_X, train_y, val_y = train_test_split(X, y, random_state=1)
my_model = RandomForestClassifier(n_estimators=100,
                                  random_state=0).fit(train_X, train_y)

import eli5
from eli5.sklearn import PermutationImportance

perm = PermutationImportance(my_model, random_state=1).fit(val_X, val_y)
eli5.show_weights(perm, feature_names = val_X.columns.tolist())

在这里插入图片描述

像大部分数据科学中的结果一样,当打乱单个列的时候的结果变化会存在一定随机性,我们通过重复这个过程多次打乱来测量permutation importance计算的随机性大小。

我们通过重复这个过程多次打乱来测量permutation importance计算的随机性大小。

经常会遇到一些负的值,在这种情形下,在打乱(噪声)数据上的预测会得到比真实数据更高精度的结果,该特征的重要性接近于0,但存在一定的机会导致在打乱数据上的预测会更精确。这种情形一般更容易发生在小数据集,因为会有更大几率好运。

  • 5
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
***要性是指特征对模型预测结果的影响程。有多种方法可以用来计算特征重要性。根据引用中的内容,以下是一些常用的特征重要性排序方法: 1. 嵌入法(Embedded methods):这是一种基于模型的方法,通过训练模型并使用模型内部的特征重要性指标来选择特征。例如,可以使用sklearn库中的SelectFromModel和mljar-supervised中的AutoML来进行特征选择和排序。 2. 排列重要性Permutation Importance):这种方法通过随机重排某个特征的值来评估该特征对模型性能的影响。可以使用PermutationImportance来计算特征重要性。 3. SHAP值:SHAP值是一种特征归因方法,可以用来衡量每个特征对模型输出的贡献程。引用中提到,SHAP值是唯一一致的个性化特征归因方法。 需要注意的是,不同的特征重要性计算方法可能会得到不同的结果,如引用所提到的。因此,为了更全面地评估特征重要性,可以结合多种方法来获取特征重要性排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [机器学习模型可解释性进行到底——特征重要性(四)](https://blog.csdn.net/sinat_26917383/article/details/115680807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【可解释性机器学习】排列重要性Permutation Importance)及案例分析详解](https://blog.csdn.net/ARPOSPF/article/details/128774692)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值