机器学习11——特征选择与稀疏学习
上一章:机器学习10——降维与度量学习
下一章:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备@[TOC]
机器学习实战项目:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备@[TOC]
一、特征的基本概念与分类
特征是描述物体的属性,根据与学习任务的相关性可分为三类:
- 相关特征:对当前学习任务有用的属性(如判断“好瓜”时的“根蒂”“纹理”等);
- 无关特征:与当前学习任务无关的属性(如判断“好瓜”时的“西瓜颜色”);
- 冗余特征:信息可由其他特征推演出来的属性(如“西瓜重量”和“西瓜体积”可能存在冗余)。
(注:文档暂不深入讨论冗余特征)
二、特征选择的意义与方法
特征选择是从给定特征集合中选出任务相关特征子集,核心是确保不丢失重要特征,目的是减轻维度灾难(在少量属性上构建模型)和降低学习难度(保留关键信息)。
(一)基本思路
特征选择需解决两个问题:子集搜索(生成候选特征子集)和子集评价(判断子集好坏)。
-
子集搜索
- 前向搜索:从空集开始,逐步添加最优特征(每次新增一个能提升评价的特征);
- 后向搜索:从完整特征集开始,逐步移除最差特征(每次删除一个降低评价的特征);
- 双向搜索:同时进行前向添加和后向删除,提升搜索效率。
-
子集评价
常用信息熵衡量特征子集的区分能力:- 特征子集 A A A将数据集 D D D划分为 V V V个子集 D v D^v Dv;
- 评价指标为信息增益: 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=1}^V \frac{|D^v|}{|D|}Ent(D^v) Gain(A)=Ent(D)−∑v=1V∣D∣∣Dv∣Ent(Dv),其中 E n t ( D ) = − ∑ k = 1 ∣ Y ∣ p k log 2 p k Ent(D) = -\sum_{k=1}^{|\mathcal{Y}|}p_k\log_2 p_k Ent(D)=−∑k=1∣Y∣pklog2pk( p k p_k pk为第 k k k类样本占比)。
(二)常见特征选择方法
-
过滤式选择
独立于学习器,先对特征进行评分,再根据评分选择特征。典型方法为Relief:- 核心思想:为每个特征计算“相关统计量”,衡量其区分同类与异类样本的能力;
- 关键概念:
- 猜中近邻(near-hit):样本 x i x_i xi的同类最近邻 x i , n h x_{i,nh} xi,nh;
- 猜错近邻(near-miss):样本 x i x_i xi的异类最近邻 x i , n m x_{i,nm} xi,nm;
- 相关统计量计算:
δ j = ∑ i [ − d i f f ( x i j , x i , n h j ) 2 + d i f f ( x i j , x i , n m j ) 2 ] \delta^j = \sum_i \left[-diff(x_i^j, x_{i,nh}^j)^2 + diff(x_i^j, x_{i,nm}^j)^2\right] δj=i∑[−diff(xij,xi,nhj)2+diff(xij,xi,nmj)2]
( d i f f diff diff为属性差异度量:离散属性不同取1,相同取0;连续属性取归一化后的绝对差); - 特点:计算效率高(时间开销随特征数线性增长),但未考虑学习器特性。
-
包裹式选择
以特定学习器的性能为评价标准,为其“量身定制”特征子集:- 优点:直接优化学习器性能,通常比过滤式效果好;
- 缺点:需多次训练学习器,计算开销大。
-
嵌入式选择
将特征选择嵌入模型训练过程,通过正则化实现特征筛选:- L1范数正则化:在损失函数中加入 λ ∥ w ∥ 1 \lambda\|w\|_1 λ∥w∥1(如LASSO回归),易产生稀疏解(部分特征权重 w j = 0 w_j=0 wj=0),实现特征选择;
- L2范数正则化(岭回归):加入 λ ∥ w ∥ 2 2 \lambda\|w\|_2^2 λ∥w∥22,权重趋于小值但不稀疏,无法直接筛选特征;
- 原理:L1正则化的等值线与损失函数等值线的交点常出现在坐标轴上,导致部分权重为0。
三、稀疏学习与字典学习
(一)稀疏表示
指数据矩阵中存在大量零元素(非整行/列零值),优势包括:
- 存储高效(仅需记录非零元素);
- 增强模型可解释性(非零特征为关键因素);
- 适用于文本等天然稀疏数据。
(二)字典学习
通过学习“字典”矩阵 B B B,将样本表示为字典的稀疏线性组合( x i = B α i x_i = B\alpha_i xi=Bαi, α i \alpha_i αi为稀疏系数)。
-
优化目标
m i n B , α i ∑ i = 1 m ∥ x i − B α i ∥ 2 2 + λ ∑ i = 1 m ∥ α i ∥ 1 min_{B,\alpha_i} \sum_{i=1}^m \|x_i - B\alpha_i\|_2^2 + \lambda\sum_{i=1}^m \|\alpha_i\|_1 minB,αii=1∑m∥xi−Bαi∥22+λi=1∑m∥αi∥1
(第一项为重构误差,第二项为稀疏正则化)。 -
求解方法(迭代优化)
- 固定字典 B B B:求解稀疏系数 α i \alpha_i αi(类似LASSO问题);
- 固定系数 α i \alpha_i αi:更新字典 B B B,最小化重构误差 ∥ X − B A ∥ F 2 \|X - BA\|_F^2 ∥X−BA∥F2( X X X为样本矩阵, A A A为系数矩阵);
- KSVD算法:逐列更新字典,对残差矩阵进行奇异值分解,取最大奇异值对应的向量更新字典列。
总结
特征选择通过筛选相关特征减轻维度灾难,分为过滤式(高效但独立于学习器)、包裹式(针对性强但开销大)、嵌入式(结合正则化,如L1范数)。稀疏学习通过稀疏表示和字典学习,在高效存储和特征提取中发挥重要作用,适用于高维数据处理。
上一章:机器学习10——降维与度量学习
下一章:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备@[TOC]
机器学习实战项目:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备@[TOC]
更多推荐


所有评论(0)