当前位置: 首页 > java >正文

周志华《机器学习导论》第11章 特征选择与稀疏学习

目录

1. 子集搜索与评价(怎么选特征子集  好子集的指标)

2. 过滤式选择 + Relief(不管学习器 先筛一下)

3. 包裹式选择 + LVW(为学习器量身定做)

4. 嵌入式选择与L1正则化(边筛边训 正则化)

5. 稀疏表示与字典学习(特征提取 最好的特征与最好的字典)

6. 压缩感知(把压缩过的信号 稀疏表示后 恢复出原信号)

k限定等距性RIP

应用:书籍推荐问题


1. 子集搜索与评价(怎么选特征子集  好子集的指标)

维度灾难 选择与当前学习任务比较相关的特征 进行训练

冗余特征:比如已知立方体的长宽高 底面积就是冗余特征 可以由其他特征得到

但可能会降低学习任务的难度 比如用表面积和高 能够更好的学习体积

如何选择特征子集,评价特征子集的好坏?

贪心式的双端“子集搜索” 从空集开始加 加入后使得总体效果最好的特征;也可以删最无关的特征

子集评价”评估特征对分类的帮助 用信息增益 可参考决策树那部分

下文将阐释三种特征选择方法

2. 过滤式选择 + Relief(不管学习器 先筛一下)

先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关

Relief (Relevant Features) 二分类问题  对每个特征计算相关统计量 选择值最大的几个

先在其同类样本中寻找最近邻xi,nh,称为“猜中近邻

再在其异类样本中寻找最近邻xi,nm,称为“猜错近邻”     对于样本xi,属性j

猜错间距-猜中间距  代表j 在样本区分的帮助性 然后再对i个样本进行求和

多分类问题变形为Relief-F; 多种类 对每个类找猜错近邻 再按种类样本数目放缩权重

3. 包裹式选择 + LVW(为学习器量身定做)

针对给定学习器选择最有利于其性能、 “量身定做”的特征子集

(1)随机产生特征子集   

(2)使用交叉验证 如果性能更好(误差小 或者误差同特征数少)则替换为最优解

(3)如果连续T次没有更新答案 就退出循环

与过滤式相比 最终学习器的性能更好; 但因为需多次训练学习器 计算开销会大很多

4. 嵌入式选择与L1正则化(边筛边训 正则化)

特征选择过程与学习器训练过程同时完成

正则化项: L2范数岭回归;   L1范数LASSO 更易于获得“稀疏”(sparse)解 w非零变量少

L1正则化问题的求解可使用近端梯度下降(PGD)迭代求解

如果先不考虑正则化系数 仅有f(x)

 

所以进行的迭代为

如果加上正则化系数 最小化目标为

 

 因为每个分量独立 可解得

5. 稀疏表示与字典学习(特征提取 最好的特征与最好的字典)

若把数据集看做一个矩阵 每一行代表一个样本 每一列代表一个特征 特征选择即选择列

稀疏表示可以去除无关列 降低学习难度与计算开销 提高模型的解释性。

字典学习的目标:提取事物/任务 最本质的特征(类似于字典当中的字或词语)

就像话语是通过字词的排列组合 可以用这个字典里的特征表示这一类的所有事物

字典好不好:取决提取的特征是否稀疏 是否为任务的本质特征

 进行反复迭代 (1)先固定字典B 求到每个x 最好的α表示;

(2)再固定α求最好的字典B。    反复这两步。

字典d维度=任务样本x的维度   k维度为存了多少基本的字/词 特征;可以通过控制k控制字典大小。

6. 压缩感知(把压缩过的信号 稀疏表示后 恢复出原信号)

对模拟信号采样得数字信号 信息传递时又需压缩数字信号,目标可精确重构原信号

假定有长度为m的离散信号x,采样得长度为n的采样后信号y, 使用测量矩阵φ 短了很多n<<m

正过来得到压缩后的值很容易   如何实现已知y 反推x?

有难度 因为从信息少的返回信息多的 可能对应很多信息多的解(欠定方程)

 

若有    则

若根据y能恢复出稀疏的s 再用s恢复x

压缩感知:先获得原信号的稀疏表示; 再利用稀疏性,从少量观测样本中恢复原信号

k限定等距性RIP

找到合适的矩阵A 恢复s  条件y=As  Min= s的零范数(非零元素个数)

L1 范数最小化在一定条件下与L0 范数最小化问题共解 所以可以转化为LASSO形式

应用:书籍推荐问题

假设获得一些读者对于书的评价

没有书被所有人度过 也没有人读过所有书 所以相当于很多值是缺失的 需要恢复出完全的值

压缩感知技术恢复欠采样信号的前提条件之一是 信号有稀疏表示

书籍的特征有 题材、作者等     题材数远小于书本数 所以满足稀疏性

矩阵补全问题 可写成找一个秩最小的矩阵X 并且矩阵X对应位置与A有效值位置数相同

转化为最小化 核范数(奇异值之和)

http://www.xdnf.cn/news/15836.html

相关文章:

  • PyTorch里的张量及张量的操作
  • [前端技术基础]CSS选择器冲突解决方法-由DeepSeek产生
  • 前端的测试
  • 如何实战优化SEO关键词提升百度排名?
  • 深度学习图像分类数据集—百种病虫害分类
  • 【KDD2025】时间序列|Merlin:不固定缺失率下时间序列预测新SOTA!
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(一)
  • 服务器上的文件复制到本地 Windows 系统
  • python网络爬虫小项目(爬取评论)超级简单
  • git fork的项目远端标准协作流程 仓库设置[设置成upstream]
  • 快速上手git
  • LINUX入门(二)QT的安装及运行环境搭建
  • 【实习总结】Qt中如何使用QSettings操作.ini配置文件
  • Vue中组件的生命周期
  • 08_Opencv_基本图形绘制
  • Docker实战:使用Docker部署envlinks极简个人导航页
  • 激光雷达和相机在线标定
  • [C/C++安全编程]_[中级]_[如何安全使用循环语句]
  • 语言学校为何成为IT润日路径的制度跳板?签证与迁移结构的工程化拆解
  • 交通出行大前端与 AI 融合:智能导航与出行预测
  • 智能制造——48页毕马威:汽车营销与研发数字化研究【附全文阅读】
  • jxORM--编程指南
  • linux + 宝塔面板 部署 django网站 启动方式:uwsgi 和gunicorn如何选择 ?
  • windows命令提示符cmd使用
  • Django接口自动化平台实现(四)
  • 第 30 场 蓝桥·算法入门赛 题解
  • 制作mac 系统U盘
  • 零基础学习性能测试第一章-为什么会有性能问题
  • 全面解析 JDK 提供的 JVM 诊断与故障处理工具
  • VSCode使用Jupyter完整指南配置机器学习环境