机器学习--稀疏学习

前置知识:

通常学习一次模型的过程如下:我们普遍为了获取更好的模型效果,直接对原始数据学习,会造成过拟合、需要特征提取;

而若特征提取完后依旧有很多特征,还是会容易过拟合。这时候就需要特征降维和特征选择。

其中:

特征降维:相当于将高维数据映射到低维空间(会改变数据的表示,低维空间映射后的特征不容易解释)

特征选择:根据特征的重要权重,不会改变维度,单纯提取部分更合适的特征来使用。(是一种舍弃不重要特征)

特征:

有关特征: 对学习任务有用的特征(保留);

无关特征: 对学习任务无用的特征(舍弃);

特征选择目的:

1. 减轻特征灾难,2. 降低学习难度

特征选择的常用方法:

1. 前向搜索:先确定一个特征集合和最优子集,依次从特征集合中选出最优特征,将最优特征移入最优子集,迭代此过程直到当前特征不再优于上一轮最优子集结束。

2. 后向搜索:先将整个特征集合作为候选子集,依次去除不相关特征;直到当特征子集不再优于上轮子集结束。

3. 双向搜索:前向和后向结合;在每轮迭代中,一次选出最优和最差特征,将最优特征移入最优子集,最差特征从候选子集去掉。

子集评价

核心:属性子集的信息增益:

当我们不断的往最优子集追加特征时,我们需要不断的计算是否带来了信息增益:

例如:我们判断一个人成绩是否合格,当没有任何特征时,是最混乱的,我们无从猜测。(也就是Ent(D)信息熵值最大),当我们引入了他对这门课程的累计投入学习时长(特征)时,我们就有了一定的了解(降低了我们的混乱程度)。随着不断的引入其他特征,我们愈发的能更大概率的确认该学生是否成绩合格。

其中:D^v是特征子集,|D|是权重。Ent(D)是当前子集划分下的信息熵; Gain(A)是信息增益。v是特征子集对结果的划分集合;

特征选择

过滤式

过滤式方法是一种将特征选择与学习器训练相分离的特征选择技术。

        1)、先将相关特征挑选出来;

        2)、再使用选择出的数据子集来训练学习器。

选择--Relief算法:

为解决二分类问题

算法思想:

        使用一个“相关统计量”来度量特征的重要性,该统计量是一个向量,其中每个分量代表着相应特征的重要性,因此我们最终可以根据这个统计量各个分量的大小来选择出合适的特征子集。

        对于数据集中的每个样例xi,首先找出与xi同类别的最近邻与不同类别的最近邻,分别称为猜中近邻(near-hit)与猜错近邻(near-miss),接着便可以分别计算出相关统计量中的每个分量。对于j分量:

\delta ^j = \sum _{i} -diff(x_i^j, x_{i,nh}^j)^2 +diff(x_i^j, x_{i,nm}^j)^2

直观上理解:对于猜中近邻,两者j特征属性的距离越小越好,对于猜错近邻,j属性距离越大越好。更一般地,若xi为离散属性diff取海明距离,即相同取0,不同取1;若xi为连续属性,则diff为曼哈顿距离,即取差的绝对值,Xa在属性j三的取值均规范化到[0,1],分别计算每个分量,最终取平均便得到了整个相关统计量。

迭代选取xi过程m次,根据\delta ^j更新j权重,最后得到各特征的平均权重。特征值越大的分类能力越强。

算法特点:时间开销随采样次数以及原始数据特征线性增长,运行效率高。

Relief-F:多分类问题

对于j分量,新的计算公式如下:

\delta ^j = \sum _i -diff(x_i^j, x_{i,nh}^j)^2 +\sum_{l\neq k} (pl \times diff(x_i^j, x_{i,l,nm}^j)^2 )

其中pl表示第l类样本在数据集中所占的比例权重,易知两者的不同之处在于:标准Relief 只有一个猜错近邻,而Relief-F有多个猜错近邻。

Relief算法只是在数据集上采样计算,而不是针对整个训练集估计特征权重,属于是高效的过滤式特征选择算法。

包裹式选择

直接把最终将要学习的学习器的性能作为特征子集的评价准则。(将特征选择和模型训练融合)

