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

news2024/9/23 11:27:49

1. 子集搜索与评价

“特征”:属性

“相关特征”:对当前学习任务有用的属性

“无关特征”:没什么用的属性,与当前的学习任务无关的属性

“特征选择”:从给定的特征集合中选择出相关特征子集的过程,(数据预处理过程),通常在实际的机器学习中都会有这个过程

冗余特征:它们所包含的信息能从其他特征中推演出来,通常是无用的,但如果恰好对应了完成学习任务所需的“中间概念”,则该冗余特征是有益

原因:

  1. 在现实任务中经常会遇到维数灾难问题,这是由于属性过多而造成的
  2. 去除不相关特征往往会降低学习任务的难度

从初始的特征集合中选取一个包含了所有重要信息的特征子集,产生一个特征子集,去验证其他子集,然后看看哪个分类器的效果最好 

基于贪心策的子集搜索:

  • 前向搜索:先定一个最优的子集,然后选一个最优的加入这个特征子集,直到达到最优,无法再优化
  • 后向搜索:从完整的特征集中去掉一个最无关的特征
  • 两者结合叫做双向搜索

但很显然这种算法并不能达到最优 

子集评价:使用决策树的公式进行评价

  • 信息增益:

 \mathrm{Gain}(A)=\mathrm{Ent}(D)-\sum_{v=1}^{V}\frac{|D^{v}|}{|D|}\mathrm{Ent}(D^{v})

  • 信息熵:

\mathrm{Ent}(D)=-\sum_{i=1}^{|\mathcal{Y}|}p_{k}\log_{2}p_{k} 

信息增益越大,意味着特征子集A包含的有助于分类的信息越多.

将子集搜索和子集评价相结合就是特征选择方法

2. 过滤式选择

过滤式方法:

  1. 先对数据集进行特征选择,
  2. 然后再训练学习器,

特征选择过程与后续学习器无关.这相当于先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征来训练模型.

Relief方法:

设计一个“相关统计量”来确定特征的重要性,计量是一个向量,其每个分量分别对应于一个初始特征,而特征子集的重要性则是由子集中每个特征所对应的相关统计量分量之和来决定.

于是,最终只需指定一个阈值\tau,然后选择比\tau大的相关统计量分量所对应的特征即可;

也可指定欲选取的特征个数k,然后选择相关统计量分量最大的k个特征.

确定相关统计量:

“猜中近邻”:对每个示例x_i,Relief先在x_i的同类样本中寻找其最近邻x_{i,nh}

猜错近邻:再从x_i的异类样本中寻找其最近邻x_{i,nm}

相关统计量对应于属性j的分量为:

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

 猜中近邻越小越好,猜错近邻越大越好,属性j所对应的统计量分量.最后,对基于不同样本得到的估计结果进行平均,就得到各属性的相关统计量分量,分量值越大,则对应属性的分类能力就越强.

优点:Relief的时间开销随采样次数以及原始特征数线性增长,因此是一个运行效率很高的过滤式特征选择算法.

Relief只能针对二分类问题,而Relief-F可以处理多分类问题

Relief-F:

  1. 先再同类中找一个最近的,
  2. 再从异类中找一个最近的,
  3. 然后按一个权重加起来

\delta^{j}=\sum_{i}-\mathrm{diff}(x_{i}^{j},x_{i,\mathrm{nh}}^{j})^{2}+\sum_{l\neq k}\left(p_{l}\times\mathrm{diff}(x_{i}^{j},x_{i,l,\mathrm{nm}}^{j})^{2}\right)

3. 包裹式选择

包裹式特征选择:直接把最终将要使用的学习器的性能作为特征子集的评价准则.

结果:效能更好,但开销更大

LVW算法:一个典型的包裹式特征选择方法.它在拉斯维加斯方法框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价准则.

4. 嵌入式选择与L正则化

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

考虑线性回归模型,以平方误差为损失函数,优化目标为:

\min_{\boldsymbol{w}}\sum_{i=1}^m(y_i-\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i)^2

当样本特征多,样本数少时,模型会陷入过拟合

方法:引入正则化

  • L2正则化:

\min_{\boldsymbol{w}}\sum_{i=1}^{m}(y_{i}-w^{\mathrm{T}}x_{i})^{2}+\lambda\|\boldsymbol{w}\|_{2}^{2}

  • L1正则化:更易于获得“稀疏”解,即它求得的w会有更少的非零分量.

\min_{\boldsymbol{w}}\sum_{i=1}^{m}(y_{i}-w^{\mathrm{T}}x_{i})^{2}+\lambda\|\boldsymbol{w}\|_{1}^{1}

 如下图所示:

