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

news2024/9/23 21:30:21

11.1 子集搜索与评价

我们将属性称为特征,对当前学习任务有用的属性称为相关特征、没什么用的属性称为无关特征。还有一类特征称为冗余特征,它们所包含的信息能从其他特征中推演出来,冗余特征在很多时候不起作用,去除它们会减轻学习过程的负担。但有时冗余特征会降低学习任务的难度。从给定的特征集合选择出相关特征子集的过程,称为特征选择
特征选择是一个重要的数据预处理过程。在现实机器学习任务中,获得数据之后通常进行先进行特征选择,此后再训练学习器。
进行特征选择有两个重要的原因:
首先:我们在现实任务中经常会遇到维数灾难问题,这是由于属性过多而造成的,若能从中选择出重要的特征。使得后续学习过程中仅需在一部分特征上构建模型,则维数灾难问题会大为减轻。
其次:去除不相关特征往往会降低学习任务的难度,这就像侦探破案一样,若将纷繁复杂的因素抽丝拨茧,只留下关键因素,则真相往往更易看清。
欲从初始的特征集合中选取一个包含了所有重要信息的特征子集,若没有任何领域知识作为先验假设,那就只好遍历所有可能的子集了。然而这在计算上却是不可行的。因为这样做会遭遇组合爆炸,特征个数稍多就无法进行。可行的做法是产生一个候选子集,评价出它的好坏,基于评价结果产生下一个候选子集,再对其进行评价,…持续这个过程直至无法找到更好的候选子集为止。这里涉及两个关键环节:
第一个环节是子集搜索问题。给定特征集合{a1,a2,…,ad},我们可将每个特征看作一个候选子集,对这d个候选单特征子集进行评价,假定{a2}最优,于是将{a2}作为第一轮的选定集;然后,在上一轮的选定集中加入一个特征,构成包含两个特征的候选子集,假定在这d-1个候选两特征子集{a2,a4}最优,且优于{a2},于是将{a2,a4}作为本轮的选定集;假定在k+1轮时,最优的候选(k+1)特征子集不如上一轮的候选集,则停止生成候选子集,并将上一轮选定的k特征集合作为特征选择结果。这样逐渐增加相关特征的策略称为前向搜索。类似的,若我们从完整的特征集合开始,每次尝试去掉一个无关特征,这样逐渐减少特征的策略称为后向搜索。还可将前向与后向搜索结合起来,每一轮逐渐增加选定相关特征,同时减少无关特征,这样的策略称为双向搜索
第二个环节是子集评价问题。
在这里插入图片描述
在这里插入图片描述
常见的特征选择方法大致分为三类:过滤式包裹式嵌入式

11.2 过滤式选择

过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关,这相当于先用特征选择过程对初始特征进行过滤,再用过滤后的特征来训练模型。
Relif是一种著名的过滤式特征选择方法,该方法设计了一个相关统计量来度量特征的重要性。该统计量是一个向量,其每个分量分别对应于一个初始特征,而特征子集的重要性是指由子集中每个特征所对应的相关统计量分量之和来决定。

11.3 包裹式选择

与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价准则。换言之,包裹式特征选择目的的就是为给定学习器选择最有利于其性能、量身定做的特征子集。
一般而言,由于包裹式特征选择方法直接针对给定学习器进行优化,因此从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好,但另一方面,由于在特征选择过程中需多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择大得多。
LVW是一个典型的包裹式特征选择方法。它在拉斯维加斯方法框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价准则。算法描述如下所示:
在这里插入图片描述

11.4 嵌入式选择与L1正则化

前面两种特征选择方法中,特征选择过程与学习器训练过程有明显的分别;
与此不同,嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。
在这里插入图片描述
L1范数和L2范数正则化都有助于降低过拟合风险,但前者还会带来一个额外的好处;它比后者更易于获得稀疏解,即它求得的w会有更少的非零分量。

11.5 稀疏表示与字典学习

