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

本博客是针对周志华教授所著《机器学习》的“第11章 特征选择与稀疏学习”部分内容的学习笔记。


在实际使用机器学习算法的过程中,往往在特征选择这一块是一个比较让人模棱两可的问题,有时候可能不知道如果想要让当前的模型效果更好,到底是应该加还是减掉一些特征,加又是加哪些,减又是减哪些,所以借着对这一章内容的学习,希望可以在文末解决这个疑惑。

子集搜索与评价

对一个学习任务来说,给定属性集,其中有些属性可能很关键、很有用,另一些属性则可能没什么用,我们将属性称为“特征”(feature),对当前学习任务有用的属性称为“相关特征”(relevant feature)、没什么用的属性称为“无关特征”(irrelevant feature)。从给定的特征集合中选择出相关特征子集的过程,称为“特征选择”(feature selection)。

特征选择是一个重要的“数据预处理”(data preprocessing)过程,在现实机器学习任务中,获得数据之后通常先进行特征选择,此后再训练学习器,那么,为什么要进行特征选择呢?

  • 首先,我们在现实任务中经常会遇到维数灾难问题,这是由于属性过多造成的。若能从中选择出重要的特征,则能缓解该问题。(这个意义上来说,特征选择与降维有相似的动机。链接对维数灾难的理解
  • 去除不相关特征往往会降低学习任务的难度。

特征选择过程还要确保不丢失重要特征,否则后续学习过程会因为重要信息的缺失而无法获得好的性能。并且给定同一个数据集,若学习任务不同,则相关特征很可能不同,因此,特征选择中所谓的“无关特征”是指与当前学习任务无关

还有一类特征称为“冗余特征”(redundant feature),它们所包含的信息能从其它特征中推演出来。例如,对于一个立方体,若已有特征“底面长”“底面宽”,则“底面积”是冗余特征,因为它从用已有特征得到。冗余特征很多时候不起作用,去除它们会减轻学习过程的负担。不过有时候冗余特征也可以降低学习任务的难度,因为它可能恰好对应了完成学习任务所需的“中间概念”。比如说,如果学习目标是估算立方体的体积,则“底面积”这个冗余特征的存在将使得体积的估算更容易。

为简化讨论,本章暂且假定数据中不涉及冗余特征,并且假定初始的特征集合中包含了所有的重要信息。

而如果要从初始的特征集合中选取一个包含了所有重要信息的特征子集,若没有任何领域知识作为先验假设(领域知识可以简化特征选择过程),那就只好遍历所有可能的子集了;然而这在计算上不太可行,因为会遭遇组合爆炸,特征个数稍多就无法进行。可行的做法是产生一个“候选子集”,评价出它的好坏,基于评价结果产生下一个候选子集,再对其进行评价,……,这个过程持续进行下去,直至无法找到更好的候选子集为止。显然,这里涉及两个关键问题:

  • 如何根据评价结果获取下一个候选特征子集?
  • 如何评价候选特征子集的好坏?
  • 贪心策略:前向搜索、后向搜索与双向搜索

这里写图片描述

因此,在非遍历所有子集的要求下,子集搜索方法必然只能是贪心的。

子集评价(subset evaluation)

给定数据集D,假定D中第i类样本所占的比例为 pi(i=1,2,...,|y|) 。为便于讨论,假定样本属性均为离散型。对属性子集A,假定根据其取值将D分成了V个子集 D1,D2,...,DV ,每个子集中的样本在A上取值相同,于是我们可计算属性子集A的信息增益:

Gain(A)=Ent(D)ΣVv=1|Dv|DEnt(Dv)
其公式其实就是数据集D的信息熵,减去按照属性A切分出来的所有数据集的加权信息熵的差值。其中信息熵衡量的是信息的混乱/模糊程度。其公式定义为:
Ent(D)=Σ|y|i=1pklog
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值