中文原文链接:http://www.cnblogs.com/AHappyCat/p/5318042.html

英文原文链接: An Introduction to Feature Selection

下面的中文译文侧重从原理上进行解释,但是在实际的应用中往往侧重的是实现过程,

可以看考这个链接,描述的比较详细,需要细细的学习:http://blog.csdn.net/bryan__/article/details/51607215

【中文原文】

你需要哪些特征来构建一个预测模型?

这是一个困难的问题,需要这个领域的深度知识.

自动选择你的数据中的那些对要解决的问题最有用的或者最相关的特征是可能的. 这个过程叫做特征选择.

在这篇文章中,你会发现特征选择的方法和类型, 下一次你需要为机器学习模型选择特征的时候, 你可以使用和遵循这些方法的一个列表.

什么是特征选择

特征选择也被叫做变量选择或者属性选择.

它是自动选择你数据的一些属性的方法,而这些属性是和你要解决的预测模型问题特别相关的.

¨特征选择是一个选择相关特征子集,用于构建模型的过程¨

---Wikipedia entry

特征选择和降维不同.两种方法都是为了减少数据集的属性数量,但是降维是通过创建新的属性组合,特征选择包含和排除数据中的属性而并不改变它们. (降维可能改变数据属性,特征选择不改变它们)

降维的例子包括PCA(主成份分析),SVD(奇异值分解)和Sammon's mapping (Sammon映射).

"特征选择对于本身是有用的,但它主要是作为一个过滤器, 它屏蔽掉那些没用的特征,同时保护你的那些现有的特征."

-- Robert

特征选择解决的问题

特征选择辅助你创建一个准确的预测模型. 它们帮助你选择特征, 这些特征能够用更少的数据给你很好的或者更好的精度.

特征选择能够被用于鉴定和移掉不需要的,不相关的和冗余的属性,这些属性并不能提高预测模型精度或者可能事实上减少模型精度.

你需要更少的属性,因为它能够降低模型复杂度,而且一个更简单的模型能够被更简单的理解和解释.

"变量选择的目的有三个方面:提高预测器的预测性能, 提供更快和更低成本的预测器, 和提供更好的了解产生的数据的基本过程."

-- Guyon

特征选择算法

有三种一般类的特征选择算法: 过滤算法,包装算法和嵌入式算法.

1. 过滤算法

过滤特征选择方法运用统计方法将一个分值分配给每个特征.这些特征按照分数排序,然后决定是被保留还是从数据集中删除.这个方法通常是单变量且独立的考虑每个特征,或者考虑其依赖变量.

一些过滤方法包括Chi squared test(方卡检验),information gain(信息增益)和correlation coefficient scores(相关系数得分).

2. 包装算法

包装方法考虑一族特征作为搜索问题,不同的组合被准备,检验并和其他组合比较. 我们使用一个预测模型评估特征的组合,然后根据模型精度给每个特征组合一个分数.

这个搜索过程可能有条不紊的例如best-fist搜索算法, 它可能随机例如random hill-climbing 算法.或者它可能是启发式的例如前向和后向传递增添和删除特征的.

一个例子就是递归特征消除算法.

3. 嵌入式算法

嵌入式算法在模型创建的时候,学习哪些特征对于模型精度的贡献最大.最典型的嵌入式特征选择方法是正则化方法.

正则化方法也被称为引入附加约束到预测算法(例如回归算法)的优化,它偏向于较低复杂度的模型.

正则规划算法的例子是Lasso,Elastic Net和Ridge Regression.

特征选择教程和方法

在本文之前,我们已经看到许多特征选择的例子了.

选择特征时的陷阱


特征选择是另一个的应用机器学习过程的重要部分, 如模型选择. 你不可以放弃和忘记.

考虑特征选择在模型选择过程中很重要.如果你不能,你可能会在无意中带入偏见到你的模型中,最终导致过拟合.

"...应该在你的训练集以外做特征选择...不这样做,你将会导致训练数据的过拟合."

-- Ben

例如,当你使用精度估测方法,例如交叉验证的适合,你必须包含特征选择在每个内循环中. 这意味着特征选择是在模型训练前就已经在准备好的fold中执行了. 准备数据时先做特征选择,然后在模型选择和训练时执行是错误的. (??)

"如果我们运用合适的流程,在每个fold上执行特征选择,就不再会有关于特征和fold相关影响的信息".

--Dikran

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

"如果你在所有数据上执行特征选择,然后交叉验证,再在交叉验证过程的每个fold的测试数据同样被用来选择特征, 这就造成了性能分析的偏见.

--Dikran

特征选择列表:

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, 检测异类例子,使用step5排在顶端的变量;检查和丢弃他们.

8. 你知道什么需要先测试吗? No, 使用一个线性预测器.  使用前向选择方法,用probe作为停止标准; 或者在step5 之后, 使用0范数嵌入方法作为比较, 用增加的特征子集建立一个相同特征的预测器序列. 你能用一个更小子集匹配或者提高性能吗? 如果能的话, 用那个子集尝试一个线性预测器.