包裹方法是一种为给定学习器选择最有利于其性能的特征子集量身定做)。

比过滤式的特征选择效果更好。

LVW包裹式算法:拉斯维加斯框架下采用随机策略进行子集搜索,以最终很累起的误差为特征自己的评价准则;

LVW拉斯维加斯方法蒙特卡罗方法
算法思路  

1. 随机产生特征子集;

2. 使用交叉验证推断当前子集误差

3. 多次循环,选择误差最小的子集作为最终子集。

1. 基于概率的方式,随机从特征池中选取一定数量特征

2. 训练模型,得到模型的性能

3. 选取新的随机特征,以获取最佳特征子集。

有时间限制下可能给出也可能不给出解一定有解
无时间限制下有解有解
解的特点采样越多,越有机会得到最优解,有解必最优采样越多,解越优,不一定得出最优解
算法特点        训练开销大容易过拟合,训练开销大

嵌入式

过滤式中特征选择与后续学习器完全分离;包裹式则是使用学习器作为特征选择的评价准则

嵌入式选择:一种将特征选择与学习器训练完全融合的特征选择方法,即将特征选择融入学习器的优化过程中。

机器学习的核心任务就是:在模型简单的基础上保证模型的契合度(经验风险指的是模型与训练数据的契合度,结构风险则是模型的复杂程度)。

岭回归ridge regression:

加上了L2范数的最小二乘法,有效地解决了奇异矩阵、过拟合等诸多问题,下面的嵌入式特征选择则是在损失函数后加上了L2范数。

\min _w \sum_{i=1}^{m} (y_i-w^Tx_i)^2+\lambda ||w||_2^2

而加上了L1范数

\min _w \sum_{i=1}^{m} (y_i-w^Tx_i)^2+\lambda ||w||_1

L1范数会趋向产生少量的特征(稀疏解),其求得的w会有更少的非零分量;

L2会选择更多的特征,这些特征的权值都会接近于0;

这样L1范数在特征选择上就十分有用,而L2范数则具备较强的控制过拟合能力。可以从下面两个方面来理解:

(1)下降速度:L1范数按照绝对值函数来下降,L2范数按照二次函数来下降。因此在0附近,L1范数的下降速度大于L2范数,故L1范数能很快地下降到0,而L2范数在0附近的下降速度非常慢,因此较大可能收敛在0的附近。

(2)空间限制:L1范数与L2范数都试图在最小化损失函数的同时,让权值W也尽可能地小。我们可以将原优化问题看做为下面的问题,即让后面的规则都小于某个阈值。这样从图中可以看出:L1范数相比L2范数更容易得到稀疏解。

稀疏表示与字典学习

稀疏性表现1:数据集D矩阵中,去除很多表示特征的列;

稀疏性表现2:数据集D矩阵中存在很多0元素,且没有出现在同一列中;

当样本数据是一个稀疏矩阵时,对学习任务来说会有不少的好处,例如很多问题变得线性可分,储存更为高效等。这便是稀疏表示与字典学习的基本出发点。

稀疏编码(sparse coding)/字典学习(dictionary learning)/码书(codebook)学习:对于一个给定的稠密矩阵,若能通过某种方法找到其合适的稀疏(恰当稀疏)表示,则可以使得学习任务更加简单高效.

给定一个数据集,字典学习/稀疏编码指的便是通过一个字典将原数据转化为稀疏表示,因此最终的目标就是求得字典矩阵B及稀疏表示α,书中受LASSO的启发,使用变量交替优化的策略能较好地求解。

字典学习:

稀疏学习侧重于对样本进行稀疏性表达的过程;

字典学习侧重于学得字典的过程;

压缩感知

从长度为M的离散信号x, 用奈奎斯特采样定理采样得到长度为N的信号y。N<<M时不能还原x。

但是若存在某种线性变化满足:x = \psi y 时,即可以近乎完美的还原x。

压缩感知关注的问题:

        利用信号本身的稀疏性,从部分观测样本y中恢复原始信号x。

扩展:形象易懂讲解算法II——压缩感知 - 知乎

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

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

相关文章

