ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

特征选择

2022-09-13 17:31:44  阅读:221  来源: 互联网

标签:变量 特征选择 模型 Feature col Importance 打乱


模型默认的Feature Importance存在什么问题?

Feature Importance的本质是训练好的模型对变量的依赖程度,它不代表变量在unseen data(比如测试集)上的泛化能力。特别当训练集和测试集的分布发生偏移时,模型默认的Feature Importance的偏差会更严重。

举一个极端的例子,如果我们随机生成一些X和二分类标签y,并用XGB不断迭代。随着迭代次数的增加,训练集的AUC将接近1,但是验证集上的AUC仍然会在0.5附近徘徊。这时模型默认的Feature Importance仍然会有一些变量的重要性特别高。这些变量帮助模型过拟合,从而在训练集上实现了接近1的AUC。但实际上这些变量还是无意义的。


2 什么是Permutation Importance?

Permutation Importance是一种变量筛选的方法。它有效地解决了上述提到的两个问题。

Permutation Importance将变量随机打乱来破坏变量和y原有的关系。如果打乱一个变量显著增加了模型在验证集上的loss,说明该变量很重要。如果打乱一个变量对模型在验证集上的loss没有影响,甚至还降低了loss,那么说明该变量对模型不重要,甚至是有害的。

打乱变量示例

变量重要性的具体计算步骤如下:

  • 1. 将数据分为train和validation两个数据集
  • 2. 在train上训练模型,在validation上做预测,并评价模型(如计算AUC)
  • 3. 循环计算每个变量的重要性:
  • (3.1) 在validation上对单个变量随机打乱;
  • (3.2)使用第2步训练好的模型,重新在validation做预测,并评价模型;
  • (3.3)计算第2步和第3.2步validation上模型评价的差异,得到该变量的重要性指标

Python代码步骤(model表示已经训练好的模型):

def permutation_importances(model, X, y, metric):
    baseline = metric(model, X, y)
    imp = []
    for col in X.columns:
        save = X[col].copy()
        X[col] = np.random.permutation(X[col])
        m = metric(model, X, y)
        X[col] = save
        imp.append(baseline - m)
    return np.array(imp)

3 Permutation Importance的优劣势是什么?

3.1 优势

  • 可以在任何模型上使用。不只是在基于决策树的模型,在线性回归,神经网络,任何模型上都可以使用。
  • 不存在对连续型变量或高基数类别型变量的偏好。
  • 体现了变量的泛化能力,当数据发生偏移时会特别有价值。
  • 相较于循环的增加或剔除变量,不需要对模型重新训练,极大地降低了成本。但是循环地对模型做预测仍然会花费不少时间。

3.2 劣势

  • 对变量的打乱存在随机性。这就要求随机打乱需要重复多次,以保证统计的显著性。
  • 对相关性高的变量会低估重要性,模型默认的Feature Importance同样存在该问题。

标签:变量,特征选择,模型,Feature,col,Importance,打乱
来源: https://www.cnblogs.com/qiaoqifa/p/16689978.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有