上一章:机器学习10——降维与度量学习
下一章:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备@[TOC]
机器学习实战项目:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备@[TOC]

一、特征的基本概念与分类

特征是描述物体的属性,根据与学习任务的相关性可分为三类:

  • 相关特征:对当前学习任务有用的属性(如判断“好瓜”时的“根蒂”“纹理”等);
  • 无关特征:与当前学习任务无关的属性(如判断“好瓜”时的“西瓜颜色”);
  • 冗余特征:信息可由其他特征推演出来的属性(如“西瓜重量”和“西瓜体积”可能存在冗余)。

(注:文档暂不深入讨论冗余特征)

二、特征选择的意义与方法

特征选择是从给定特征集合中选出任务相关特征子集,核心是确保不丢失重要特征,目的是减轻维度灾难(在少量属性上构建模型)和降低学习难度(保留关键信息)。

(一)基本思路

特征选择需解决两个问题:子集搜索(生成候选特征子集)和子集评价(判断子集好坏)。

  1. 子集搜索

    • 前向搜索:从空集开始,逐步添加最优特征(每次新增一个能提升评价的特征);
    • 后向搜索:从完整特征集开始,逐步移除最差特征(每次删除一个降低评价的特征);
    • 双向搜索:同时进行前向添加和后向删除,提升搜索效率。
  2. 子集评价
    常用信息熵衡量特征子集的区分能力:

    • 特征子集 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=1VDDvEnt(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=1Ypklog2pk p k p_k pk为第 k k k类样本占比)。
(二)常见特征选择方法
  1. 过滤式选择
    独立于学习器,先对特征进行评分,再根据评分选择特征。典型方法为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;连续属性取归一化后的绝对差);
    • 特点:计算效率高(时间开销随特征数线性增长),但未考虑学习器特性。
  2. 包裹式选择
    以特定学习器的性能为评价标准,为其“量身定制”特征子集:

    • 优点:直接优化学习器性能,通常比过滤式效果好;
    • 缺点:需多次训练学习器,计算开销大。
  3. 嵌入式选择
    将特征选择嵌入模型训练过程,通过正则化实现特征筛选:

    • L1范数正则化:在损失函数中加入 λ ∥ w ∥ 1 \lambda\|w\|_1 λw1(如LASSO回归),易产生稀疏解(部分特征权重 w j = 0 w_j=0 wj=0),实现特征选择;
    • L2范数正则化(岭回归):加入 λ ∥ w ∥ 2 2 \lambda\|w\|_2^2 λw22,权重趋于小值但不稀疏,无法直接筛选特征;
    • 原理:L1正则化的等值线与损失函数等值线的交点常出现在坐标轴上,导致部分权重为0。

三、稀疏学习与字典学习

(一)稀疏表示

指数据矩阵中存在大量零元素(非整行/列零值),优势包括:

  • 存储高效(仅需记录非零元素);
  • 增强模型可解释性(非零特征为关键因素);
  • 适用于文本等天然稀疏数据。
(二)字典学习

通过学习“字典”矩阵 B B B,将样本表示为字典的稀疏线性组合( x i = B α i x_i = B\alpha_i xi=Bαi α i \alpha_i αi为稀疏系数)。

  1. 优化目标
    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=1mxiBαi22+λi=1mαi1
    (第一项为重构误差,第二项为稀疏正则化)。

  2. 求解方法(迭代优化)

    • 固定字典 B B B:求解稀疏系数 α i \alpha_i αi(类似LASSO问题);
    • 固定系数 α i \alpha_i αi:更新字典 B B B,最小化重构误差 ∥ X − B A ∥ F 2 \|X - BA\|_F^2 XBAF2 X X X为样本矩阵, A A A为系数矩阵);
    • KSVD算法:逐列更新字典,对残差矩阵进行奇异值分解,取最大奇异值对应的向量更新字典列。

总结

特征选择通过筛选相关特征减轻维度灾难,分为过滤式(高效但独立于学习器)、包裹式(针对性强但开销大)、嵌入式(结合正则化,如L1范数)。稀疏学习通过稀疏表示和字典学习,在高效存储和特征提取中发挥重要作用,适用于高维数据处理。

上一章:机器学习10——降维与度量学习
下一章:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备@[TOC]
机器学习实战项目:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备@[TOC]

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