C/C++端口复用SO_REUSEADDR(setsockopt参数),test ok

端口复用最常用的用途应该是防止服务器重启时之前绑定的端口还未释放或者程序突然退出而系统没有释放端口。这种情况下如果设定了端口复用&#xff0c;则新启动的服务器进程可以直接绑定端口。如果没有设定端口复用&#xff0c;绑定会失败&#xff0c;提示ADDR已经在使用中——…

STM32 寄存器配置笔记——USART DMA发送

一、DMA介绍 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传 输。无须 CPU 干预&#xff0c;数据可以通过 DMA 快速地移动&#xff0c;这就节省了 CPU 的资源来做其他操作。当产品对于时序要求较严格时&#xff0c;外设使用DMA的方式能够减…

深入了解Java 8日期时间新玩法:DateTimeFormatter与ZoneOffset的使用

推荐语 在这篇文章中&#xff0c;我们将深入探讨Java中的DateTimeFormatter和ZoneOffset类的功能和使用方法。这些类是在Java 8中引入的新的日期时间API的一部分&#xff0c;它们为我们提供了更灵活、更易用的日期和时间处理能力。尽管这些类在Java 8中已经出现&#xff0c;但…

ELK(六)—Filebeat安装部署

目录 一、介绍1.1特点1.2使用原因1.3结构图1.4工作流程 二、安装部署2.1下载2.2启动2.3监控日志文件2.4自定义字段 三、连接Elasticsearch四、工作原理 一、介绍 Filebeat是一个轻量级的日志和文件数据收集器&#xff0c;属于Elastic Stack&#xff08;ELK Stack&#xff09;中…

近期Chrome浏览器 不知哪个版本升级后原先http强制跳转到https,导致服务端302强制跳转到http也没反应

关于Chrome更新http强制跳转到https解决方法 近期Chrome浏览器 不知哪个版本升级后原先http强制跳转到https&#xff0c;导致服务端302强制跳转到http也没反应一、F12检查加载的Response Headers中有没有Non-Authoritative-Reason二、找了资料后得到解决方案&#xff1a;三、找…

插入排序——直接插入排序和希尔排序(C语言实现)

文章目录 前言直接插入排序基本思想特性总结代码实现 希尔排序算法思想特性总结代码实现 前言 本博客插入排序动图和希尔排序视频参考大佬java技术爱好者&#xff0c;如有侵权&#xff0c;请联系删除。 直接插入排序 基本思想 直接插入排序是一种简单的插入排序法&#xff…

图空图床图片外链系统源码-支持自定义权限策略-图片大小格式

含视频搭建教程。 大致功能&#xff1a; 支持本地等多种第三方云储存 AWS S3、阿里云 OSS、腾讯云 COS、七牛云、又拍云、SFTP、FTP、WebDav、Minio多种数据库驱动支持&#xff0c;MySQL 5.7、PostgreSQL 9.6、SQLite 3.8.8、SQL Server 2017支持配置使用多种缓存驱动&#xff…

Flameshot的安装、配置及使用

概要&#xff1a;本篇主要介绍在Ubuntu22.04环境下&#xff0c;截图软件Flameshot的安装、配置及使用。 一、安装 推荐命令行安装 sudo apt install flameshot 二、修改gdm3配置文件 这一步是为了解决截图时没有光标的问题&#xff0c;解决方法我是从这里学到的解决flam…

【hugging face】bitsandbytes中8 bit量化的理解

8 位量化使数十亿参数规模的模型能够适应更小的硬件&#xff0c;而不会降低性能。 8 位量化的工作原理如下&#xff1a; 1.从输入隐藏状态中按列提取较大值&#xff08;离群值&#xff09;。 2.对 FP16 中的离群值和 int8 中的非离群值执行矩阵乘法。 3.改变非异常值结果以将值…

unity中:搭建在线AR应用

使用Imagine WebAR - Image Tracker插件部署WebGL应用 在使用Imagine WebAR - Image Tracker插件进行WebGL应用开发时&#xff0c;有两个关键知识点需要掌握&#xff1a; 1. 部署到支持HTTPS的服务器 由于WebGL应用需要访问用户的摄像头&#xff0c;因此必须在支持HTTPS的服…

