特征选择与稀疏学习
说明
本章节内容仅包含概念记述,内容不全,详细内容还得看🍉书
特征(描述物体的属性)的分类
- 相关特征: 对当前学习任务有用的属性
- 无关特征: 与当前学习任务无关的属性
- 冗余特征: 其所包含信息能由其他特征推演出来
特征选择:
- 从给定的特征集合中选出任务相关特征子集,必须确保不丢失重要特征
- 原因:减轻维度灾难,在少量属性上构建模型,降低学习难度,留下关键信息
- 方法:产生初始候选子集,评价候选子集好坏,基于评价结果产生下一个候选子集
子集搜索与评价
子集搜索:用贪心策略选择包含重要信息的特征子集
- 向前搜索:逐渐增加相关特征
- 向后搜索:从完整的特征集合开始,逐渐减少特征
- 双向搜索:每一轮逐渐增加相关特征,同时减少无关特征
子集评价:
- 特征子集确定了对数据集的一个划分,每个划分区域对应着特征子集的某种取值
- 样本标记对应着对数据集的真实划分
- 通过估算这两个划分的差异,就能对特征子集进行评价;与样本标记对应的划分的差异越小,则说明当前特征子集越好
将特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法,大致分为过滤式、包裹式、嵌入式三类.
过滤式选择
先用特征选择过程过滤原始数据,再用过滤后的特征来训练模型;特征选择过程与后续学习器无关
Relief方法
过程:
- 为每个初始特征赋予一个“相关统计量”,度量特征的重要性
- 特征子集的重要性由子集中每个特征所对应的相关统计量之和决定
- 设计一个阈值,然后选择比阈值大的相关统计量分量所对应的特征
- 或者指定欲选取的特征个数,然后选择相关统计量分量最大的指定个数特征
相关统计量确定:
- 猜中近邻:在x_i的同类样本中寻找其最近邻x_{i,nh}
- 猜错近邻:在x_i的异类样本中寻找其最近邻x_{i,nm}
- 相关统计量对应于属性j的分量为:\(\delta^j=\sum_{i}[-\text{diff}(x_i^j,x_{i,nh}^j)^2 + \text{diff}(x_i^j,x_{i,nm}^j)^2]\)
- 若j为离散型,则 \(x_a^j= x_b^j\) 时,\(\text{diff}(x_a^j,x_b^j)=0\),否则为1
- 若j为连续型,\(\text{diff}(x_a^j,x_b^j)=|x_a^j− x_b^j|\),注意\(x_a^j\),\(x_b^j\) 已规范化到 [0,1]区间
相关统计量越大,属性 j 上,猜对近邻比猜错近邻越近,即属性 j 对区分对错越有用
Relief 的时间开销随采样次数以及原始特征数线性增长,运行效率很高
拓展至多分类:Relif-F
包裹式选择
包裹式选择直接把最终将要使用的学习器的性能作为特征子集的评价准则
- 包裹式特征选择的目的就是为给定学习器选择最有利于其性能、“量身定做”的特征子集
- 包裹式选择方法直接针对给定学习器进行优化,因此从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好
- 包裹式特征选择过程中需多次训练学习器,计算开销通常比过滤式特征选择大得多
LVW包裹式特征选择方法
步骤:
- 在循环的每一轮随机产生一个特征子集
- 在随机产生的特征子集上通过交叉验证推断当前特征子集的误差
- 进行多次循环,在多个随机产生的特征子集中选择误差最小的特征子集作为最终解
嵌入式选择与L1正则化
嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,在学习器训练过程中自动地进行特征选择
本节后面的推导没抄完,暂时忽略它吧
- 考虑最简单的线性回归模型,以平方误差为损失函数,并引入L_2范数正则化防止过拟合,则有
$$$$
- 将 \(L_2\) 范数替换为\(L_1\)范数,则称为LASSO,更容易获得稀疏解
$$$$

假设x仅有两个属性, w有两个分量\(w_1\)和\(w_2\)。
目标优化的解在平方误差项与正则化项之间折中,即在图中平方误差项等值线与正则化等值线相交处。
从图中看出,采用\(L_1\)范数时交点常出现在坐标轴上,即产生\(w_1\)或者\(w_2\)为0的稀疏解
稀疏表示
- 将数据集考虑成一个矩阵,每行对应一个样本,每列对应一个特征,则矩阵中有很多零元素,且非整行整列出现。这种稀疏表示优势在于文本数据线性可分,存储高效。
字典学习
- 为普通稠密表达的样本找到合适的字典,将样本转化为稀疏表示,这一过程称为字典学习
压缩感知
思考
能否利用部分数据恢复全部数据?🤔 压缩感知 (compressive sensing) 为解决此类问题提供了新的思路