不妨把数据集D考虑成一个矩阵 ,其每行对应于一个样本,每列对应于一个特征。特征选择所考虑的问题是特征具有稀疏性,即矩阵中的许多列与当前学习任务无关,通过特征选择去除这些列,则学习器训练过程仅需在较小的矩阵上进行,学习任务的难度可能有所降低,涉及的计算和存储开销会减少,学得模型的可解释性也会提高。
当样本具有稀疏表达形式时,对学习任务来说会有不少好处,例如:线性支持向量机之所以能在文本数据上有很好的性能,恰是由于文本数据在使用上述的字频表示后具有高度的稀疏性,使大多数问题变得线性可分。同时稀疏矩阵已有很多高效的存储方法。
若给定数据集使稠密的,即普通非稀疏数据,能否将其转化为稀疏表示呢(恰当稀疏而非过度稀疏)?
我们需要学习出这样一个字典,为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示形式,从而使学习任务得以简化,模型复杂度得以降低,通常称为字典学习亦称稀疏编码。字典学习更侧重于学得字典得过程,而稀疏编码则更侧重于对样本进行稀疏表达得过程。

11.6 压缩感知

在现实任务中,我们常希望根据部分信息来恢复全部信息。例如在数据通讯中要将模拟信号转换为数字信号,根据奈奎斯特(Nyquist)采样定理,令采样频率达到模拟信号最高频率的两倍,则采样后的数字信号就保留了模拟信号的全部信息;换言之,由此获得的数字信号能精确重构原模拟信号。然而,为了便于传输、存储,在实践中人们通常对采样的数字信号进行压缩,这有可能损失一些信息,而在信号传输过程中,由于信道出现丢包等问题,又可能损失部分信息。那么,接收方基于收到的信号,能否精确地重构出原信号呢?压缩感知为解决此类问题提供了新的思路.

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

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

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

相关文章

redis之如何应对并发访问问题

写在前面 本文一起看下Redis的并发访问控制。 1:单线程的Redis为什么会有并发问题 我们知道,Redis是单线程的,为什么还是会有并发问题呢?没错,如果是单命令操作的话肯定没有并发问题,但考虑事务的场景&a…

nodejs+vue人事管理系统30n9o

开发语言:nodejs 框架:Express 数据库:mysql 数据库工具:Navicat11 开发软件:VS code 浏览器:谷歌浏览器 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 …

使用VS2019开发调试Android动态库

1. 环境准备 1.1 安装JDK:jdk1.8.0_112 1.2 安装Android SDK SDK可以安装指定的platforms和ndk-bundle。为了兼容性考虑,单独安装了版本比较老的android-ndk-r10b 1.3 安装VS2019 安装VS2019并选择:使用C的移动开发。 1.4 连接开发手机…

基于Java+Mysql实现(web)大型企业管理系统【100010019】

第一章 系统概述 包括用户管理、权限管理、软件项目管理、软件模块管理、测试用例管理、测试任务分配、bug管理等功能。实现公司不同部门间团队协作,管理人员也能够更加有效的把控系统开发的进度。 本实验综合应用JavaWeb编程中的Servlet,JSP&#xff…

spring——Spring自动装配(基于注解)——前提了解——Spring的@Autowired注解为什么用在接口上 (转载)...

大家都知道Service注入的是实现类serviceImpl,那使用时怎么能获取到接口,而且还能调用到实现类的方法。 接口: public interface TestService{ public String test(); }实现类: Service public class TestServiceImpl imp…

Netty_04_消息协议设计与实战(实践类)

文章目录一、前言二、整体运行:先启动服务端,然后启动客户端,发送三条消息三、客户端和服务端3.1 客户端(重要)3.2 服务端(重要)3.3 编码和解码(了解即可)四、尾声一、前言 源码下载:https://www.syjshare.com/res/XEE10LTG 二、…

【Linux修炼】10.进程地址空间

每一个不曾起舞的日子,都是对生命的辜负。 进程地址空间本节目标1. 回顾C/C地址空间1.1 提出问题1.2 见问题产生的现象1.3 解释现象2. 虚拟地址空间2.1 感性理解虚拟地址空间 2.2 如何“画饼”2.3 地址空间的区域划分3. 进程地址空间与内存的关系3.1 虚拟地址和物理…