微前端 模块联邦技术

目录 介绍 基本使用 演示用法 初始化配置文件 remote 项目 host 项目 为什么讲这个呢&#xff0c;很多人觉得他不是微前端&#xff0c;也有人定义它也是微前端&#xff0c;看怎么理解了&#xff0c;我觉得他是一个去中心化技术&#xff0c;它可以让多个独立构建的应用…

高并发爬虫用Python语言适合吗?

不管你用什么语言没在进行高并发前&#xff0c;有几点是需要考虑清楚的&#xff0c;&#xff1b;例如&#xff1a;数据集大小&#xff0c;算法、是否有时间和性能方面的制约&#xff0c;是否存在共享状态&#xff0c;如何调试&#xff08;这里指的是日志、跟踪策略&#xff09;…

C#云LIS系统源码 B/S架构,SaaS模式,可扩展性强

基于B/S架构的云LIS检验系统源码&#xff0c;整个系统的运行基于WEB层面&#xff0c;只需要在对应的工作台安装一个浏览器软件有外网即可访问。全套系统采用云部署模式&#xff0c;部署一套可支持多家医院检验科共同使用。 采用.Net Core新的技术框架、DEV报表、前端js封装、分…

腾讯云CentOS8 jenkins war安装jenkins步骤文档

腾讯云CentOS8 jenkins war安装jenkins步骤文档 一、安装jdk 1.1 上传jdk-11.0.20_linux-x64_bin.tar.gz 1.2 解压jdk安装包文件 tar -zxvf jdk*.tar.gz 1.3 在/usr/local 目录下创建java目录 cd /usr/local mkdir java 1.4 切到java目录&#xff0c;把jdk解压文件改名为jd…

【抽象策略模式】实践

前言 刚果商城&#xff0c;用户登录 Or 注册 发送邮箱验证码场景&#xff0c;使用抽象策略模式实现 什么是抽象策略模式 抽象策略模式是一种行为型设计模式&#xff0c;它允许定义一系列算法&#xff0c;将每个算法封装起来&#xff0c;并使它们可以互相替换。这使得客户端代码…

Java_LinkedList链表详解

目录 前言 ArrayList的缺陷 链表 链表的概念及结构 链表的种类 1.单向或双向 2.带头或不带头 3.循环或不循环 LinkedList的使用 什么是LinkedList LinkedList的使用 LinkedList的构造 LinkedList的其他常用方法介绍 LinkedList的遍历 ArrayList和LinkedList的…

OpenCL学习笔记(四)手动编译开发库(ubuntu+gcc+rk3588)

前言 笔者本次使用的是RK3588的开发板&#xff0c;内部烧写的是ubuntu20.04&#xff0c;gcc版本是9 本文档简单记录下编译的过程&#xff0c;有需要的小伙伴可以参考下 一、安装所需软件 1.安装git&#xff0c;教程比较多&#xff0c;不再重复 2.安装cmake&#xff0c;教程…

UWB的matlab仿真源码

作品详细文章与下载链接 第一部分:TR-UWB信号的产生和调制 简介 该实践涉及使用 MATLAB 生成和调制 TR-UWB 信号。超宽带信号是一类在频谱中具有宽带而不是窄带的信号信号&#xff0c;具有时间宽度的脉冲产生它。在本次实践中,MATLAB 程序是开发用于生成基带 TR-UWB 信号,我们用…

用23种设计模式打造一个cocos creator的游戏框架----(十)迭代器模式

1、模式标准 模式名称&#xff1a;迭代器模式 模式分类&#xff1a;行为型 模式意图&#xff1a;提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;且不需要暴露该对象的内部表示. 结构图&#xff1a; ​ 适用于&#xff1a; 1、当你需要遍历一个复杂的数据结构…

promethesu告警规则配置,alertmanager通过webhook通知

文章目录 前言一、promethesu告警二、告警配置编写rule文件prometheus配置prometheus产生告警 三、告警通知prometheus 配置 alertmanageralertmanager 配置 webhook通知编写接口接收 webhook 总结 前言 如果没有学习过prometheus的基础和监控的同学&#xff0c;可以先过一遍这…