9. 你有新的想法,时间,时间资源和足够的例子吗?Yes, 比较一些特征选择方法,包括你的想法,相关参数,后向选择和嵌入式算法. 使用线性和非线性预测器. 用模型选择选择最好的方法.

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

更多阅读

为了在这个课题中有更深的理解, 你可以选择这个话题的一本书, 如下:

特征选择是特征工程的一个子课题. 你可能会喜欢深入看一下特征工程的话题. “Discover Feature Engineering, How to Engineer Features and How to Get Good at It“ , 下一篇博文就是这篇文章的翻译.

【转】[特征选择] An Introduction to Feature Selection 翻译的更多相关文章

  1. 单因素特征选择--Univariate Feature Selection

    An example showing univariate feature selection. Noisy (non informative) features are added to the i ...

  2. 机器学习-特征选择 Feature Selection 研究报告

    原文:http://www.cnblogs.com/xbinworld/archive/2012/11/27/2791504.html 机器学习-特征选择 Feature Selection 研究报告 ...

  3. the steps that may be taken to solve a feature selection problem:特征选择的步骤

    參考:JMLR的paper<an introduction to variable and feature selection> we summarize the steps that m ...

  4. 特征选择与稀疏学习(Feature Selection and Sparse Learning)

    本博客是针对周志华教授所著<机器学习>的"第11章 特征选择与稀疏学习"部分内容的学习笔记. 在实际使用机器学习算法的过程中,往往在特征选择这一块是一个比较让人模棱两可 ...

  5. highly variable gene | 高变异基因的选择 | feature selection | 特征选择

    在做单细胞的时候,有很多基因属于noise,就是变化没有规律,或者无显著变化的基因.在后续分析之前,我们需要把它们去掉. 以下是一种找出highly variable gene的方法: The fea ...

  6. The Practical Importance of Feature Selection(变量筛选重要性)

    python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...

  7. Graph Regularized Feature Selection with Data Reconstruction

    Abstract • 从图正则数据重构方面处理无监督特征选择: • 模型的思想是所选特征不仅通过图正则保留了原始数据的局部结构,也通过线性组合重构了每个数据点: • 所以重构误差成为判断所选特征质量的 ...

  8. 10-3[RF] feature selection

    main idea: 计算每一个feature的重要性,选取重要性前k的feature: 衡量一个feature重要的方式:如果一个feature重要,则在这个feature上加上noise,会对最后 ...

  9. Feature Selection Can Reduce Overfitting And RF Show Feature Importance

    一.特征选择可以减少过拟合代码实例 该实例来自机器学习实战第四章 #coding=utf-8 ''' We use KNN to show that feature selection maybe r ...

随机推荐

  1. HTML5学习小结

    HTML5是用于取代1999年所制定的 HTML4.01和XHTML1.0标准的HTML标准版本.HTML5的第一份正式草案已于2008年1月公布:2012年12月,规范已经正式定稿.W3C计划在20 ...

  2. rails再体验(第一个程序)

    掌握redmine plugin开发的目标在2016年未实现,2017年继续. 选择<Ruby on Rails Tutorial>教程,windows安装railsinstaller,该 ...

  3. 仿网易新闻 ViewPager 实现图片自动轮播

    新闻 App 首页最上方一般会循环播放热点图片,如下图所示. 本文主要介绍了利用 ViewPager 实现轮播图片,图片下方加上小圆点指示器标记当前位置,并利用 Timer+Handler 实现了自动 ...

  4. [转] dpkg-deb命令

    点击此处阅读原文 function addLink() { var body_element = document.getElementsByTagName('body')[0]; var selec ...

  5. HTTP 和FTP 状态信息总结(留着自己用)

    HTTP 状态信息 HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源H ...

  6. win7安装oracle11g64位提示环境变量Path长度超出

    解决办法:安装包以管理员方式运行

  7. JAVA应用程序占用CPU、内存过高分析过程

    1.查看cpu占有率 top -P 2.查看进程cpu占用率 ps -mp 3749 -o THREAD,tid,time|sort -rn|head -n 20 查看占用cpu高,且占用时间长的线程 ...

  8. hdu5737(2016多校联赛第2场D)

    题意:给2组数据a和b数组,每次有2种操作:(+,l,r,x)把a数组第l个到第r个元素全置为x,(?,l,r)查询[l,r]之间哪些位置满足a[i]>=b[i](i>=l &&a ...

  9. 如何在RCP程序中添加一个banner栏

    前言:这段时间还算比较空闲,我准备把过去做过的有些形形色色,甚至有些奇怪的研究总结一下,也许刚好有人用的着也不一定,不枉为之抓耳挠腮的时光和浪费的电力.以前有个客户提出要在RCP程序中添加一个bann ...

  10. [模板] SAP

    int dfs(int x,int flow){ if(x==T) return flow; int tmp=res=0; for(int i=last[x];i;i=next[i]) if (d[x ...