图4.1 L1、L2正则化

 两者的交点就是所要取的值,达到最小。而L1正则化相对L2更小一些,它在w2轴上,可以取到0值

对L1正则化求解:近端梯度下降:

损失函数用f(x)替代:

\min_{\boldsymbol{x}}f(\boldsymbol{x})+\lambda\|\boldsymbol{x}\|_1

\bigtriangledown f满足L-Lipschitz条件,得:

\begin{Vmatrix}\nabla f(\boldsymbol{x}')-\nabla f(\boldsymbol{x})\end{Vmatrix}_2^2\leqslant L\begin{Vmatrix}\boldsymbol{x}'-\boldsymbol{x}\end{Vmatrix}_2^2\quad(\forall\boldsymbol{x},\boldsymbol{x}')

函数的变化不大,则在xk附近可以用二阶泰勒展式:

\begin{gathered} \hat{f}(\boldsymbol{x}) \simeq f(\boldsymbol{x}_{k})+\langle\nabla f(\boldsymbol{x}_{k}),\boldsymbol{x}-\boldsymbol{x}_{k}\rangle+\frac{L}{2}\|\boldsymbol{x}-\boldsymbol{x}_{k}\|^{2} \\ =\frac{L}{2}\left\|x-\left(x_{k}-\frac{1}{L}\nabla f(\boldsymbol{x}_{k})\right)\right\|_{2}^{2}+\mathrm{const}, \end{gathered}

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

x_{k+1}=x_k-\frac{1}{L}\nabla f(\boldsymbol{x}_k)

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

x_{k+1}=\arg\min_{\boldsymbol{x}}\frac{L}{2}\left\|\boldsymbol{x}-\left(\boldsymbol{x}_{k}-\frac{1}{L}\nabla f(\boldsymbol{x}_{k})\right)\right\|_{2}^{2}+\lambda\|\boldsymbol{x}\|_{1}

得到每个分量的解:

x_{k+1}^i=\left\{\begin{array}{ll}z^i-\lambda/L,&\lambda/L<z^i ;\\0,&|z^i|\leqslant\lambda/L ;\\z^i+\lambda/L,&z^i<-\lambda/L\end{array}\right. 

5. 稀疏表示与字典学习

将数据集视为一个矩阵,行为样本,列为特征,我们需要通过特征选择把一些不重要的特征去掉,降低学习的难度

另一种稀疏性:矩阵中存在零元素,且非常分散

第二种稀疏性对学习任务是有益的,使问题变得线性可分,同时,因为0元素可以简化表达,还可以减少负担

所以,如果数据是稠密的,我们需要把它变稀疏

字典学习:需学习出一个“字典”.为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示形式,从而使学习任务得以简化,模型复杂度得以降低

形式:

\min_{\mathbf{B},\alpha_{i}}\sum_{i=1}^{m}\|\boldsymbol{x}_{i}-\mathbf{B}\alpha_{i}\|_{2}^{2}+\lambda\sum_{i=1}^{m}\|\alpha_{i}\|_{1}

求解其最小值,求2个变量,需要先固定一个变量,我们先固定B,得到:

\min_{\alpha_{i}}\|\boldsymbol{x}_{i}-\mathbf{B}\alpha_{i}\|_{2}^{2}+\lambda\|\boldsymbol{\alpha}_{i}\|_{1}

再固定a,

\min_{\mathbf{B}}\|\mathbf{X}-\mathbf{B}\mathbf{A}\|_{F}^{2}

基于逐列更新策略的KSVD,对上式进行求解:

\begin{aligned} \operatorname*{min}_{\mathbf{B}}\|\mathbf{X}-\mathbf{BA}\|_{F}^{2}& =\min_{b_{i}}\left\|\mathbf{X}-\sum_{j=1}^{k}b_{j}\alpha^{j}\right\|_{F}^{2} \\ &=\min_{\boldsymbol{b}_i}\left\|\left(\mathbf{X}-\sum_{j\neq i}\boldsymbol{b}_j\boldsymbol{\alpha}^j\right)-\boldsymbol{b}_i\boldsymbol{\alpha}^i\right\|_F^2 \\ &=\min_{b_{i}}\left\|\mathbf{E}_{i}-b_{i}\alpha^{i}\right\|_{F}^{2} . \end{aligned}

初始化字典矩阵B之后反复迭代上述两步,最终即可求得字典B和样本xi的稀疏表示oi.在上述字典学习过程中,用户能通过设置词汇量k的大小来控制字典的规模,从而影响到稀疏程度.

6. 压缩感知

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

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

y=\Phi x

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

但现在假定可以,

y=\Phi \Psi s = As

若s具有稀疏性,这个问题就可以解决

因为稀疏性使得未知因素的影响大为减少.\Psi称为稀疏基,而A的作用则类似于字典,能将信号转换为稀疏表示.

压缩感知:压缩感知关注的是如何利用信号本身所具有的稀疏性,从部分观测样本中恢复原信号.压缩感知分为“感知测量”和“重构恢复”这两个阶段.

  • “感知测量”:关注如何对原始信号进行处理以获得稀疏样本表示
  • “重构恢复”:关注的是如何基于稀疏性从少量观测中恢复原信号,这是压缩感知的精髓

矩阵A满足k限定等距性:

(1-\delta_k)\|s\|_2^2\leqslant\|\mathbf{A}_ks\|_2^2\leqslant(1+\delta_k)\|s\|_2^2

此时就可以恢复原信号:

\begin{array}{cc}\min_{s}&\|s\|_0\\\\\mathrm{s.t.}&y=\mathbf{A}s\end{array}

求Lo范数最小化,这是个NP难问题.值得庆幸的是,L1范数最小化在一定条件下与Lo范数最小化问题共解,于是实际上只需关注L范数最小化问题求解,上式可转化为LASSO的等价形式再通过近端梯度下降法求解,即使用“基寻踪去噪”、

使用如下图的例子:

《笑傲江湖》和《云海玉弓缘》是武侠小说,

《万历十五年》和《人类的故事》是历史读物,

《人间词话》属于诗词文学.

将书籍按题材归类,则题材总数必然远远少于书籍总数

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

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

相关文章

海外公司注册推广:10个值得尝试的创新战略

在全球化和数字化时代&#xff0c;海外公司注册已成为一种重要趋势。许多企业意识到&#xff0c;将业务扩展到国外市场可以带来巨大的商机和竞争优势。面对不同的国家法规和市场环境&#xff0c;注册一家海外公司并将其推广并非易事。本文将介绍10个值得尝试的创新战略&#xf…

【Android 笔记】记移植OpenCV4.8图像人脸识别

前言 因业务需要&#xff0c;使用大屏端摄像头捕获图像&#xff0c;且要识别图像中人脸的数目以及从中随机抽取一人。 业务流程如下&#xff0c;调用摄像头预览、拍照&#xff0c;使用OpenCV库进行人脸识别&#xff0c;将识别到的人脸使用矩形框绘制出来&#xff0c;从识别的人…

Matlab绘制像素风字母颜色及透明度随机变化动画

本文是使用 Matlab 绘制像素风字母颜色及透明度随机变化动画的教程 实现效果 实现代码 如果需要更改为其他字母组合&#xff0c;在下面代码的基础上简单修改就可以使用。 步骤&#xff1a;(1) 定义字母形状&#xff1b;(2) 给出字母组合顺序&#xff1b;(3) 重新运行程序&#…

15年以来 — 战略性云平台服务的演进路径之全面呈现(含亚马逊、微软和谷歌)

Gartner每年都发布对全球IaaS平台进行评估的魔力象限报告。2023年底&#xff0c;Gartner将此项评估的名称改为“战略性云平台服务”&#xff08;Strategic cloud platform services&#xff09;&#xff0c;尽管其核心仍为IaaS&#xff0c;但是&#xff0c;毫无疑问&#xff0c…

【深度学习】什么是深度学习?

1. 前言 深度学习是机器学习的一个分支&#xff0c;它使用神经网络教计算机做人类自然而然会做的事情&#xff1a;从示例中学习。在深度学习中&#xff0c;模型会学习直接从图像、文本或声音等数据中执行分类或回归任务。深度学习模型可以达到最先进的准确率&#xff0c;通常超…

WPF自定义控件

控件模板 顾名思义就是在原有的控件上进行模版修改成自己需要的样式 把ProgressBar修改为一个水液面的进度条 <Window x:Class"XH.CustomLesson.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://s…

树莓派3B升级glibc-2.29

自从我树莓派的python升级到3.9&#xff0c;每次import numpy都会报错&#xff1a;libm.so.6: version GLIBC_2.29 not found。这又是怎么回事呢&#xff1f;查了资料才知道&#xff0c;原来是我的respbian系统版本低的原因&#xff08;如图&#xff09;。 &#xff08;可以用l…

Facebook广告投放优化思路分享,为何总是低量级

为什么谷歌优化总是不起效果&#xff1f;今天我来谈谈我的Facebook广告优化思路&#xff0c;希望对你有所帮助。感兴趣的可以点赞、收藏。关注我&#xff0c;每天分享海外推广知识。 以下是Facebook广告优化思路思维导图&#xff1a; 那么&#xff0c;今天主要来谈谈量级低的情…

哪个工具可以ai续写免费?多维度评测分享

在创意的征途中&#xff0c;你是否曾遇到过文思枯竭的困境&#xff1f;当灵感如同夜空中的流星&#xff0c;一闪而逝&#xff0c;如何捕捉并延续那份璀璨&#xff1f;答案或许就藏在ai续写软件的无限可能中。 不知道ai续写软件哪个好&#xff1f;别急&#xff0c;今天&#xff…

Win10 禁止更新-【延长更新时间】

文章目录 操作注册表 操作注册表 Win R regedit 打开注册表 粘贴&#xff1a; ** \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 代开目录 新建32位数据值 &#xff1a;FlightSettingsMaxPauseDays 999 然后到更新界面&#xff0c;就可以一直点

数字信号处理3:数字滤波器设计

文章目录 前言一、实验目的二、实验设备三、实验内容四、实验原理五、实验方法及要求1.用脉冲响应不变法设计巴特沃斯数字滤波器2. 用双线性变换法设计切比雪夫数字滤波器3. 用双线性变换法设计巴特沃斯数字滤波器,并将直接型结构转换成级联型结构4. 数字低通滤波器特性比较5…

GD - EmbeddedBuilder_v1.4.1.23782工程中的gdc名称必须和工程名称一致

文章目录 GD - EmbeddedBuilder_v1.4.1.23782工程中的gdc名称必须和工程名称一致概述笔记总结END GD - EmbeddedBuilder_v1.4.1.23782工程中的gdc名称必须和工程名称一致 概述 在看EmbeddedBuilder_v1.4.1.23782自带的demo工程。 看到 D:\EmbeddedBuilder_v1.4.1.23782\exam…

工业一体机立式报工台助力工厂改善生产报工效率

在现代化工业生产中&#xff0c;生产效率和管理水平是企业竞争力的关键。为了实现高效的生产管理&#xff0c;工厂需要一个可靠、稳定、便捷的报工系统。传统的报工方式存在诸多弊端&#xff0c;例如效率低、易出错、数据难以统计分析等。而工厂软件报工台立式工业一体机的出现…

家里浮毛怎么去掉最高效?这些宠物空气净化器总有一款适合你

我家是三个月大的时候被我领回家的。它简直就是个小天使&#xff0c;乖得不得了&#xff0c;既不乱尿也不掉毛。每次去朋友家&#xff0c;看到他们为猫咪掉毛头疼不已&#xff0c;我就忍不住在心里偷偷乐&#xff0c;觉得自己真是捡到了宝&#xff0c;怎么会有这么省心的猫咪呢…

上海知名泌尿外科专家常态化坐诊黄山新晨医院,让前列腺癌看得更早、更准!

继7月28日上海第四人民医院泌尿外科专家在黄山新晨医院开展义诊之后&#xff0c;8月9日和10日&#xff0c;该团队领头人周铁教授又完成了合作以来的首次坐诊&#xff0c;标志着双方合作从此进入常态化阶段。 周铁主任在查看患者的检查报告 周铁主任曾任中华医学会泌尿外科分会…

拍立淘API:商品ID与标题的快速获取

拍立淘&#xff08;Pailitao&#xff09;是阿里巴巴旗下的一个基于图像识别技术的购物应用功能&#xff0c;用户可以通过拍照或上传图片来快速找到相似的商品。然而&#xff0c;拍立淘本身并不直接提供一个公开的API接口供开发者使用来直接获取商品ID和标题等信息。 如果你想通…

C++现代教程五

#pragma once _Pragma("once")# C/C混合编程 #ifdef __cplusplus extern "C" { #endif // 一些c代码 #ifdef __cplusplus } #endif# 继承构造 struct A {A(int i) {}A(double d,int i){}A(float f,int i,const char* c){}//...等等系列的构造函数版本 }&am…

protobuf 生成 error

一、简介 响应错误时可以直接使用 errors 包中的 New 方法来声明一个 error&#xff0c;也可以直接通过 proto 预定义定义错误码&#xff0c;然后通过 proto-gen-go 生成帮助代码&#xff0c;直接返回 error。 二、使用教程 2.1 错误定义 syntax "proto3"; impor…

深入理解Java中的LocalDateTime与ChronoUnit:精确时间处理的最佳实践

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

人工智能战略:如何实施人工智能解决方案以实现企业成功

人工智能 (AI) 不再是一个未来概念&#xff0c;而是改变全球各行各业的切实现实。 企业正在利用人工智能来提高效率、提高生产力并获得竞争优势。然而&#xff0c;实施人工智能解决方案需要明确的战略。 本指南将引导您完成成功将人工智能融入业务运营的关键步骤&#xff0c;…