机器学习第十一章--特征选择与稀疏学习

news2025/3/11 4:32:11

一、子集搜索与评价

我们将属性称为 “特征”(feature),对当前学习任务有用的属性称为 “相关特征”(relevant feature)、没什么用的属性称为 “无关特征”(irrelevant feature).从给定的特征集合中选择出相关特征子集的过程,称为“特征选择”(feature selection).

有两个很重要的原因:减轻维数灾难问题、降低学习任务的难度.

冗余特征”(redundant feature):所包含的信息能从其他特征中推演出来.冗余特征在很多时候不起作用,去除它们会减轻学习过程的负担.但有时冗余特征会降低学习任务的难度.

子集搜索”(subset search)::

  • 前向”(forward)搜索:初始将每个特征当做一个候选特征子集,然后从当前所有的候选子集中选择出最佳的特征子集;接着在上一轮选出的特征子集中添加一个新的特征,同样地选出最佳特征子集;最后直至选不出比上一轮更好的特征子集。
  • 后向”(backward)搜索:初始将所有特征作为一个候选特征子集;接着尝试去掉上一轮特征子集中的一个特征并选出当前最优的特征子集;最后直到选不出比上一轮更好的特征子集。
  • 双向”(bidirectional)搜索:将前向搜索与后向搜索结合起来,即在每一轮中既有添加操作也有剔除操作。

子集评价”(subset evaluation):

给定数据集D,假定D中第i类样本所占的比例为p_{i}(i=1,2,...,\left | y \right |).假定样本属性均为离散型.对属性子集A,假定根据其取值将D分成了V个子集\left \{ D^{1},D^{2},...,D^{V} \right \},每个子集中的样本在A上取值相同,属性子集A的信息增益:

 将特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法.
常见的特征选择方法大致可分为三类:过滤式(filter)、包裹式(wrapper)和嵌入式(embedding).

二、过滤式选择

过滤式方法先对数据集进行特征选择,然后再训练学习器.
Relief (Relevant Features)设计了一个“相关统计量”来度量特征的重要性.该统计量是一个向量,其每个分量分别对应于一个初始特征,最终只需指定一个阈值r,然后选择比T大的相关统计量分量所对应的特征即可;也可指定欲选取的特征个数k,然后选择相关统计量分量最大的k个特征.
Relief的关键是如何确定相关统计量.给定训练集{\left \{ (x_{1},y_{1}),(x_{2},y_{2}),...,(x_{m},y_{m}) \right \}},对每个示例x_{i},,Relief 先在x_{i}的同类样本中寻找其最近邻x_{i,nh},称为“猜中近邻”(near-hit),再从x_{i}的异类样本中寻找其最近邻x_{i,nm},称为“猜错近邻”(near-miss),然后,相关统计量对应于属性j的分量为

Relief是为二分类问题设计的,其扩展变体Relief-F能处理多分类问题.其相关统计量对应于属性j的分量为:

三、包裹式选择 

包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价准则.
包裹式特征选择比过滤式特征选择更好,计算开销通常更大.

LVW (Las Vegas Wrapper)在拉斯维加斯方法(Las Vegas metnod)框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价准则.

算法描述:

若有运行时间限制,则有可能给不出解.

四、 嵌入式选择与L_{1}正则化

嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择.

给定数据集我们考虑最简单的线性回归模型,以平方误差为损失函数,则优化目标为

当样本特征很多,而样本数相对较少时,上式很容易陷入过拟合.为了缓解过拟合问题,可对上式引入正则化项.

若使用L_{2}范数正则化,则有“岭回归”(ridge regression)

采用L_{1}范数,则有LASSO (Least Absolute Shrinkage andSelection Operator)

L_{1}范数和L_{2}范数正则化都有助于降低过拟合风险,L_{1}L_{2}更易于获得“稀疏”(sparse)解,即它求得的w会有更少的非零分量.

