【一起啃书】《机器学习》第十章 降维与度量学习

news2024/10/5 17:28:06

文章目录

    • 第十章 降维与度量学习
      • 10.1 k k k近邻学习
      • 10.2 低维嵌入
      • 10.3 主成分分析
        • 10.3.1 定义与步骤
        • 10.3.2 最近重构性与最大可分性
      • 10.4 核化线性降维
      • 10.5 流形学习
      • 10.6 度量学习

第十章 降维与度量学习

10.1 k k k近邻学习

   k k k近邻学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的 k k k个训练样本,然后基于这 k k k个“邻居”的信息来进行预测。

  通常,在分类任务中可使用“投票法”,即选择这 k k k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这 k k k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大。

   k k k近邻学习涉及到三个主要因素: k k k的大小,距离或相似度的度量,以及特征归一化。 k k k的大小决定了近邻范围和投票权重,距离或相似度的度量决定了如何判断两个实例之间的接近程度,特征归一化决定了各个特征对距离或相似度计算的影响。这些因素都需要根据具体问题和数据集来选择合适的方法和参数。

10.2 低维嵌入

   k k k近邻学习是基于“密采样”假设——任意测试样本 x x x附近任意小的 δ \delta δ距离范围内总能找到一个训练样本,即训练样本的采样密度足够大。然而,这个假设在现实中很难满足,假设 δ = 0.001 \delta=0.001 δ=0.001,就意味着至少要有1000个样本点平均分布在归一化后的属性取值范围内,才能保证任意测试样本在其附近的0.001距离范围内总能找到一个训练样本,而这只是属性维数为1的情况,如果属性维数更大不仅需要的样本数会变多,同时高维空间会给距离计算带来很大的困难。所以有时我们需要通过降维来缓解维数灾难,也就是通过某种数学变换将原始高维属性空间转变为一个低维“子空间”,在这个子空间中样本密度大幅提高,而距离计算也变得更为容易。

  下面介绍一种多维缩放方法,Multiple Dimensional Scaling(MDS),多维缩放的原理是:给定样本两两间距离/不相似度,如何获得样本的表示,使得样本间距离/不相似度和给定的一致。从降维角度,就是低维空间的样本间距离/不相似度要和高维空间样本间距离/不相似度基本一致。

  具体来说,多维缩放的过程可以分为以下几个步骤:

  1. 计算高维空间中样本之间的距离矩阵 D D D ,其中 D i j D_{ij} Dij 表示第 i i i个样本和第 j j j 个样本之间的距离,通常为欧氏距离。这一步是为了获得样本之间的相似度或不相似度的信息,作为降维的依据。
  2. 对距离矩阵 D D D 进行中心化处理,得到内积矩阵 B B B ,其中 B i j B_{ij} Bij 表示第 i i i 个样本和第 j j j 个样本之间的内积。中心化处理的公式为 B = − 1 2 H D H B = -\frac {1} {2}HDH B=21HDH ,其中 H 是中心化矩阵 H = I − 1 n 1 1 T H = I - \frac {1} {n}11^T H=In111T I I I 是单位矩阵, 1 1 1 是全 1 1 1 向量。这一步是为了消除样本的均值影响,使得样本在低维空间中也是零均值的,方便后续的特征值分解。
  3. 对内积矩阵 B B B 进行特征值分解,得到 B = V Λ V T B = V\Lambda V^T B=VΛVT ,其中 Λ \Lambda Λ 是对角矩阵,对角线上是特征值; V V V 是特征向量矩阵,每一列是一个特征向量。这一步是为了找到样本在低维空间中的最优表示,即最大化样本间的方差。
  4. 取前 d d d 个最大的特征值以及对应的特征向量,构成 Λ d \Lambda_d Λd V d V_d Vd ,其中 Λ d \Lambda_d Λd d d d 阶对角矩阵, V d V_d Vd n ∗ d n*d nd 矩阵。这一步是为了选择合适的降维目标维度 d d d ,并保留最重要的特征向量。
  5. 计算降维后的数据矩阵 Z = V d Λ d 1 / 2 Z = V_d \Lambda_d^{1/2} Z=VdΛd1/2 ,其中 Z Z Z n ∗ d n*d nd 矩阵,每一行是一个样本在低维空间中的坐标。这一步是为了得到样本在低维空间中的具体坐标,使得样本间距离或相似度不变。

  降维效果的评估方法可以分为两类:

  • 一类是通过降至二维和三维,然后将数据进行可视化分析,这是一种定性的评价标准,比较主观,可以直观地看出降维后的数据是否保持了原始数据的结构和相似度。
  • 另一类是通过比较降维前后学习器的性能进行评价,这是一种定量的评价标准,比较客观,可以用一些指标来衡量,如准确率、召回率、F1值等。这种方法可以反映出降维是否提高了学习器的效果和效率。