LabVIEW编程LabVIEW开发 ADAM-4056 DO模块例程与相关资料

LabVIEW编程LabVIEW开发 ADAM-4056 DO模块例程与相关资料 ​ADAM-4056SO是具有12通道自源型携带Modbus协议隔离数字输出模块。具有如下特点: ADO源电源故障检测 输入/输出类型:源式输出 12通道 数字输出:VCC: 1~35伏直流电&a…

基于Java+Mysql实现(WEB)宿舍管理系统【100010016】

数据库实践课程之宿舍管理系统 一、系统需求分析 1.1 系统描述 随着社会的发展以及教育水平的提高,当今社会在校生的数量越来越庞大,使用传统的方式对学生的信息进行管理效率非常低下。在互联网技术高度发达的今天,使用数据库技术对学生的…

Go 实现希尔排序算法及图解

耐心和持久胜过激烈和狂热。 哈喽大家好,我是陈明勇,今天分享的内容是使用 Go 实现希尔排序算法。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本…

游戏开发51课 性能优化9

4.5 光照模型(Lighting/Illumination Model) 4.5.1 Flat Shading(平面着色) 根据表面法向量计算光照,并应用到整个面片上。速度最快,效果最差,容易暴露物体的多边形本质(下图&…

微服务框架 SpringCloud微服务架构 29 ES 集群 29.4 分布式新增和查询流程

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构29 ES 集群29.4 分布式新增和查询流程29.4.1 ES集群的分布式存储29.4.2 总…

鸿蒙手机卸载内置应用 adb连接

鸿蒙手机傻瓜式卸载内置应用 adb连接**傻瓜式删除鸿蒙系统内置应用,自己亲测有效。**准备物品准备软件准备工作教程开始:第一步第二步完成包名列表一般软件谷歌服务格外的注意连接错误**鸣谢**傻瓜式删除鸿蒙系统内置应用,自己亲测有效。 准…

缓存数据丢了,原来是Redis持久化没玩明白

📣📣📣📣📣📣📣 🎍大家好,我是慕枫 🎍前阿里巴巴高级工程师,InfoQ签约作者、阿里云专家博主,一直致力于用大白话讲解技术知识 &#x…

Windows下MySQL5.5升级5.7(或直接安装MySQL5.7)

Windows下MySQL5.5升级5.7(或直接安装MySQL5.7) 1、关闭MySQL服务: Ctrl shift Esc找到服务,找到下面的MySQL服务,停止服务。 2、卸载程序: 控制面板中卸载mysql5.5。 3、删除mysql5.5的安装目录及注…

Linux文件操作

文章目录前言什么是文件文件操作C语言文件操作接口文件操作系统调用接口文件描述符如何理解FILE和文件描述符的关系前言 本文主要介绍的是Linux系统下的文件操作和Linux的文件系统的机制,希望能够通过本文来增加读者对于文件操作的基本使用和理解。以及了解Linux系…

【大数据入门核心技术-Ambari】(一)Ambari介绍

一、什么是Ambari Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。 Apache Ambari 支持HDFS、MapReduce、Hive、Pi…

C语言宏和预处理

C语言宏和预处理【1】include【2】【#pragma】【3】C #include【4】# 和 ## 操作符【5】宏替换【6】#line【7】#error【8】#undef【9】源码【10】结果【1】include #include本命令包含一个文件并在当前位置插入.一般尖括号意味着在标准库目录中搜索, #include “filename” 引…

【C语言与汇编】简单学学C到汇编代码

C语言与汇编 部分过程可参考C primer plus 本书余下的篇幅讨论源代码文件中的内容;本节讨论创建源代码文 件的技巧。有些C实现(如Microsoft Visual C、Embarcadero C Builder、Apple Xcode、Open Watcom C、Digital Mars C和Freescale CodeWarrior&…

精品基于SSM的民宿预订管理系统

《民宿预订管理系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术: 开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:my…