Kaggle知识点:Null Importances

介绍

Null Importances是竞赛中比较靠谱的特征筛选方法,且在多个Kaggle结构化比赛中被验证过。

特征筛选从原始特征空间筛选部分特征,具体筛选方法可以分为:

  • 过滤法;
  • 包装法;
  • 嵌入法;

过滤法思路使用相关统计值来计算特征有效性,然后完成筛选;包装法使用特征带来的精度增益来衡量;嵌入法使用特征在模型内部权重来衡量重要性。

在竞赛中一般使用包装法来筛选特征,但单纯追求精度收益非常容易过拟合,导致线上和线下不一致。

原理

使用包装法和嵌入法筛选特征,容易筛选得到有较高CV(验证集)精度,但导致分布一致的特征。

  • CV精度增加,线上不一定有提高;
  • 树模型重要性高,不一定有效的;

举一个例子:样本标签和ID两列,两列是一一对应,如果将ID列加入训练,CV精度可能不会增加,但ID在树模型特征重要性会很高。

Null Importances的出发点也是如此,特征重要性只反映特征的信息增益或使用次数,但并不能说明特征一定有效。

步骤

Null Importances思路如下:

步骤1:将原有特征和标签使用树模型训练,得到每个特征原始重要性A;

步骤2:将数据的标签打乱,特征不变再此训练,记录下打散后的每个特征重要性B,将此步骤重复N次;

步骤3:将步骤1中特征步骤2两个特征重要性进行比较。

  • 若A远大于B,则特征为有效特征;
  • 若A小于等于B,则特征为无效特征;

步骤2重复N是为了看标签打散后的特征重要性分布,A与B的分布比较,会更加清晰。

Null Importances是借助了嵌入法的重要性计算过程,然后使用重要性变化来完成衡量过程。如下图所示,使用LightGBM模型来完成上述操作。红色为原始重要性A,蓝色为打乱后的重要性。

每一行对应一个特征,左边特征使用次数,右边为特征信息增益。

Kaggle知识点:Null Importances无效特征Kaggle知识点:Null Importances有效特征

参考资料

https://academic.oup.com/bioinformatics/article/26/10/1340/193348

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

【竞赛报名/项目咨询请加微信:mollywei007】

下一篇

分享盘点那些年在美高上过的有趣又实用课程!

你也可能喜欢

  • 暂无相关文章!

关注热点

返回顶部