【转】[特征选择] An Introduction to Feature Selection 翻译
中文原文链接: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.
特征选择教程和方法
在本文之前,我们已经看到许多特征选择的例子了.
- Weka: 如何用weka选择特征
- Scikit-learn: 如何用python的scikit-learn库做递归特征删除
- R: 如何用R做递归特征删除
选择特征时的陷阱
特征选择是另一个的应用机器学习过程的重要部分, 如模型选择. 你不可以放弃和忘记.
考虑特征选择在模型选择过程中很重要.如果你不能,你可能会在无意中带入偏见到你的模型中,最终导致过拟合.
"...应该在你的训练集以外做特征选择...不这样做,你将会导致训练数据的过拟合."
-- 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"重做你的分析.
更多阅读
为了在这个课题中有更深的理解, 你可以选择这个话题的一本书, 如下:
- Feature Selection for Knowledge Discovery and Data Mining
- Computational Methods of Feature Selection
- Computational Intelligence and Feature Selection: Rough and Fuzzy Approaches
- Subspace, Latent Structure and Feature Selection: Statistical and Optimization Perspectives Workshop
- Feature Extraction, Construction and Selection: A Data Mining Perspective
特征选择是特征工程的一个子课题. 你可能会喜欢深入看一下特征工程的话题. “Discover Feature Engineering, How to Engineer Features and How to Get Good at It“ , 下一篇博文就是这篇文章的翻译.
【转】[特征选择] An Introduction to Feature Selection 翻译的更多相关文章
- 单因素特征选择--Univariate Feature Selection
An example showing univariate feature selection. Noisy (non informative) features are added to the i ...
- 机器学习-特征选择 Feature Selection 研究报告
原文:http://www.cnblogs.com/xbinworld/archive/2012/11/27/2791504.html 机器学习-特征选择 Feature Selection 研究报告 ...
- 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 ...
- 特征选择与稀疏学习(Feature Selection and Sparse Learning)
本博客是针对周志华教授所著<机器学习>的"第11章 特征选择与稀疏学习"部分内容的学习笔记. 在实际使用机器学习算法的过程中,往往在特征选择这一块是一个比较让人模棱两可 ...
- highly variable gene | 高变异基因的选择 | feature selection | 特征选择
在做单细胞的时候,有很多基因属于noise,就是变化没有规律,或者无显著变化的基因.在后续分析之前,我们需要把它们去掉. 以下是一种找出highly variable gene的方法: The fea ...
- The Practical Importance of Feature Selection(变量筛选重要性)
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...
- Graph Regularized Feature Selection with Data Reconstruction
Abstract • 从图正则数据重构方面处理无监督特征选择: • 模型的思想是所选特征不仅通过图正则保留了原始数据的局部结构,也通过线性组合重构了每个数据点: • 所以重构误差成为判断所选特征质量的 ...
- 10-3[RF] feature selection
main idea: 计算每一个feature的重要性,选取重要性前k的feature: 衡量一个feature重要的方式:如果一个feature重要,则在这个feature上加上noise,会对最后 ...
- Feature Selection Can Reduce Overfitting And RF Show Feature Importance
一.特征选择可以减少过拟合代码实例 该实例来自机器学习实战第四章 #coding=utf-8 ''' We use KNN to show that feature selection maybe r ...
随机推荐
- Qt Creator pro 文件 导入vs2013碰到的问题
显示error LNK1117:sytax error in option... 解决办法 从Properties --> Linker --> Command Line 中删掉Addit ...
- 一次爬虫实践学习(C#)
我们经常浏览网页,有时候看到一些精美的图片,想下载下来保存,但是太多,如果一张一张的下载,那太费时了:如果你喜欢看书,看小说,那么浏览小说网站是常有的事,但是有时候我们不能联网,比如农村老家,如果还想 ...
- 搭建基于Jenkins salt-api的运维工具
1. 安装salt-master和salt-minion 安装过程不再赘述,请参考http://docs.saltstack.com/en/latest/topics/installation/ind ...
- [Solved]bcdedit.exe文件权限问题
最近在项目开发过程中,要使用到C:\Windows\system32\bcdedit.exe 但是在使用过程中,发现了一个问题.在命令行下面使用bcdedit.exe,如果是以管理员方式运行的命令行就 ...
- funsioncharts的图表操作heatmap
网址:http://www.fusioncharts.com/dev/chart-guide/heat-map-chart/introduction.html 以下只是假数据,目前还没有实现动态数据获 ...
- Java当中的反射
1:反射的概念 反射是指一类应用,它们能够自描述和自控制.也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自 ...
- SAP Query工具(一 Overview)
SAP提供了3种Query工具 1,SAP Query 2,InfoSet (Ad Hoc) Query 3,QuickViewer 一般说Query是指第一种,SAP Query 1,SAP Que ...
- 解析xml并且导入mysql
https://www.zhihu.com/question/28139319 解析超过500G的xml 写入mysql,如何尽快写入? 解析超过500G的xml 写入mysql,如何尽快写入? 现在 ...
- 后台调取前台js中的函数
Page.ClientScript.RegisterStartupScript(this.GetType(), "setPicType", "setPicType(2); ...
- java源代码跟踪
首先我们要学会的是将JDK源码加载Eclipse中. 1.点“窗口”——>"首选项",选择左边的"Java"——>"已安装的JRE&quo ...