机器学习(周志华): chapter 11 特征选择与稀疏学习

最近在看“特征选择”相关内容,总结下chapter 11的一些知识点,具体包含4方面内容:

  • feature 子集搜索与评价
  • 3中特征选择方式
  • 字典学习与稀疏表示
  • 压缩感知

一、子集搜索与评价

特征选择 可以概括为 2 大步骤:
1、子集搜索
假如数据集D的特征集为{a1,a2,…,ad}。
在第一轮搜索中,我们可以先从d个特征中,选出一个最优特征ai,使其最能表达数据D;
在第二轮搜索中,我们在{ai}的基础上,从剩下的d-1个特征中选出一个最优特征aj,使得{ai,aj}在所有{ai,?}中能够最优表达数据;
以此类推,直到选出指定数量k个特征;
上述的特征搜索过程称为“前向搜索”;
“后向搜索”与前向搜索正好相反,在每一轮中淘汰一个最无用的特征;
2、子集评价
在“子集搜索”过程中,当我们选中某个子集时,如何知道他对数据的表达优劣呢?
我们可以用“信息增益”来表达所选子集的优劣:
将数据D作为根节点,求其信息熵Ent(D);
根据某一特征ai的value 将D分割为v个结点D1,D2,…,Dv,求数据分割后的信息熵:
求信息增益Gain=
将信息增益最大的feature ai作为最优。
上式中:
Note that:上述求得的最优特征子集是“局部最优”,不是“全局最优”。

二、3类特征选择方法

1、过滤式filter

主要将“Relief 过滤式特征选择方法”,该方法设计了一个“相关统计量”,来统计各个feature的重要程度,其核心思想如下:
给定训练集{(x1,y1),(x2,y2),…,(xm,ym)}
对于每个sample xi,Relief现在同类中找其最近邻xi,nh,称为“猜中近邻”,在其他类中找其最近邻xi,nm,称为“猜错近邻”。则对于属性j的相关统计量分量可表示为:

从中可以看出,若kesaj > 0 ,则说明属性j对于区分同类与异类起正向作用;若kesaj < 0,则说明属性j起负向作用。
最后对所有sample的kesaj取平均,即得到属性j最终的相关统计量。
feature_j的相关统计量越大,说明该feature越重要!
上述Relief是用来处理二分类问题的,其变形Relief-K可用来处理多分类问题,其计算公式如下:

2、包裹式选择Wrapper

过滤式选择不考虑后序的学习器(Model),而包裹式选择直接将特征子集在学习器上的表现性能作为评价期优劣的标准(常以“平方和损失”的大小作为评判特征子集优劣的标准)。由于Wrapper形成的特征子集直接以学习器平方和损失作为评价标准,因此,相比用filter选出的子集,其能更好的适应学习器。但是,由于每形成一个特征子集就需要train一次学习器,因此,该特征选择方法 计算量很大。

Note that:LVW采用了“随机搜索”策略,换言之,如果feature数量较多的话,如果指定运行时间T较短的话,则有可能得不到最优的特征子集。

3、嵌入式选择与L1正则化
  • 所谓嵌入式选择,实际上就是将L1正则化,加入目标函数中,一起进行优化,从而得到一个仅有少数非0的w参数,换言之,仅有少数feature对于数据表达是需要的。
    加入L1正则化的目标函数
    公式如下:
  • L1正则化,可以采用2种求解方式:
    1)前向逐步回归
    2)近端梯度下降(Proximal Gradient Descent :PGD)
    其核心思想是:利用“泰勒展开”将目标函数的求解问题,变为一个“二次函数的求解问题”,其具体求解过程如下图所示:


感觉比较有意思的一个解说,记录下来,内容如下:
比起L2正则化,在目标函数中加入L1正则化更能得到稀疏feature,原因如下:

如上图所示:平方和损失与L1等值线的交点一般在数轴上,此时w2=0 ,w1 != 0;而平方和损失与L2等值线的交点一般不再数轴上,此时 w2 != 0, w1 != 0;
因此,相比L2,L1更能得到稀疏解;

三、字典学习

参见博文:字典学习

四、压缩感知

压缩感知关注的是,如何利用原始信号的“稀疏性”,从部分观测样本中恢复原信号。
通常认为,压缩感知可分为“感知测量”和“重构恢复”这两个阶段。
在“感知测量“阶段,主要关注如何对原始信号进行处理,以获得稀疏样本表示。这方面的内容会涉及到“傅里叶变换,余弦变换,小波变换”,“字典学习,稀疏表示”等技术。
在“重构恢复”阶段,关注的是“如何基于原始信号的稀疏性,从少量观测样本y中恢复原始信号x”。
假设:原始信号x长度为m,通过奈奎斯特采样定理 进行采样后的信号y长度为n,这里n << m。
y与x的关系满足下式:

由于n << m,未知数多于方程数,因此,不能由y确定x。
为求解x,我们将x进行稀疏性表示 x = f(s),这样,可通过求解s 而得到 x。那么这里,为什么可以求出s呢?
这是由于s是稀疏信号,因此,我们可以通过以下约束条件求解最优s:

object: min |s|0 (0范式:表示s的非0分量个数)
s.t. y = g(f(s))

求|s|_0_的最小,我们又可将其转化为求s的L1最小,即:

object:min |s|1
s.t. y = g(f(s))

这样,求s的问题就可以转化为求L1的问题,我们可以利用“PGD"算法来求解s。s求出后即可求解x。

下面给出“数学公式”解释:
step1:将y与s的关系式书写如下:

step2:为使求s问题,转化为求|s|_0_问题,进而转化为求|s|_1_问题,则上述公式11.20 中的A要满足如下条件:
述

基于部分信息来恢复全部信息的技术在“推荐系统“中也有应用,如下图所示,利用读者的对书籍的部分评分(部分信息),来获得书籍的所有评分(全部信息):

为了从“部分信息“获得“全部信息“,则要求全部信息x要能用稀疏变量s表示。
观察上图,我们知道,书籍一般根据题材的不同,可以分为不同类别,一般讲,题材类别的数量 << 书籍数量,因此,我们可以认为上图“全部信息x“ 可以进行“稀疏表示s” : x = fai[读者,题材] * s[题材,书籍]。因而,根据“压缩感知”的原理可知,根据“部分信息”,可求得“全部信息”。在书评问题中,其求解主要采用“矩阵补全技术”(note that:上述公式x = fai[读者,题材] * s[题材,书籍]中,fai[读者,题材]算是已知量,可根据SVD等方法求解得出,s[题材,书籍]是需要求解的“稀疏表示”,求得s后,可表示x= fai[] * s[]。下列“矩阵补全技术”中,求解的X相当于稀疏表示s):

相关阅读:电商推荐系统

猜你喜欢

转载自blog.csdn.net/u014765410/article/details/87990616