【机器学习】特征选择方法

  • 什么是特征选择?
  • 为什么需要特征选择?
  • 特征选择的两个关键环节
  • 常见的特征选择方法
  • 参考链接:

什么是特征选择?

Feature Selection 是在模型构建过程中选择最相关、最有利于提高预测效果的特征子集的过程,也是数据预处理的重要步骤之一。

降维的区别:
机器学习中的特征选择(Feature Selection)也被称为 Variable Selection 或 Attribute Selection。
虽然特征选择和降维(dimensionality reduction)都是为了减少特征的数量,但是特征选择不同于降维:
降维是创造特征的新组合,比如PCA 和 SVD。
特征选择则只是从原有特征中进行选择或排除,不涉及原有特征的转变。


为什么需要特征选择?

训练机器学习模型之前的特征选择是很重要的预处理过程,之所以进行特征选择有以下几点很重要的原因:

  1. 现实任务中经常遇到维数灾难问题,如果能选择出重要特征,再进行后续学习过程,则维数灾难可以大为减轻。
  2. 去除不相关的特征往往会降低学习任务的难度,使模型更易理解(比如,使决策树的规则变得更加清晰)。
  3. 去除不相关的变量还可以尽量减少过拟合的风险,尤其是在使用人工神经网络或者回归分析等方法时,额外的输入变量会增加模型本身的额外自由度,这些额外的自由度对于模型记住某些细节信息会有所帮助,但对于创建一个稳定性良好、泛化性能强的模型却没有好处,也就是说增加额外的不相关变量会增大过拟合的风险(决策树技术是不存在过拟合风险的一个例子,因为标准的决策树一次只选取一个变量)。

特征选择的两个关键环节

想要从初始的特征集合中选取一个包含所有重要信息的特征子集,若没有任何先验知识,则只能遍历所有可能的子集,然而这样在计算上显然不可能,尤其是在特征个数很多的情况下。
可行的方法是:产生一个候选子集,评价它的好坏,基于评价结果产生下一个候选子集,再对其进行评价……持续这一过程,直到找不到更好的子集为止。
这一过程涉及到两个关键环节:如何根据评价结果获取下一个特征子集?如何评价候选特征子集的好坏?

环节一:子集搜索问题
前向搜索:第一个环节是“子集搜索”问题,给定特征集合 a1,a2,…,an,首先选择一个最优的单特征子集(比如 a2)作为第一轮选定集,然后在此基础上加入一个特征,构建包含两个特征的候选子集,选择最优的双特征子集作为第二轮选定子集,依次类推,直到找不到更优的特征子集才停止,这样逐渐增加相关特征的策略成为前向(forward)搜索
后向搜索:类似的,如果从完整的特征集合开始,每次尝试去掉一个无关特征,这样逐渐减少特征的策略称为后向(backward)搜索
双向搜索:前向后向搜索结合起来,每一轮逐渐增加选定相关特征(这些特征在后续轮中确定不会被去除),同时减少无关特征,这样的策略被称为双向(bidirectional)搜索。

上述策略都是贪心策略,仅考虑本轮选定集最优,但若不进行穷举,这样的问题就无法避免。

环节二:子集评价问题

确定了搜索策略,接下来就需要对特征子集进行评价,以离散型属性的信息增益为例:
给定数据集 D,设D 中第 i类样本的比例为 pi(i=1,2,…,n),则信息熵的定义为:

对于属性子集 A,假定根据其取值将 D 成了 V个子集 D1,D2,…,DV,每个子集的样本在 AA上取值相同,于是我们可以计算属性子集 AA的信息增益为:

信息增益越大,意味着特征子集 A包含的有助于分类的信息越多。于是,对于每个特征子集,我们可以基于训练集 DD来计算其信息增益,以此作为评价标准。

主要的 特征/特征子集 评价方法(Selection) 如下:
特征子集搜索机制和子集评价机制相结合,就可以得到特征选择方法。例如,将前向搜索和信息熵相结合就和决策树算法非常相似(不同之处是从第二步开始,决策树是在每个孩子节点的数据集上评价特征,而前向搜索依然是在整个数据集上评价特征)。事实上决策树本身就是一种特征选择的方法,树节点的划分属性组成的集合就是选择出的特征子集!


