特征选择-(一)特征选择简介

翻译 2018年04月16日 20:18:21

翻译内容主要来自https://machinelearningmastery.com/an-introduction-to-feature-selection/

在构建预测模型时应该选择哪些特征??这或许是一个需要对相关领域知识有深入了解才能够解决的问题。
不过,也有一些自动化的方法能够选择出与问题最为相关的特征,这就是特征选择。
在阅读了本文之后,你将了解到不同特征选择方法,我们也为你提供了一个清单,记录了如何运用这些特征选择方法。

什么是特征选择

特征选择也被称为变量选择和属性选择,它能够自动地选择数据中目标问题最为相关的属性。

  特征选择…是在模型构建时中选择相关特征子集的过程。
                                        — 特征选择, 维基百科.

特征选择与降维不同。虽说这两种方法都是要减少数据集中的特征数量,但降维相当于对所有特征进行了重新组合,而特征选择仅仅是保留或丢弃某些特征,而不改变特征本身。
降维常见的方法有PCA,SVD,萨蒙映射等。

   特征选择是一种很有用的方法,它就像一个过滤器,丢弃一些用处小的特征。
                                          — Robert Neuhaus

特征选择解决的问题

特征选择方法能够帮助你构建更加准确的预测模型。运用特征选择方法,模型仅需少量的样本就可以得到较高的预测准确率,特征选择可以移除那些无关特征,构建复杂度更低、解释性更强的模型。

特征选择的目标有三个:1、提高模型的预测能力 2、构建效率更高,成本效益更高的模型。3、更好地理解数据生成的过程。
                                              — Guyon and Elisseeff 

特征选择算法

三种常见的特征选择算法包括:filter方法, wrapper方法和embedded方法.
Filter方法
Filter特征选择方法利用统计学手段为每个特征赋予一个权重,根据权重对特征进行排序,以此选择保留或移除某些特征,这类方法有的会独立地对每个特征进行考量,有的也会考虑特征之间的相关性。主要的Filter方法有:
- 卡方检验 Chi squared test
- 信息增益 information gain
- 相关系数 correlation coefficient scores

Wrapper方法
Wrapper方法将特征子集的选择视为一个搜索问题,首先生成不同的子集,然后进行评估,并将评估结果与其他子集进行比较。一般我们会在不同的子集上构建模型,再利用模型的预测准确率来对不同的特征子集打分。搜索方法可以是随机式的,例如随机爬山法,也可以是启发式的,例如前向迭代和反向迭代。

主要的一个Wrapper方法:递归特征消除算法(recursive feature elimination algorithm)

Embedded方法

Embedded方法是在模型构建的同时选择最好的特征。最为常用的一个Embedded方法就是:正则化。
正则化方法也被称为惩罚方法,主要思想是在模型的目标函数优化的过程中,对参数引入额外的限制,使得参数不至于过大,降低模型的复杂度。
带正则化的算法包括:LASSO回归,Elastic Net回归,Ridge回归。

一些其他的特征选择教程

Weka: For a tutorial showing how to perform feature selection using Weka see “Feature Selection to Improve Accuracy and Decrease Training Time“.
Scikit-Learn: For a recipe of Recursive Feature Elimination in Python using scikit-learn, see “Feature Selection in Python with Scikit-Learn“.
R: For a recipe of Recursive Feature Elimination using the Caret R package, see “Feature Selection with the Caret R Package

特征选择时的陷阱

特征选择应当被视为模型选择的一部分。例如,采用交叉验证作为模型的评估方法时,模型的构建将会是一个迭代的过程,而特征选择也同样包含在这个迭代的过程中,也就是说,应当在数据划分训练集之后,再对训练集进行特征选择,然后再进行训练。在划分数据之前就进行特征选择是一种错误的做法,。

其原因是,做出特征选择的决定是基于整个训练集的,这反过来传递到模型了.这可能会导致一个模型和其他模型相比,被所选择的特征而增强影响,看起来获得更好的结果,而事实上是有偏见的结果.

特征选择清单:

Esabelle Guyon 和 Andre Elisseeff (“An Introduction to Variable and Feature Selection” 的作者)提供了一个清单, 在你下次要进行特征选择时,可以参考。

  1. 你是否有领域知识? Yes, 那就构建一个更好的特定特征

  2. 你的特征在同一量纲下? No, 那就归一化这些特征.

  3. 你是否怀疑特征独立性? Yes, 那就构建联合特征或者特征的乘积.

  4. 你需要修剪输入变量吗(考虑到成本、速度以及数据解释性)? No, 构建析取特征或者加权特征.

  5. 你需要单独评估特征吗(需要评估特征的重要性或者)? Yes, 使用一个能够对特征排序的方法;

  6. 你需要一个预测器吗? No, 停止.

  7. 你怀疑你的数据”脏”吗? Yes, 利用第5步选择得到的几个高排名的特征,检测异常值,;检查并丢弃他们.

  8. 你知道应该尝试哪种方法? No, 使用一个线性预测器. 使用前向选择方法,用probe作为停止标准; 或者在第5步之后, 使用0范数的embedded方法作为比较, 用一个不断增加的特征子集建立一系列的模型. 看看能不能用一个更小的特征子集提高性能? 如果能的话, 用那个子集尝试一个线性预测器.

  9. 你有新的想法,时间,时间资源和足够的样例吗?Yes, 比较不同的特征选择方法,可以加入新的点子,相关参数,后向选择和embedded算法. 使用线性和非线性预测器. 用模型选择评估最好的方法.

  10. 你需要一个稳定的解吗? Yes, 二次采样你的数据,并为一些”bootstrap”重做你的分析.

【斯坦福---机器学习】复习笔记之特征选择

本讲大纲:1.VC维(VC dimension) 2.模型选择(model selection) —交叉验证(cross validation) —特征选择(...
  • Andrewseu
  • Andrewseu
  • 2015年09月18日 19:38
  • 3661

【Python学习系列十九】基于scikit-learn库进行特征选择

场景:特征选择在模型训练前是非常有意义的,实际上就是先期对特征相关性进行分析。 参考:http://blog.csdn.net/fjssharpsword/article/details/73550...
  • fjssharpsword
  • fjssharpsword
  • 2017年06月29日 17:20
  • 1684

基于XGBoost的特征选择原理与实战

周末填坑……
  • u013709270
  • u013709270
  • 2017年12月13日 20:34
  • 1716

机器学习&数据挖掘:特征选择之Filter : Focus Approach

Focus Approach[1]方法是基于穷举搜索的Filter方法,该方法倾向于选择能够区分样本的最小特征子集。Focus Approach特征选择的度量是一致性度量。 通俗来说,特征选择的一致...
  • banbuduoyujian
  • banbuduoyujian
  • 2016年11月14日 18:30
  • 1118

特征选择(feature selection)

特征选择 feature selection终于有时间把好久之前就想写的关于特征选择的基本介绍补上来了,主要想从以下几个方面介绍: 1. 特征选择的动机-为什么要特征选择 2. 常见的特征...
  • u012328159
  • u012328159
  • 2016年12月31日 15:00
  • 8358

特征选择, 经典三刀

感觉文章写的很好,故转过来,如有不当,请通知后马上删除。 http://mp.weixin.qq.com/s?__biz=MzIzMDA1MTM3Mg==&mid=2653077415&idx=1&...
  • mmc2015
  • mmc2015
  • 2016年11月28日 20:48
  • 543

特征选择与特征抽取

特征抽取和特征选择是DimensionalityReduction(降维)两种方法,但是这两个有相同点,也有不同点之处: 1. 概念: 特征抽取(Feature Extraction)...
  • shenxiaoming77
  • shenxiaoming77
  • 2016年01月21日 15:53
  • 8444

数据挖掘笔记-特征选择-遗传算法

基于遗传策略的特征选取 遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即...
  • wulinshishen
  • wulinshishen
  • 2014年08月13日 13:11
  • 4881

机器学习中的特征选择和优缺点

特征选择和机器学习算法两者存在紧密的联系,根据特征选择中子集评价标准和后续学习算法的结合 方式可分为嵌入式(embedded)、过滤式(filter)和封装式(wraper) 1.嵌入式特征选择 在嵌...
  • piaodexin
  • piaodexin
  • 2017年08月15日 23:49
  • 1136

matlab使用Matlab进行特征选择

http://www.zhihuishi.com/source/1811.html
  • hawiocool
  • hawiocool
  • 2015年10月31日 17:23
  • 602
收藏助手
不良信息举报
您举报文章:特征选择-(一)特征选择简介
举报原因:
原因补充:

(最多只允许输入30个字)