美文网首页
特征筛选工具

特征筛选工具

作者: xieyan0811 | 来源:发表于2021-01-24 16:25 被阅读0次

做模型时常常是特征越多模型准确率越高(至少在训练集上)。但过多的特征又增加了数据收集、处理、存储的工作量,以及模型的复杂度。

在保证模型质量的前提下,我们希望尽量少地使用特征,这样也间接地加强了模型的可解释性。一般来说,为避免过拟合,特征尽量控制在实例个数的1/20以下,比如有3000个实例,则特征最好控制在150以下。

除了特征的具体个数,特征工程中也经常遇到某些特征严重缺失,特征相关性强,一些特征不但无法给模型带来贡献,反而带来噪声等问题。

本篇介绍特征筛选工具feature-selector,在github上有1.8K星,它使用少量的代码解决了特征筛选中的常见问题,用法简单,便于扩展;同时也提供了作图方法,以更好地呈现特征效果。

下载地址

https://github.com/WillKoehrsen/feature-selector

核心代码

其核心代码文件只有feature_selector/feature_selector.py(600多行代码),所有方法都定义在FeatureSelector类中,因此,不用安装,只需要将该文件复制你的项目中即可使用。

功能点

  • 寻找缺失严重的特征
  • 寻找仅有单值的特征
  • 寻找相关性强的特征(皮尔森相关系数,默认只考虑数值型)
  • 寻找特征重要性为0的特征(根据gbm模型)
  • 寻找特征重要性低的特征(根据gbm模型)

示例代码

示例及效果见:Feature Selector Usage.ipynb

代码中使用Kaggle比赛中信用风险预测的数据,为分类问题。

其中包含10000条数据,122个特征;将其TARGET字段作为标签,其它字段作为预测特征。

首先用训练数据建立类的实例:

fs = FeatureSelector(data = train, labels = train_labels)

后面逐一列出了各个函数的用法,此处不再一一列举。

图示

工具提供plot_xxx等方法具象地展示了数据情况:

  • 数据缺失图
    该图横坐标为缺失比例,纵坐标为特征个数,例如第一列为缺失比例在0-0.1之间的特征约60多个。
  • 特征取值图
    该图横坐标为特征取值个数,纵轴为特征个数,例如第一个柱表示将近100个特征取值的个数在1-1000之间,最后一柱表示有几个特征有上万种取值。
  • 特征相关性
    下图中列出了相关系数大于0.98的特征(未列出所有特征),同时还提供fs.record_collinear()方法列出各个特征对及其相关系数。
  • 特征重要性
    工具默认使用lightgbm模型计算特征重要性,在调用方法时需要指定损失函数,以及使用分类方法还是回归方法,迭代次数等等。工具可显示其前N个重要特征。另外,还可以参考下图,查看模型特征个数与模型效果的关系,下图显示:将模型参数简化为122个后,模型准确率几乎不变。

相关文章

  • 特征筛选工具

    做模型时常常是特征越多模型准确率越高(至少在训练集上)。但过多的特征又增加了数据收集、处理、存储的工作量,以及模型...

  • 特征筛选

    看到一个相关内容写得不错的博客,先贴一下,后续有时间整理按自己的思路写(to be continued)https...

  • 3.1.1.2特征筛选

    冗杂的特征虽然不会影响到模型性能,不过却使得CPU的计算做了无用功。比如,主成分分析主要用于去除多余的那些线性相关...

  • 特征筛选面试

    对于一个传统的Kaggle比赛,比如信用评分项目,当面试官问到如何做特征筛选的时候,怎样的回答可能会让面试官比较满...

  • Task 3:特征工程

    特征工程 导入数据 特征构造 特征筛选 过滤式 包裹式 嵌入式

  • Task3

    特征选择 TF-IDF原理以及利用其进行特征筛选 互信息的原理以及利用其进行特征筛选 TF-IDF 原理: 如何提...

  • 特征工程之_筛选

    1. 说明  本文并非介绍某个成熟算法或者工具,只是个人的一点感悟,写得可能不正确,不全面,希望能给大家带来...

  • 特征工程-指标筛选

    数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。 在数据建模前期,很重要的一步是特征工程的构建,...

  • 特征筛选(随机森林)

    随机森林能够度量每个特征的重要性,我们可以依据这个重要性指标进而选择最重要的特征。sklearn中已经实现了用随机...

  • 特征选择与特征学习算法研究--笔记1

    特征选择与特征学习算法研究 2.1特征选择 特征选择过程特征选择是对数据进行预处理的机器学习算法,通过从数据中筛选...

网友评论

      本文标题:特征筛选工具

      本文链接:https://www.haomeiwen.com/subject/dxvmzktx.html