常见的特征选择方法

常用的特征选择方法大致可以分为三类:过滤式(filter)、包裹式(wrapper)和嵌入式(embedding)。

(一)Filter Method

过滤式方法先对数据集进行特征选择,然后再训练模型,特征选择过程与后续模型训练无关。

Relief(Relevant Features)是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量”来度量特征的重要性。该统计量是一个向量,其每个分量分别对应于一个初始特征,而特征子集的重要性则是由子集中每个特征所对应的相关统计量分量之和来决定。对每个实例x,在x的同类样本中寻找最近邻,称为“猜中近邻”(near-hit)。在x的异类样本中寻找其最近邻,称为“猜错近邻”(near-miss),相关统计量对应于属性j的分量为:

Filter 方法常用的特征子集评价标准包括:相关系数、互信息、信息增益等
更多方法参见 mlr 包支持的所有 Filter 方法。

(二)Wrapper Method

与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要使用的模型的性能作为特征子集的评价标准,也就是说,包裹式特征选择的目的就是为给定的模型选择最有利于其性能的特征子集。
从最终模型的性能来看,包裹式特征选择比过滤式特征选择更好,但需要多次训练模型,因此计算开销较大。
LVM(Las Vegas Wrapper)是一个典型的包裹式特征选择方法。它在拉斯维加斯方法框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价标准。LVW的计算开销很大,需要设置停止条件控制参数。

(三)Embedding Method

在前两种特征选择方法中,特征选择过程和模型训练过程是有明显分别的两个过程。
嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。嵌入式选择的实例是 LASSO 和 Ridge Regression。
以最简单的线性回归模型为例,其以平方误差为损失函数,则优化目标为:
在样本数较少,样本特征很多的时候,容易陷入过拟合,因此可引入正则化来防止过拟合,
若使用L2范数正则化,则此时优化目标的公式即为岭回归(ridge regression),
若是L1范数正则化,则是LASSO回归(Least Absolute Shrinkage and Selection Operator)。
L1范数和L2范数正则化都有助于降低过拟合风险,但前者还会带来一个额外的好处,它比后者更易于获得“稀疏”(sparse)解,即它求得的w会有更少的非零分类。换言之,采用L1范数比L2范数更易于得到稀疏解。
注意到w取得稀疏解意味着初始的d个特征中仅有对应着w的非零分量的特征才会出现在最终模型中,于是,求解L1范数正则化的结果是得到了仅采用一部分初始特征的模型;所以,基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程与学习器训练过程融为一体,同时完成。
此外,L1正则化问题的求解可使用近端梯度下降(Proximal Gradient Descent,PGD),即在每一步对f(x)进行梯度下降迭代的同时考虑L1范数最小化。通过PGD能使LASSO和其它基于L1范数最小化的方法得以快速求解。

由于决策树算法在构建树的同时也可以看作进行了特征选择,因此嵌入式方法可以追溯到 ID3 算法。


参考链接:

https://zhuanlan.zhihu.com/p/120924870

