aic值检验 p值_Null Importance - 用p值检验特征gbdt模型重要性

e61d8e8cd25ca0247267fec30c180280.png
https://www.kaggle.com/ogrellier/feature-selection-with-null-importances​www.kaggle.com

这篇文章介绍了利用标签排列组合的方式来进行特征重要性的核验,原理可见这篇文章

用标签排列组合变换的方式来得到特征重要性的原理其实有点像统计线性方程中的p值检验的过程,本质就是看实际标签拟合的重要性与我随机shuffle建模得到的特征重要性差距是否足够显著,我们用如下的步骤来完成这个过程:

  1. 创建null feature 分布:我们通过不停的shuffle 样本标签值并拟合模型来完成这部。在过程中我们可以观察模型特征对于随机的标签值的表现。
  2. 在原始标签分布下拟合模型,得到真实的特征分布,这将用于之后与第一步形成的特征分布做对比。
  3. 对于每个特征,我们进行一个类似于p值检验的步骤:
  • 计算真实特征分布于第一步null distribution之间的差距,这个kernal上直接使用了occurences来进行计算。
  • 将实际特征重要性与null importance中的mean和max做对比。

数据集用的还是home-default-credit之前已经写了好几个kernal了就不写数据处理过程了,下面直接开始:

import 

下面的函数是主体,遍历特征得到特征重要性矩阵:

def 

先跑一个bench mark

need 

a1a939b2cc5337b71e558fc848771d9f.png
null_imp_df 

a4e36205d45df14975301ba74b490078.png

好了,我们来看看几个强特征的分布

display_distributions

87e141ebea67b70bf88756ae06dd6d0d.png
display_distributions

410dae7ee1b54dec155fdc386173856c.png

从上面选的几个特征来看的话这种方式的强力之处显然大家都看得出来了:

  1. 任何一个特征只要方差够大并且能够给树模型用的话,他总可以找到切分点针对损失函数去做进一步优化
  2. 相关的特征的重要性在树模型中会互相造成影响(比如2个相关的强特征1,2,他们的切分的过程中如果被交替使用的话,那么特征的重要性就会被稀释)。 所以我们这个挑选方式的优势就在于:
    1. 剔除在建模过程中由于高噪声而被选入模型建模的特征
    2. 剔除相关特征在建模过程中特征重要性被稀释的影响。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值