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

一、子集搜索与评价

我们将属性称为 “特征”(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.mzph.cn/pingmian/51868.shtml

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

相关文章

C++竞赛初阶L1-13-第五单元-循环嵌套(29~30课)535: T456454 数字统计

题目内容 请统计某个给定范围 [L,R] 的所有整数中,数字 2 出现的次数。 比如给定范围 [2,22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现…

【开发语言】编译型语言和解释性语言有啥区别?

作为一名从业多年的程序员,对于编译型语言和解释型语言之间的区别有着深入的理解。这两种类型的编程语言在将源代码转换成可执行代码的过程中采用了不同的机制,这导致了它们在执行效率、跨平台性、安全性以及开发效率等方面存在一些差异。 编译型语言(Compiled Languages)…

Java项目集成RocketMQ

文章目录 1.调整MQ的配置1.进入bin目录2.关闭broker和namesrv3.查看进程确认关闭4.编辑配置文件broker.conf,配置brokerIP15.开放端口109116.重新启动1.进入bin目录2.启动mqnamesrv和mqbroker1.启动 NameServer 并将输出重定向到 mqnamesrv.log2.**启动 Broker 并将…

easyexcel--导入导出实现自定义格式转换

自定义格式 我们在数据库设计的时候经常会有枚举类型,如0表示普通用户,1表示VIP用户等,这在excel导入的时候,我们会填普通用户而不是0,这样就需要用到自定义格式把普通用户转换成0,我写了一个通用的抽象类…

深度学习基础—RMSprop算法与Adam 优化算法

1.RMSprop算法 1.1.算法流程 除了动量梯度下降法,RMSprop算法也可以加快梯度下降,这个算法的算法流程如下:深度学习基础—动量梯度下降法http://t.csdnimg.cn/zeGRo 1.2.算法原理 和动量梯度下降不同的是,对dW和db的变成了平方项…

什么是视频比特率?与视频时长是什么关系

​ ‌比特率是指单位时间内传输或处理的比特的数量,单位为‌bps(‌bit per second)。‌ 比特率经常用于描述在电信和计算领域中数据传输的速度,也可以作为衡量音频和视频文件数据率的指标。比特率越高,传送的数据越大,音频或视频…

springsecurity 登录认证一(ajax)

一、准备工作 1.1 导入依赖 因springboot 3.0 以上版本只能支持java17 顾使用2.5.0 版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version><…

代码随想录 day 42 动态规划 买卖股票

第九章 动态规划part09 188.买卖股票的最佳时机IV 本题是123.买卖股票的最佳时机III 的进阶版 视频讲解&#xff1a;https://www.bilibili.com/video/BV16M411U7XJ https://programmercarl.com/0188.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%…

鸿蒙开发入门day05-ArkTs语言(接口与关键字)

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;还请三连支持一波哇ヾ(&#xff20;^∇^&#xff20;)ノ&#xff09; 目录 ArkTS语言介绍 接口 接口属性 接口继承 泛型类型和函数 泛型…

R语言统计分析——回归诊断2

参考资料&#xff1a;R语言实战【第2版】 R语言的car包提供的大量函数&#xff0c;大大增强了拟合和评价回归模型的能力。如下&#xff1a; 函数目的qqPlot()分位数比较图durbinWatsonTest()对误差自相关性做Durbin-Watson检验crPlots()成分与残差图ncvTest()对非恒定的误差方…

transformer-explainer

安装和启动 找到这个项目&#xff0c;然后装好了。 这个项目的目的如名字。 https://github.com/poloclub/transformer-explainerTransformer Explained: Learn How LLM Transformer Models Work with Interactive Visualization - poloclub/transformer-explainerhttps:/…

顶顶通呼叫中心中间件-一句话识别语音识别安装步骤

顶顶通呼叫中心中间件-一句话模型安装步骤&#xff0c;对接mod_vad。一句话识别&#xff08;http接口提交录音文件识别&#xff09; 一、安装一句话模型 一句话识别&#xff08;http接口提交录音文件识别&#xff09;&#xff0c;比如对接mod_vad(老电话机器人接口) curl -s…

web开发,过滤器,前后端交互

目录 web开发概述 web开发环境搭建 Servlet概述 Servlet的作用&#xff1a; Servlet创建和使用 Servlet生命周期 http请求 过滤器 过滤器的使用场景&#xff1a; 通过Filter接口来实现&#xff1a; 前后端项目之间的交互&#xff1a; 1、同步请求 2、异步请求 优化…

docker-compose安装MongoDB 7.0.12

文章目录 一. Mac1.1 创建目录1.2 docker-compose.yaml默认不开启relSet开启relSet&#xff08;数据同步&#xff09; 1.3 部署1.4 卸载1.5 replSet配置1.5.1 初始化replSet1.5.2 创建超管用户1.5.3 验证用户1.5.4 查看replSet状态 二. Centos72.1 创建目录2.2 docker-compose.…

JZ51 数组中的逆序对

数组中的逆序对_牛客题霸_牛客网 描述 在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P mod 1000000007 数据范围&#xff…

Xv6虚拟内存(三):进程地址空间

阅读材料 Xv6代码&#xff1a;memlayout.h、proc.h、proc.c教材3.6节 进程地址空间初始化 proc_pagetable函数 该函数用于初始化一个用户进程的地址空间&#xff0c;返回该地址空间的根页表基地址。该函数只干两件事&#xff1a;映射trampoline页到最高虚拟地址处&#xff0…

使用 AWS EKS 部署 Easysearch

随着企业对数据搜索和分析需求的增加&#xff0c;高效的搜索引擎解决方案变得越来越重要。Easysearch 作为一款强大的企业级搜索引擎&#xff0c;可以帮助企业快速构建高性能、可扩展的数据检索系统。在云计算的背景下&#xff0c;使用容器化技术来部署和管理这些解决方案已经成…

【软件测试】功能测试理论基础

目录 项目的测试流程&#x1f3f4; 需求评审 评审形式 测试人员在需求评审中职责 测试计划与方案 测试计划 问题 测试方案&#x1f3f4; 测试计划与方案的对比 功能测试设计&#x1f3f4; 测试设计的步骤 项目的测试流程&#x1f3f4; 作用&#xff1a; 有序有效开展…

Flink消费Kafka数据积压排查解决

0、背景 有个Flink任务每天不定时会出现数据积压&#xff0c;无论是白天还是数据量很少的夜里&#xff0c;且积压的数据量会越来越多&#xff0c;得不到缓解&#xff0c;只能每日在积压告警后重启&#xff0c;重启之后消费能力一点毛病没有&#xff0c;积压迅速缓解&#xff0…

【云原生】RBAC授权详解

使用 RBAC签权 文章目录 使用 RBAC签权一、RBAC介绍1.1、介绍1.2、RBAC四种对象 二、Role和ClusterRole三、RoleBinding和ClusterRoleBinding四、示例Role4.1、创建Kubernetes用户4.2、Role示例4.3、RoleBinding4.4、验证4.5、退回管理员权限用户 五、示例ClusterRole5.2、创建…