10.3 主成分分析

10.3.1 定义与步骤

  主成分分析(PCA)是一种使用最广泛的数据降维算法,它的主要思想是将 n n n维特征映射到 k k k维上,这 k k k维是全新的正交特征,也被称为主成分,是在原有 n n n维特征的基础上重新构造出来的 k k k维特征。

  PCA的数学定义是:一个正交化线性变换,把数据变换到一个新的坐标系统中,使得这一数据的任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。

  PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到 n n n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面 k k k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面 k k k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。

  为了得到这些包含最大差异性的主成分方向,我们需要对数据进行一些预处理和计算。具体步骤如下:

  • 组织数据集:假设有 m m m n n n维数据样本组成一个 m × n m×n m×n矩阵 X X X
  • 计算均值:对每一个特征求平均值,并将所有样本减去各自特征的平均值。
  • 计算协方差矩阵:协方差矩阵是一个对称矩阵,它描述了不同特征之间的相关性。协方差矩阵可以通过样本矩阵乘以其转置除以样本数减一得到,即 1 m − 1 W W T \frac{1}{{m - 1}}{\bf{W}}{{\bf{W}}^T} m11WWT
  • 求协方差矩阵的特征值和特征向量:协方差矩阵是一个实对称矩阵,它可以被正交对角化为 Q Σ Q − 1 QΣQ^{-1} QΣQ1 的形式,其中 Q Q Q是由特征向量组成的正交矩阵, Σ Σ Σ是由特征值组成的对角矩阵。
  • 选择主成分:根据特征值从大到小排序,选择前 k k k个最大的特征值所对应的特征向量组成一个矩阵 P P P
  • 得到降维后的数据:将原始数据矩阵 X X X乘以 P P P得到降维后的数据矩阵 Y Y Y