【机器学习】特征选择方法—Filter,Wrapper,Embedded相关推荐

  1. ML之FE:数据处理—特征工程之特征选择常用方法之基于搜索策略的三种分类、基于评价准则划分的三种分类(Filter/Wrapper/Embedded)及其代码实现

    ML之FE:数据处理-特征工程之特征选择常用方法之基于搜索策略的三种分类.基于评价准则划分的三种分类(Filter/Wrapper/Embedded)及其代码实现 目录 Wrapper包裹式/封装式- ...

  2. ML之FE:机器学习算法/数据挖掘中特征选取(变量筛选)的简介、常用方法(单变量分析并筛选—Filter/Wrapper/Embedded、多变量间相关性分析并筛选—PCC/MIC/IV)之详细攻略

    ML之FE:机器学习算法/数据挖掘中特征选取(变量筛选)的简介.常用方法(单变量分析并筛选-Filter/Wrapper/Embedded.多变量间相关性分析并筛选-PCC/MIC/IV)之详细攻略 ...

  3. 机器学习特征选择方法

    文章目录 前言 特征选择 过滤法 Pearson系数 卡方检验 互信息和最大信息系数 距离相关系数 方差选择法 包装法 嵌入法 总结 前言 最近在看吴恩达的深度学习机器学习课程.地址:deeplear ...

  4. 收藏 | 机器学习特征选择方法总结

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:七月在线 AI博士笔记系列推荐 周志华<机器学习> ...

  5. 特征选择—过滤法(Filter)、嵌入法(Embedded)和包装法(Wrapper)

    一.过滤法(Filter) 目的:在维持算法表现的前提下,帮助算法们降低计算成本 特点:独立操作,不与后续分类(或者回归)模型相关 过程: 目标对象:需要遍历特征或升维的算法.最近邻算法KNN,支持向 ...

  6. 关于机器学习特征选择的方法总结

    机器学习特征选择的方法总结 1.特征选择的重要性 随着深度学习的发展, 大大缩减了特征提取和设计的任务. 不过, 特征工程依然是各种机器学习应用领域的重要组成部分.其中对于特征选择(排序)的研究对于数 ...

  7. 机器学习相关知识点--评价指标/特征选择方法/总体性问题

    二. 评价指标 (2)衡量分类器的好坏: 这里首先要知道TP.FN(真的判成假的).FP(假的判成真).TN四种(可以画一个表格). 几种常用的指标: 精度precision = TP/(TP+FP) ...

  8. 一文介绍机器学习中的三种特征选择方法

    作者 | luanhz 来源 | 小数志 导读 机器学习中的一个经典理论是:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.也正因如此,特征工程在机器学习流程中占有着重要地位.广义的特征 ...

  9. 机器学习知识点(三十七)特征选择方法总结

    在模型训练中,特征选择是非常重要.样本有限的情况,特征过多计算开销过大:通过特征选择去掉冗余和不相关特征,可提高模型性能降低计算开销.两个字:降维.当然降维后,模型性能应该是提升的.特征选择的最终目的 ...

最新文章

  1. 什么是码元计算机通信
  2. iOS 根据图片URL从本地相册获取图片
  3. 图文详解cacti的安装和使用
  4. [转载]JDBC/Spring/MyBatis性能比较
  5. linux网络编程之IP协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)和TCP、UDP协议头结构总结
  6. TiDB 在 Ping++ 金融聚合支付业务中的实践
  7. 微软职位内部推荐-Software Engineer II_VS
  8. 青铜到王者:AIOps 平台在腾讯的升级之路
  9. 2月第三周各国家.NET域名排名Top10:中国第三
  10. mysql stored_mysql stored routine (存储例程) 中 definer 的作用 和实例
  11. 静态网页制作前夕小记录
  12. shark恒破解笔记4-API断点GetPrivateProfileStringA
  13. vue3实现动态组件加载写法
  14. Unable to detect adb version, exit value: 0xc000007b
  15. 华尔街英语核心价值观综合视频发布
  16. 163邮箱注册容量多大?外贸一般用什么邮箱,海外邮箱哪个好?
  17. JavavEE中网络编程Socket套接字Ⅰ(UDP)
  18. 想要学习嵌入式开发选择教程哪家好?
  19. UR5构型机械臂正逆运动学
  20. pt100温度传感器c语言,pt100温度传感器阻值,pt100温度与阻值对照表

热门文章

  1. Python 常用(聚类/分类)数据预处理方法
  2. python爬虫中pyc文件的生成和使用
  3. muduo scoped_ptr详解
  4. 子类的构造函数和析构函数
  5. 10年电子工程师:把这6个主流技术搞懂,月薪25K没问题
  6. 《看穿一切数字的统计学》读书笔记
  7. jwt的token自动续约_SpringSecurity Jwt Token 自动刷新的实现
  8. Java 后台实现 发送手机短信的功能(中国网建)
  9. 毁灭还是生存?业务连续性管理考验公司基业常青-系统体系风险防范
  10. 接口自动化测试工具-Apifox 基础篇:前置脚本