子集搜索与评价
特征选择的必要性
在实际应用中,数据往往包含大量特征,但并非所有特征都对学习任务有用。特征选择(Feature Selection)的目标是从原始特征集中选择一个有效的特征子集。
为什么需要特征选择
- • 降低维度:减少特征数量,缓解维度灾难
- • 提高性能:去除无关和冗余特征,提高模型泛化能力
- • 增强可解释性:保留重要特征,模型更易理解
- • 降低计算开销:减少训练和预测时间
特征选择方法
子集搜索策略
- 前向搜索(Forward Selection): 从空集开始,逐步加入特征
- 后向搜索(Backward Elimination): 从全集开始,逐步删除特征
- 双向搜索: 结合前向和后向搜索
- 全局搜索: 枚举所有可能的子集(计算量大,通常不可行)
子集评价准则
如何评价一个特征子集的好坏?
- 信息增益: 特征能够提供多少关于类别的信息
- 基尼指数: 衡量数据纯度,常用于决策树
- 相关系数: 特征与标签的线性相关程度
- 模型性能: 在验证集上的准确率、AUC等指标
💡 特征子集搜索是NP难问题
d个特征有2d个可能的子集,当d很大时无法穷举。 实际中常用启发式搜索策略,虽然不保证最优,但能在合理时间内找到较好的解。
特征选择过程可视化
演示前向搜索、后向搜索在不同数据集上的特征选择过程
🚧 开发中...
过滤式选择
过滤式方法(Filter)
过滤式方法先对数据集进行特征选择,然后再训练学习器。 特征选择过程与后续学习器无关,通常基于统计量或信息论指标。
Relief算法
Relief是一种著名的过滤式特征选择方法,为每个特征设计一个"相关统计量", 评估特征区分同类和异类样本的能力。
- 随机选择样本x
- 找到x的同类最近邻(near-hit)和异类最近邻(near-miss)
- 如果特征在x和near-hit上差异小、在x和near-miss上差异大,则该特征重要
- 更新特征权重统计量
- 重复1-4多次,选择权重最大的k个特征
Relief-F(多分类扩展)
δⁱ = δⁱ - Σₓⱼ∈near-hit diff(xⁱ, xʲ)² + Σc≠y Σₓₖ∈near-miss(c) diff(xⁱ, xᵏ)²
其中 δⁱ 是第i个特征的统计量,diff是特征差异度量
✓ 优点
- • 计算效率高
- • 与学习器无关,通用性强
- • 易于理解和实现
✗ 缺点
- • 忽略特征间的相互作用
- • 独立评价每个特征
- • 可能选出冗余特征
Relief算法演示
可视化Relief如何计算特征权重,区分重要和不重要特征
🚧 开发中...
包裹式选择
包裹式方法(Wrapper)
包裹式方法直接把学习器的性能作为特征子集的评价准则。 将特征选择和学习器训练结合在一起。
LVW(Las Vegas Wrapper)
LVW是一种典型的包裹式特征选择方法,采用随机策略进行子集搜索。
- 随机产生一个特征子集
- 在该子集上训练学习器,评估性能
- 如果性能优于当前最优子集,则更新
- 重复1-3直到达到停止条件(如最大迭代次数或时间限制)
- 返回验证集上性能最好的特征子集
其他包裹式方法
- 递归特征消除(RFE): 反复训练模型,每次删除权重最小的特征
- 遗传算法: 用进化策略搜索特征子集空间
- 序列前向/后向选择: 基于学习器性能逐步添加/删除特征
✓ 优点
- • 直接针对学习器优化
- • 考虑特征间的交互
- • 通常性能更好
✗ 缺点
- • 计算开销大(需多次训练)
- • 容易过拟合到验证集
- • 与学习器强相关
包裹式vs过滤式对比
在相同数据集上对比过滤式和包裹式方法的特征选择结果
🚧 开发中...
嵌入式选择与L1正则化
嵌入式方法(Embedded)
嵌入式方法将特征选择过程与学习器训练过程融为一体, 在学习器训练过程中自动进行特征选择。
基于L1正则化的特征选择
L1正则化会产生稀疏解, 即许多特征的权重变为0,从而实现特征选择。
min Σᵢ L(yᵢ, f(xᵢ)) + λ||w||₁
L1范数:||w||₁ = Σⱼ |wⱼ|
LASSO回归
LASSO(Least Absolute Shrinkage and Selection Operator)是L1正则化线性回归:
min ||y - Xw||² + λ||w||₁
当λ足够大时,部分wⱼ会被压缩到0,相应特征被自动剔除。
💡 为什么L1产生稀疏性?
L1正则项在原点不可导,梯度下降容易将权重压缩到0。 而L2正则项(||w||²)是平滑的,只会让权重变小但不会变为0。
其他嵌入式方法
- 决策树的特征选择: 在树生长过程中自动选择最优特征
- 神经网络的剪枝: 训练后移除不重要的连接或神经元
- Elastic Net: 结合L1和L2正则化(α·||w||₁ + β·||w||²)
✓ 优点
- • 计算效率高于包裹式
- • 考虑特征间的交互
- • 与学习器结合紧密
✗ 缺点
- • 依赖特定学习器
- • 超参数λ需要调节
- • 可能不如包裹式准确
💎 LASSO正则化路径
可视化L1正则化如何随着λ增大逐步将特征系数压缩至0,实现自动特征选择
LASSO正则化路径
当前系数值
系数大小(特征重要性)
💡 LASSO稀疏性原理
LASSO目标函数
L1范数惩罚:||w||₁ = Σ|wᵢ|,促使权重稀疏化
✓ 为什么产生稀疏性?
- • L1范数在原点不可导
- • 梯度下降容易将权重压缩到0
- • λ越大,零系数越多
⚙️ 应用场景
- • 高维数据特征选择
- • 去除不相关特征
- • 提高模型可解释性
📊 正则化路径
随着λ从0增加到∞,特征系数依次变为0,形成完整的LASSO路径。 通过交叉验证选择最优λ,在模型复杂度和拟合误差间取得平衡。
稀疏表示与字典学习
稀疏表示
稀疏表示(Sparse Representation)试图用少量"基向量"的线性组合来表示样本,即表示系数中大部分为0。
稀疏表示问题
min ||α||₀ subject to x = Dα
其中 D 是字典矩阵,α 是稀疏系数,||α||₀ 表示α中非零元素个数
L0范数最小化是NP难问题,实践中通常用L1范数作为凸松弛:
min ||α||₁ subject to x = Dα 或 min ||x - Dα||² + λ||α||₁
字典学习
字典学习(Dictionary Learning)旨在为数据集学习一个合适的字典D,使得所有样本都能用该字典稀疏表示。
字典学习目标
min ||X - DA||²F + λΣᵢ ||αᵢ||₁
其中 X = [x₁, ..., xₘ],A = [α₁, ..., αₘ]
需要同时学习字典D和稀疏系数A,这是一个非凸优化问题。
K-SVD算法
K-SVD是经典的字典学习算法,采用交替优化策略:
- 稀疏编码:固定字典D,求解稀疏系数A(用OMP、LASSO等方法)
- 字典更新:固定A,逐个更新字典中的原子(用SVD)
- 重复1-2直到收敛
💡 应用场景
- • 图像去噪:学习干净图像的字典,稀疏表示去除噪声
- • 图像超分辨率:学习低分辨率-高分辨率图像对的字典
- • 人脸识别:用同类样本的字典稀疏表示测试样本
- • 压缩感知:从少量测量值重构稀疏信号
稀疏表示与字典学习演示
可视化字典学习过程和稀疏重构效果
🚧 开发中...
压缩感知
压缩感知原理
压缩感知(Compressed Sensing)是一种信号采样理论,指出:如果信号在某个域是稀疏的,那么可以用远少于奈奎斯特采样定理要求的测量次数来恢复信号。
核心思想
- 稀疏性:信号x在某个变换域(如小波、傅里叶)中是稀疏的
- 测量:通过测量矩阵Φ进行随机投影,得到y = Φx(维度m < n)
- 重构:从欠定方程y = Φx恢复稀疏信号x
重构问题
min ||x||₀ subject to y = Φx
实践中用L1松弛:min ||x||₁ subject to y = Φx
RIP条件
限制等距性质(Restricted Isometry Property, RIP) 保证了测量矩阵Φ能够保持稀疏信号的结构。 满足RIP的测量矩阵(如高斯随机矩阵)可以以高概率准确重构稀疏信号。
💡 应用领域
- • 医学成像:MRI快速成像,减少扫描时间
- • 单像素相机:用少量随机测量重构图像
- • 无线通信:频谱感知、信道估计
- • 雷达成像:合成孔径雷达(SAR)成像
压缩感知打破了传统采样理论的限制,在信号本身稀疏或可稀疏表示时, 能以少量测量实现高质量重构,具有重要的理论和应用价值。
压缩感知信号重构
演示从少量随机测量中重构稀疏信号的过程
🚧 开发中...