10.3.2 最近重构性与最大可分性

  主成分分析的目的是找到一个低维的超平面,使得原始数据在这个超平面上的投影能够尽可能地保留原始数据的信息。这个信息可以从两个方面来衡量:最近重构性和最大可分性。

  • 最近重构性:重构后的样本映射回原空间,与原样本的距离都足够的近。也就是说,PCA要求投影后的数据能够用最小的误差来近似原始数据。这个误差可以用样本点到投影超平面的距离来表示,因此,最近重构性可以转化为一个最小化距离平方和的优化问题。

  • 最大可分性:样本在这个超平面上的投影尽可能分开。也就是说,PCA要求投影后的数据能够有最大的方差,以反映原始数据的差异性。这个方差可以用投影后数据的协方差矩阵来表示,因此,最大可分性可以转化为一个最大化协方差矩阵迹的优化问题。

  假定数据样本进行了中心化,即 ∑ x i = 0 \sum {{x_i}} = 0 xi=0,再假定投影变换后得到的新坐标系为 { w 1 , w 2 , . . . , w d } \{ {w_1},{w_2},...,{w_d}\} {w1,w2,...,wd},若丢弃新坐标系中的部分坐标,即将维度降低到 d ′ < d d' < d d<d,则样本点 x i x_i xi在低维坐标系中的投影是 z i = ( z i 1 ; z i 2 ; . . . ; z i d ′ ) {z_i} = ({z_{i1}};{z_{i2}};...;{z_{id'}}) zi=(zi1;zi2;...;zid),其中 z i j = w j T x i {z_{ij}} = w_j^T{x_i} zij=wjTxi x i x_i xi在低维坐标系下第 j j j维的坐标,如果基于 z i z_i zi来重构 x i x_i xi,则会得到 x ‾ i = ∑ j = 1 d ′ z i j w j {\overline x _i} = \sum\limits_{j = 1}^{d'} {{z_{ij}}{w_j}} xi=j=1dzijwj

  考虑整个训练集,原样本点 x i x_i xi与基于投影重构的样本点 x ‾ i {\overline x _i} xi之间的距离为
∑ i = 1 m ∥ ∑ j = 1 d ′ z i j w j − x i ∥ 2 2 = ∑ i = 1 m z i T z i − 2 ∑ i = 1 m z i T W T x i + c o n s t ∝ − t r ( W T ( ∑ i = 1 m x i x i T ) W ) \sum\limits_{i = 1}^m {\left\| {\sum\limits_{j = 1}^{d'} {{z_{ij}}{w_j} - {x_i}} } \right\|_2^2} = \sum\limits_{i = 1}^m {{z_i}^T{z_i} - 2\sum\limits_{i = 1}^m {{z_i}^T{{\bf{W}}^T}{x_i} + const} } \propto - tr({{\bf{W}}^T}(\sum\limits_{i = 1}^m {{x_i}{x_i}^T} ){\bf{W}}) i=1m j=1dzijwjxi 22=i=1mziTzi2i=1mziTWTxi+consttr(WT(i=1mxixiT)W)
  根据最近重构性,上述式子需要最小化,则得到了如下的结果,也是主成分分析的优化目标。
min ⁡ W − t r ( W T X X T W ) s . t . W T W = I \begin{aligned} \min\limits_{\bf{W}} &- tr({{\bf{W}}^T}{\bf{X}}{{\bf{X}}^T}{\bf{W}}) \\ s.t.&{{\bf{W}}^T}{\bf{W}} = {\bf{I}} \\ \end{aligned} Wmins.t.tr(WTXXTW)WTW=I
  根据最大可分性,若所有样本点的投影尽可能分开,则应该使投影后样本点的方差最大化,如下图所示。于是可以对协方差矩阵 X X T {\bf{X}}{{\bf{X}}^T} XXT进行特征值分解,将求得的特征值排序: λ 1 ⩾ λ 2 ⩾ . . . ⩾ λ d {\lambda _1} \geqslant {\lambda _2} \geqslant ... \geqslant {\lambda _d} λ1λ2...λd,再取前 d ′ d' d个特征值对应的特征向量构成 W ∗ = ( w 1 , w 2 , . . . , w d ′ ) {{\bf{W}}^*} = ({w_1},{w_2},...,{w_{d'}}) W=(w1,w2,...,wd),这就是主成分分析的解。

10.4 核化线性降维

  现实任务中可能需要非线性映射来找到恰当的低维嵌入,如下图所示,样本点从二维空间中的矩形区域采样后以S形曲面嵌入到三维空间,若直接使用线性降维方法对三维空间观察到的样本点进行降维,则将失去原本的低维结构。为了对“原本采样的”低维空间与降维后的低维空间加以区别,我们称前者为“本真”低维空间,而非线性降维的一种常用方法,是基于核技巧对线性降维方法进行“核化”。

10.5 流形学习

  流形学习(manifold learning)是一种非线性降维技术,它基于这样一个假设:高维空间中的数据实际上是由一个低维流形映射到高维空间上的。流形是高维空间中的几何结构,可以看作是低维空间中曲线或曲面在高维空间中的推广。流形学习的目的是找到一个合适的映射函数,将高维空间中的数据投影到低维流形上,从而保留数据的内在结构和特征。流形学习有很多应用,例如数据可视化,数据压缩,数据生成,特征提取等。流形学习的典型算法有局部线性嵌入(LLE),拉普拉斯特征映射(LE),局部保持投影(LPP),等距映射(ISOMAP)等。

10.6 度量学习

  度量学习是一种从数据中学习一种度量数据对象间距离的方法,它的目的是使得在学得的距离度量下,相似对象间的距离小,不相似对象间的距离大。度量学习可以用于数据分类,聚类,检索,可视化等任务。

  深度度量学习是一种结合了深度学习和度量学习的方法,它可以从原始数据中自动地学习高质量的特征表示,并利用激活函数来捕捉数据的非线性特征。深度度量学习主要由三个方面组成:样本挖掘,模型结构和损失函数。样本挖掘是指从数据集中选择合适的样本对或三元组来训练模型,使得模型能够从难分辨的样本中学习更多的信息。模型结构是指使用深度神经网络来提取数据的特征向量,常见的模型结构有孪生网络和三元组网络²。损失函数是指定义模型优化的目标函数,常见的损失函数有对比损失,三元组损失,N-pair损失等。

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

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

相关文章

数字图像处理实验报告(二)

报告目录 实验四、图像复原 实验五、图像压缩及编码 实验四、图像复原 一、实验目的 了解图像复原的意义和手段&#xff1b;熟悉图像退化成因及处理方法&#xff1b;通过实验了解不同图像退化模型的特点&#xff1b;通过本实验掌握利用MATLAB建立图像退化模型并进行复原的方…

linux CentOS7 keepalived+LVS(DR)搭建部署

目录 一、服务器准备 二、操作步骤 1.部署web服务器 2.部署LVS主备调度器 测试 部署NFS共享服务器 一、服务器准备 .准备6台虚拟机&#xff0c;2台做LVS主备调度器&#xff0c;2台做web服务器&#xff0c;1台做存储&#xff0c;1台客户机验证 1.LVS主调度器 &#xff08…

20个你应该掌握的强大而有用的正则表达式

关注“大前端私房菜”微信公众号&#xff0c;回复暗号【面试宝典】即可免费领取107页前端面试题。 正则表达式是一种很强大的字符串模式匹配工具。掌握常见的正则表达式可以大大提高我们在字符串操作和文本处理上的效率。 1.货币格式化 我经常需要在工作中使用到格式化的货币&…

哈希及其哈希思想的应用

1. unordered 系列关联式容器 在 C98 中&#xff0c; STL 提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到 $log_2 N$ &#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好 的查询…

Ubuntu20.04,samba服务器搭建。

0.前言 推荐个电视剧吧&#xff0c;百看不厌&#xff0c;《雍正王朝》。 这篇博客没什么技术含量&#xff0c;纯粹的表现一下我的勤劳。 1.Ubuntu 安装 终端输入 $ sudo apt install samba samba-common 配置需要共享的目录 # 新建目录&#xff08;自定义&#xff09;&am…

CarFramework打造无缝用户体验:提升汽车信息娱乐和控制

CarFramework框架解析 CarFramework&#xff08;汽车框架&#xff09;是Android Automotive平台上的一个关键框架&#xff0c;它提供了专门针对车辆应用程序开发的功能和工具。CarFramework通过提供一组API和服务&#xff0c;简化了与车辆硬件和车辆特定功能的交互。 CarFram…

被ChatGPT骗了!再用ChatGPT可要小心了。

被ChatGPT戏耍的周末 1. 被ChatGPT戏耍全过程2. 拆穿ChatGPT的把戏3. AIGC与内容安全 1. 被ChatGPT戏耍全过程 电动垂直起降飞行器&#xff08;eVTOL&#xff0c;Electric Vertical Takeoff and Landing&#xff09;技术越来越成熟&#xff0c;为了解下相关产品我周末打开了Cha…

Android Java判断密码强度 强度显示

1&#xff0c;正则表达式 密码强度的正则表达式 public static final String WEAK_PATTERN "(^(?.*[0-9])(?.*[a-z])[0-9a-z]{6,18}$)|(^(?.*[0-9])(?.*[A-Z])[0-9A-Z]{6,18}$)";//全数字字母&#xff08;大/小&#xff09;public static final String MEDIUM_…

61、基于51单片机无线蓝牙音乐喷泉控制系统设计(程序+原理图+PCB源文件+参考论文+参考PPT+元器件清单等)

方案选择 单片机的选择 方案一&#xff1a;AT89C52是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS型8位单片机&#xff0c;器件采用ATMEL公司的高密度、非易失性存储技术生产&#xff0c;兼容标准MCS-51指令系统&#xff0c;片内置通用8位中央处理器(CPU)和Flash存储单元…

MySql基础教程(一):创建删除选择数据库

MySql基础教程(一)&#xff1a;创建删除选择数据库 1、创建数据库 创建一个名为 CSDN 的数据库 CREATE DATABASE CSDN;执行成功&#xff0c;数据库CSDN创建成功。 2、删除数据库 删除名为 CSDN 的数据库 DROP DATABASE CSDN;执行成功&#xff0c;CSDN数据库删除成功。 3…

【Java技术专题】「入门到精通系列教程」零基础带你认识网络请求工具鼻祖之HttpClient开发实战指南(执行请求篇)

零基础带你认识网络请求工具鼻祖之HttpClient开发实战指南 前言HttpClient的作用HttpClient可以实现什么&#xff1f;HttpClient无法实现什么&#xff1f; HttpClient的使用基础执行请求HTTP 请求查询字符串也可以从独立的参数中来生成 HTTP 响应HTTP 实体实体类型重复实体使用…

重新审视长时间序列预测:关于线性映射的调查

摘要 近年来&#xff0c;长时间序列预测得到了极大的关注。虽然有各种专门的设计来捕捉时间依耐性&#xff0c;但以前的研究表明&#xff0c;与其他复杂的架构相比&#xff0c;单一的线性层可以实现有竞争力的预测性能。在本文中&#xff0c;我们彻底调查了最近提出的方法内在…

微信小程序开发21__Echarts的应用

Echarts 是一个使用JS实现的开源可视化库&#xff0c; 其官网是 https://echarts.apache.org . 它提供了常规的折线图、柱状图、散点图、饼图、K线图等&#xff0c; 还支持图与图之间的混搭。 Echarts 的微信小程序版本的Github为 https://github.com/ecomfe/echarts-for-…

MySQL数据库日志管理、备份与恢复

目录 一、MySQL 日志管理 二、数据备份的重要性 造成数据丢失的原因 三、数据库备份的分类 1 、从物理与逻辑的角度 &#xff08;1&#xff09;备份划分 &#xff08;2&#xff09; 物理备份方法 2、 从数据库的备份策略角度 四、常见的备份方法 1、物理冷备 2、专用备…

天气热了,三叔请你吃瓜

目录 前言预备知识画一个完整的西瓜加些纹路切西瓜参考资料前言 六月份转眼就过去一半了,气温逐渐走高,每次经过小区门口的时候都会被那家水果店铺的吆喝声吸引住,“正宗南汇8424西瓜只要3元一斤啦”,每每都想冲进店里抱一个回来,可碍于囊中羞涩,只好作罢,晚餐过后闲暇…

Postman | 一分钟掌握Pre-request Script | 外部库的使用

简介 Postman内部提供了13种外部库&#xff0c;可以直接在前置请求脚本和后置请求脚本中使用&#xff0c;如果需要其他外部库&#xff0c;只需要使用如下方式引入即可&#xff1a; require(moduleName:String):function → * 一些内部库使用的例子 postman可用的外部库官网列…

[第一章 web入门]afr

afr_1 题目开头已经提示说是任意文件读取漏洞 所以这里还需要复习一下php伪协议php://filter 的作用 读取源代码并进行base64编码输出&#xff0c;不然传入的参数会直接当做php代码执行就看不到源代码内容了。php://filter即使在allow_url_fopen和allow_url_include双off情况下…

Day21 实战篇——Jmeter接口测试之案例实战——添加线程组、添加HTTP请求、获取所有学生接口

Day21 实战篇——Jmeter接口测试之案例实战——添加线程组、添加HTTP请求、获取所有学生接口 文章目录 Day21 实战篇——Jmeter接口测试之案例实战——添加线程组、添加HTTP请求、获取所有学生接口1、添加线程组2、添加HTTP请求3、获取所有学生接口3.1 Jmeter察看结果树中乱码:…

03_运行时数据区

目录 一、概述二、线程1、JVM系统线程 一、概述 二、线程 1、JVM系统线程