L正则化问题的求解可使用近端梯度下降(Proximal Gradient Descent,简称PGD) .具体来说,令\nabla表示微分算子,对优化目标

 若f(x可导,且\nablaf满足L-Lipschitz条件,即存在常数L>0使得

则在x_{k}附近可将f(x)通过二阶泰勒展式近似为

最小值在如下 x_{k+1} 获得:

推广到正则化,加一个正则项求最小值:

 得到每个分量的解:

五、稀疏表示与字典学习

为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示形式,从而使学习任务得以简化,模型复杂度得以降低,通常称为“字典学习”(dictionary learning)(侧重于学得字典的过程),亦称“稀疏编码”(sparse coding)(侧重于对样本进行稀疏表达的过程).下面不做区分。

给定数据集\left \{ x_{1} ,x_{2} ,...x_{m} \right \},字典学习最简单的形式为

受LASSO的启发,我们可采用变量交替优化的策略来求解式.

首先在第一步,我们固定住字典B,为每个样本x_{i}找到相应的\alpha _{i}:

在第二步,我们固定住\alpha _{i}来更新字典B:

基于逐列更新策略的KSVD:令b_{i}表示字典矩阵B的第i列, \alpha ^{i}表示稀疏矩阵A的第i行,上式可重写为

六、压缩感知

现实,常对数据进行压缩,方便处理,但在传递的时候,因为各种情况会出现信息损失,通过压缩感知来解决这个问题

假定我们以远小于奈奎斯特采样定理要求的采样率进行采样,即

y=\Phi x

这个信号是无法还原出原信号的

但现在假定可以,

y=\Phi \Psi s=As

压缩感知关注的是如何利用信号本身所具有的稀疏性,从部分观测样本中恢复原信号.

通常认为,压缩感知分为“感知测量”和“重构恢复”这两个阶段.

  • 感知测量”关注如何对原始信号进行处理以获得稀疏样本表示,这方面的内容涉及傅里叶变换、小波变换以及1字典学习、稀疏编码等,不少技术在压缩感知提出之前就已在信号处理等领域有很多研究;
  • 重构恢复”关注的是如何基于稀疏性从少量观测中恢复原信号,这是压缩感知的精髓,当我们谈到压缩感知时,通常是指该部分.

限定等距性”(Restricted Isometry Property,简称RIP):

对大小为n * m的矩阵A,若存在常数δk ∈(0,1)使得任意向量s和A的所有子矩阵Ak∈Rn*k

则称A满足k限定等距性。通过下面优化近乎完美的从y中恢复出稀疏信号s,进而恢复x:

L_{0}范数的最小化是一个NP难题,L_{0}范数最小化在一定条件下与L_{0}最小化共解,则:

该式可以转化为LASSO的等价形式通过近端梯度下降求解,即“基寻踪去噪”。


 


 






 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单位订餐小程序开发:便捷高效,重塑职场餐饮新体验

随着移动互联网技术的飞速发展,各行各业都在积极探索数字化转型之路,以提升工作效率与用户体验。在单位日常运营中,餐饮管理作为保障员工基本生活需求的重要环节,其便捷性、高效性直接关系到员工的工作满意度与整体氛围。因此&…

鸿蒙内核源码分析(Fork篇) | 一次调用,两次返回

笔者第一次看到fork时,说是一次调用,两次返回,当时就懵圈了,多新鲜,真的很难理解.因为这足以颠覆了以往对函数的认知, 函数调用还能这么玩,父进程调用一次,父子进程各返回一次.而且只…

linux memory cgroup的memory.move_charge_at_immigrate含义

1.内核文档 上面的例子说明: 最开始某个进程是在cgroup A中,后面要迁移到cgroup B中,那么进程的内存计数是否要完全迁入B中,就是通过memory.move_charge_at_immigrate控制,如果目标cgroup也就是B设置了1到该字段中&am…

猫头虎 分享:什么是Thrift?Thrift的简介、安装、用法详解入门教程

猫头虎 分享:什么是Thrift?Thrift的简介、安装、用法详解入门教程 今天猫头虎带大家一起探讨 一个在人工智能和分布式系统开发中十分重要的工具——Thrift。无论你是AI开发者还是大数据工程师,了解和掌握Thrift都将极大地提高你的跨语言服务…

高性能web服务器

目录 一、简介 (一)nginx-高性能的web服务端 (二)用户访问体验 二、I/O模型 (一)概念 (二)网络I/O模型 (三)阻塞型 I/O 模型 (四&#xf…

AI系列-黑神话:悟空

今天的朋友圈被黑神话悟空刷圈了,喝的咖啡都是黑神话联名版本。四年磨一剑的本地游戏,身边也不少小伙伴用金钱支持了,属于现象级的游戏产品。游戏引擎后续是否可以结合AI文生图,小说编写、文生视频。加快大作的快速生成 &#xff…

Effective-Java-Chapter8-方法

https://github.com/clxering/Effective-Java-3rd-edition-Chinese-English-bilingual/blob/dev/Chapter-8/Chapter-8-Introduction.md 准则一 检查参数的有效性 首先对于方法要写详细的文档,例如参数要求,抛出什么异常以源码为例: 又比如…

分享一个基于微信小程序的反诈科普平台springboot(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

Web开发:ORM框架之Freesql的入门和技巧使用小结

目录 零、官网链接 一、字段映射表 二、查询 1.freesql独特封装:between关键字 2.分页(每页 20 条数据,查询第 1 页) 3.Withsql(子查询,不建议) 3.简单查询、映射查询 4.参数查询、自定义…

RK3568笔记五十六:yolov8_obb旋转框训练部署

若该文为原创文章,转载请注明原文出处。 本文基于rknn_model_zoo和山水无移大佬的博客和代码训练模型并部署到正点原子的ATK-DLRK3568板子测试。 https://github.com/ultralytics/ultralytics 一、训练 1、环境搭建 使用的是AUTODL环境,yolov8-obb数据集不大,也可以使用c…

NIO中的异步—ChannelFuture、CloseFuture以及异步提升在NIO中的应用

ChannelFuture 客户端调用connect后返回值为ChannelFuture对象,我们可以利用ChannelFuture中的channel()方法获取到Channel对象。 由于上述代为为客户端实现,若想启动客户端实现连接操作,必须编写服务端代码,实现如下:…

TCP协议为什么是三次握手和四次挥手

1.一次握手&&二次握手 一次握手就能成功的话,也就代表着不需要进行确认,那么万一有恶意的服务器一直发送SYN,而服务器需要维护大量的连接,维护连接又需要成本,那么就很容易引发SYN洪水,导致服务器…

Linux中的exec族函数

exec 系列函数用于替换当前进程的用户空间代码和数据,从而执行一个新的程序。调用 exec 系列函数不会创建新的进程,但会用新程序的代码和数据替换当前进程,因此调用 exec 后,进程的 ID 保持不变,但进程的行为变为执行新…

计算机毕业设计 教师科研管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

第1章-05-通过浏览器控制台安装JQuery.js库

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲。 🎉欢迎 👍点赞✍评论⭐收…

大数据背景下基于Python语言的单车租赁商业数据可视化分析

注:源码在最后,只是一次实验记录,不足之处请指教。 一 研究背景及意义 在大数据时代,商业领域的数据量迅速增长,如何有效地利用这些数据成为企业决策和优化成为重要的研究课题。单车租赁作为一种新兴的共享经济模式,其…

健韵坊(详细项目实战一)Spring系列 + Vue3

这一次来一个项目改造的项目实战,基于很久之前的一个demo项目,来实现一个改造优化和部署上线的项目实战。(就当是接手*山项目并且加以改造的一个实战吧。) 之前是一个关于运动的一个项目(其实之前连名字都没想好hhhh&…

vue3 响应式 API:watch()、watchEffect()

watch() 基本概念 watch()用于监视响应式数据的变化,并在数据变化时执行相应的回调函数。可以监视单个响应式数据、多个响应式数据的组合,或者一个计算属性。 返回值 返回一个函数,调用这个函数可以停止监视。 特点 watch() 默认是懒侦听的&…

【Linux网络】select函数

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 select函数介绍select函数参数介绍select函数返回值select的工作流程TCP服务器【多路复用版】 select函数介绍 在Linux网络编程中,select 函数是一种非常有用的IO多路复用技术&#xff0…

秃姐学AI系列之:LeNet + 代码实现

目录 LeNet MNIST数据集 LeNet模型图 ​编辑 总结 代码实现:卷积神经网络 LeNet LeNet(LeNet-5)由两个部分组成:卷积编码器核全连接层密集块 检查模型 LeNet 卷积神经网络里面最为著名的一个网络,80年代末提出…