字典学习中的特征选择
文章目录
- 特征选择
- 子集搜索与评价
- 过滤式选择
- 包裹式选择
- 嵌入式选择
特征选择
子集搜索与评价
对一个学习任务来说,给定属性集,其中有些属性可能很关键、很有用,另一些属性则可能没什么用.我们将属性称为"特征" (feature) ,对当前学习任务有用的属性称为"相关特征" (relevant feature) 、没什么用的属性称为"无关特征" (irrelevant feature)。从给定的特征集合中选择出相关特征于集的过程,称为"特征选择" (feature selection).
特征选择是一个重要的"数据预处理" (data preprocessing) 过程?在现实机器学习任务中获得数据之后通常先进行特征选择,此后再训练学习器.那么为什么要进行特征选择呢?
原因有两个。
- 我们在现实任务中经常会遇到维数灾难问题,这是由于属性过多而造成的。若能从中选择出重要的特征,使得后续学习过程
仅需在一部分特征上构建模型,则维数灾难问题会大为减轻.从这个意义上说,特征选择与降维有相似的动机;事实上,它们是处理高维数据的两大主流技术。 - 去除不相关特征往往会降低学习任务的难度,这就像侦探破案一样,若将纷繁复杂的因素抽丝剥茧,只留下关键因素,则真相往往更易看清。
欲从初始的特征集合中选取一个包含了所有重要信息的特征子集,若没有任何领域知识作为先验假设,那就只好遍历所有可能的子集了;然而这在计算上却是不可行的,因为这样做会遭遇组合爆炸,特征个数稍多就无法进行。可行的做法是产生一个"候选子集",评价出它的好坏,基于评价结果产生下一候选子集,再对其进行评价,……这个过程持续进行下去,直至无法找到更好的候选子集为止。
这里产生了两个关键环节:
- 如何根据评价结果获取下一个候选特征子集?
- 如何评价候选特征子集的好坏?
第一个环节是"子集搜索" (Subset Search) 问题
- “前向” (fòrward) 搜索
将单个特征看做候选子集,选出最优的一个作为第一轮的选定集,然后逐次增加一个特征作为候选子集选出其中最优的,直到第 k+1 轮时,最优的候选 (k+1) 特征子集不如上一轮的选定集,则停止生成候选子集,并将上一轮选定的特征集合作为特征选择结果. - “后向” (backward) 搜索
从完整的特征集合开始,每次尝试去掉一个无关特征,这样逐渐减少特征的策略 - “双向” (bidirectional) 搜索
可将前向与后向搜索结合起来,每一轮逐渐增加选定相关特征(这些特征在后续轮中将确定不会被去除)、同时减少无关特征的策略
【Tips】
上述策略都是贪心的,因为它们仅考虑了使本轮选定集最优,例如在第二轮假定选择 α 5 α_5 α5 优于 α 6 α_6 α6,于是选定集为 α 2 , α 4 , α 5 {α_2,α_4,α_5} α2,α4,α5 ,然而在第四轮却可能是 α 2 , α 4 , α 6 , α 8 {α_2,α_4,α_6,α_8} α2,α4,α6,α8 比所有的 α 2 , α 4 , α 5 , α i {α_2,α_4,α_5,α_i} α2,α4,α5,αi都更优。遗憾的是,若不进行穷举搜索,则这样的问题无法避免.
第二个环节是"集评价" (subset evaluation) 问题
给运数据集D,假定D中第i类样本所占的比例为 P i ( i = 1 , 2 , . . . , ∣ y ∣ ) P_i(i=1,2,...,|y|) Pi(i=1,2,...,∣y∣)。 为便于讨论,假定样本属性均为离散型.对属性子集A,假定根据其取值将D分成了V个子集 { D l , D 2 , . . . , D V D^l,D^2,...,D^V Dl,D2,...,DV},每个子集中的样本在A上取值相同,于是我们可计算属性子集A的信息增益
G a i n ( A ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(A)=Ent(D)-\sum^V_{v=1}\frac{|D^v|}{|D|}Ent(D^v) Gain(A)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
其中信息熵定义为
E n t ( D ) = − ∑ i = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\sum^{|y|}_{i=1}p_klog_2p_k Ent(D)=−i=1∑∣y∣pklog2pk
信息增益 Gain(A) 越大,意味着特征子集A包含的有助于分类的信息越多。于是,对每个候选特征子集,我们可基于训练数据集D来计算其信息增益,以此作为评价准则.
特征子集A实际上确定了对数据集D的一个划分,每个划分区域对应着A上的一个取值,而样本标记信息Y则对应着对D的真实划分,通过估算这两个划分的差异,就能对A进行评价。与Y对应的划分的差异越小,则说明A越好。信息熵仅是判断这个差异的一种途径,其他能判断两个划分差异的机制都能用于特征子集评价。
常见的特征选择方法大致可分为三类:过滤式(Filter)、包裹式(Wrapper)和嵌入式(Embedding)。
过滤式选择
过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关.这相当于先用特征选择过程对初始特征进行"过滤",再用过滤后的特征来训练模型。
如Relief (Relevant Features) [Kira and Rendell, 1992]
包裹式选择
与过滤式特征选择不考虑后续学习器不间?包裹式特征选择直接把最终将要使用的学习器的性能作为特征于集的评价准则.换言之?包裹式特征选择的目的就是为给定学习器选择最有利于其性能、"量身走做"的特征子集。
- 包裹式直接针对给定学习器进行优化,最终学习性能比过滤式要好
- 包裹式在特征选择过程中需多次训练学习器,计算开销比过滤式大得多
如LVW(Las Vegas Wrapper)[Liu and Setiono, 1996]
它在拉斯维加斯方法(Las Vegas method)框架下使用随机策略
来进行子集搜索,并以最终分类器的误差为特征子集评价准则。
拉斯维加斯方法和蒙特卡罗方法是两个以著名赌城名字命名的随机化方法回两者的主要区别是若有时间限制,则拉斯维加斯方法或者给出满足要求的解,或者不给出解,而蒙特卡罗方法一定会给出解,虽然给出的解未必满足要求,若无时间限制1 则两者都能给出满足要求的解
嵌入式选择
嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。
References:
- 《机器学习》周志华
字典学习中的特征选择相关推荐
- [转]字典学习/稀疏编码
本文转自https://zhuanlan.zhihu.com/p/26015351 机器学习--字典学习/稀疏编码学习笔记 Esquirrel 2 个月前 以下资料是小编学习字典学习/稀疏编码时,整理 ...
- Dictionary Learning(字典学习、稀疏表示以及其他)
第一部分 字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是 稀疏字典学习(Sparse D ...
- sklearn数据降维之字典学习
文章目录 字典学习简介 构造函数 实战 Step1 制作实验数据 Step2 小批字典学习 Step 3 参数调整 字典学习简介 如果把降维理解成压缩的话,那么字典学习的本质是编码,其目的是找到少量的 ...
- 『ML笔记』深入浅出字典学习1(Dictionary Learning)
目录 一.预备知识 二.字典学习以及稀疏表示的概要 2.1.我们为什么需要字典学习? 2.2.我们为什么需要稀疏表示? 三.下一节 参考文献 一.预备知识 稀疏向量:假设向量中的元素绝大部分为零元素, ...
- 字典学习以及稀疏表示的概要
https://www.cnblogs.com/hdu-zsk/p/5954658.html https://www.cnblogs.com/endlesscoding/p/10090866.html ...
- 大白话讲字典学习以及稀疏表示的概要
字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是稀疏字典学习(Sparse Diction ...
- 语音增强———字典学习介绍
语音增强--------------字典学习 字典学习就是用较少的特征(原子)来表示信号,那么信号的多个特征组合就相当于多个原子组成的字典,那么信号就可以用字典中少量的原子进行表示.信号在字典下的表示 ...
- 稀疏表示、字典学习、压缩感知的简单理解
注意:本文不涉及任何公式推导,仅对大致原理和作用进行介绍,不当之处欢迎指正. 为什么要稀疏? 1)特征选择 稀疏规则化能实现特征的自动选择,当Xi存在与输出Yi没有关系的特征(冗余特征)时,在最小化损 ...
- 深度学习中的注意力机制(一)
作者 | 蘑菇先生 来源 | NewBeeNLP 头图 | CSDN下载自视觉中国 目前深度学习中热点之一就是注意力机制(Attention Mechanisms).Attention源于人类视觉系统 ...
最新文章
- 朴素、Select、Poll和Epoll网络编程模型实现和分析——Poll模型
- 类的继承与sizeof
- rhel5.5_Apache配置openssl支持https服务
- 发现 4 个 Python 命令行可视化库,又酷又炫!
- 如何在手机上使用TensorFlow
- 高通孟樸:5G+AI将会是移动互联网主流趋势
- oracle的解析計劃,Oracle中获取执行计划的几种方法分析
- 【备忘录】word利用mathtype进行公式分章节编号和引用
- Mac 软件使用心得 极简软件清单
- c语言链表排序交换节点,链表节点排序问题
- 有线电视与计算机网都是光缆吗,【有线电视论文】计算机管理有线电视光缆数据意义分析(共4443字)...
- 编程中的快速数学公式 python
- 自然语言处理-聊天机器人
- 在android view中写坦克大战
- 大连海事大学计算机基础线上考试虚拟机环境配置
- 小程序 微信统计表格_微信小程序制作表格的方法
- Assert.assertNotNull()断言是否是空
- LTE:RA-RNTI、T-CRNTI、C-RNTI
- 视频教程-用project做项目计划及总结报表-研发管理
- 昨天,发生了这件事。。