七、西瓜书——降维与度量学习

1.K近邻

        k 近邻(k-Nearest Neighbor,简称 kNN)学习是一种常用的监督学习方法,其工作机制非常简单: 给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测,通常,在分类任务中可使用“投票法”,即选择这k 个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大.

        k 近邻学习有一个明显特点: 它似乎没有显式的训练过程!事实上,它是“懒惰学习”(lazy learning)的著名代表,此类学习技术在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到测试样本后再进行处理; 相应的,那些在训练阶段就对样本进行学习处理的方法,称为“急切学习”(eager learning).

  2.低维嵌入

        事实上,在高维情形下出现的数据样本稀疏、距离计算困难等问题是所有机器学习方法共同面临的严重障碍,被称为“维数灾难”(curse of dimensionality).缓解维数灾难的一个重要途径是降维(dimension reduction),亦称“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”(subspace),在这个子空间中样本密度大幅提高,距离计算也变得更为容易

      

        其中,MDS算法会计算高维空间中样本点之间的距离,然后尝试在低维空间中找到一组点的坐标,使得这些点之间的距离与高维空间中的距离尽可能一致。通过这种方式,MDS能够在降维的同时保留数据点之间的相对距离关系,从而帮助我们更好地理解数据的结构和关系。 

3.主成分分析

        对于正交属性空间的样本点,如果希望找到一个超平面(直线的高维推广)对所有样本进行恰当的表达。
       若存在这样的超平面,那么它大概应具有这样的性质:

  • 最近重构性:样本点到这个超平面的距离都足够近
  • 最大可分性: 样本点在这个超平面上的投影能尽可能分开

        

        主成分分析(Principal Component Analysis,PCA)是一种常用的数据分析方法,它的主要目的是通过降维技术,用较少的变量来代替原来较多的变量,同时尽可能保留原始数据中的信息。这种方法可以帮助我们更好地理解和处理高维数据。

        主成分分析的基本原理是将原始数据中的多个变量通过线性变换转换为新的变量,这些新变量被称为主成分。第一主成分是具有最大方差的线性组合,第二主成分是与第一主成分正交且具有次大方差的线性组合,以此类推。通过这种方式,主成分分析能够将原始数据中的信息压缩到少数几个主成分中,从而实现降维的目的。在这个过程中,PCA的目标可以看作是寻找一个超平面进行映射,超平面需要满足上述最近易构性和最大可分性。

  1. 数据的表示:假设我们有M个N维的数据向量,这些数据可以组成一个M×N的矩阵X。每一行代表一个数据点,每一列代表一个特征。我们的目标是将这些N维数据降到K维(K < N)。
  2. 数据的中心化:在进行PCA之前,通常需要对数据进行中心化处理,即使得数据的均值为0。这可以通过从每个特征中减去其均值来实现。中心化后的数据矩阵仍然用X表示。

  3. 协方差矩阵的计算:接下来,计算数据的协方差矩阵C。协方差矩阵是一个N×N的矩阵,其元素表示不同特征之间的协方差。协方差矩阵反映了数据在不同特征方向上的分布和相关性。C = (1/M) * X^T * X 注意:这里的X是中心化后的数据矩阵,X^T表示X的转置。

  4. 特征值和特征向量的计算:对协方差矩阵C进行特征分解,得到其特征值和对应的特征向量。特征向量构成了新的坐标系,而特征值表示了数据在新坐标系上的方差。C * V = λ * V其中,V是特征向量,λ是对应的特征值。
  5. 选择主成分:
    将特征值按照从大到小的顺序排列,选择前K个最大的特征值所对应的特征向量。这些特征向量构成了新的K维坐标系,即主成分。

  6. 数据的降维:
    将原始数据投影到选定的主成分上,得到降维后的数据。这可以通过计算原始数据与主成分的内积来实现。降维后的数据 = X * V_selected;其中,V_selected是选定的主成分(特征向量)组成的矩阵。

         需要注意的是,在实际应用中,可能需要对特征值进行归一化处理,以使得新的坐标系的尺度一致。此外,PCA假设数据的方差最大程度地保留了数据的信息,因此在某些情况下可能并不适用。在选择使用PCA时,需要根据具体的数据特性和应用场景进行评估。

4 核化线性降维

        线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而,在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。

        与核化支持向量机原理相同,核化PCA也可以通过核处理从而实现非线性超平面映射,从而解决非线性映射问题。

5.流形学习

        流形学习(manifold learning)是一类借鉴了拓扑流形概念的降维方法,它基于一种假设:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去十分复杂,但在局部上仍具有欧氏空间的性质。因此,可以容易地在局部建立降维映射关系,然后再设法将局部映射关系推广到全局,实现数据的降维或可视化。

        设我们有一个三维空间中的数据集,这些数据点实际上是由一个二维流形(例如,一个卷曲的曲面)嵌入在三维空间中产生的。在三维空间中观察这些数据点,它们可能看起来非常复杂且难以分析。但是,如果我们能够将这个三维数据集映射回其原始的二维流形上,我们就可以更容易地理解数据的内在结构和关系。

(1)等度量映射

        等度量映射(Isometric Mapping,简称Isomap)的基本出发点,是认为低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流形上是不可达的。也就是说,这是一个二维的流形,这条红色直线是压根不存在的,如图 10.7(a)所示,低维嵌入流形上两点间的距离是“测地线”(geodesic)距离:即沿着S形平面的距离。

        那么,如何计算测地线距离呢?这时我们可利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出其近邻点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接,于是,计算两点之间测地线距离的问题就转变为计算近邻连接图上两点之间的最短路径问题

        从图 10.7(b)可看出基于近邻距离近能获得低维流形上测地线距离很好的近似.在近邻连接图上计算两点间的最短路径,可采用著名的 Dkstra 算法或Floyd 算法,在得到任意两点的距离之后就可通过MDS 方法来获得样本点在低维空间中的坐标图

        对近邻图的构建通常有两种做法

  • 一种是指定近邻点个数,例如欧氏距离最近的 k 个点为近邻点这样得到的近邻图称为k近邻图;
  • 另一种是指定距离阈值 \epsilon,距离小于\epsilon 的点被认为是近邻点,这样得到的近邻图称为\epsilon近邻图

         两种方式均有不足,例如若近邻范围指定得较大,则距离很远的点可能被误认为近邻,这样就出现“短路”问题;近邻范围指定得较小,则图中有些区域可能与其他区域不存在连接,这样就出现“断路”问题短路与断路都会给后续的最短路径计算造成误导。

(2)局部线性嵌入

        局部线性嵌入(Locally Linear Embedding,LLE)是一种非常重要的降维方法,尤其适用于在降维时保持样本的局部线性特征。

        该方法基于流形学习的思想,可以将高维数据映射到低维空间中,同时保持数据的局部几何结构不变。LLE的基本思想是通过保持每个数据点与其最近邻之间的线性关系,来描述数据的局部几何结构。其主要步骤包括:

  1. 找邻居:对于每个点,找到它的最近的几个邻居。这些邻居点在原始的纸面上(或高维空间中)是线性相关的。
  2. 计算权重:对于每个点,计算它与邻居点之间的线性关系的权重。这些权重描述了如何用一个点的邻居来重构这个点。
  3. 嵌入:现在,你尝试将这些点和它们的权重放到一个平面上(或低维空间中),同时尽量保持每个点与其邻居之间的权重关系不变。

6.度量学习

        度量学习是希望找到针对于样本属性的距离度量,以达到与降维寻找低维空间的异曲同工之妙。

传统的平方欧式距离: 

        

对属性加上权重:

 

于是得到了马式距离:

 

         度量学习的目标是学习一个距离函数,使得在这个距离度量下,相似的样本之间的距离尽可能小,不相似的样本之间的距离尽可能大。这可以被视为一种有监督的学习方法,因为它需要使用标签信息(即样本之间的相似性或差异性)来学习距离度量。然而,也存在无监督的度量学习方法,这些方法主要依赖于样本之间的内在结构或分布。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

$nextTick底层原理(详细) - vue篇

公众号&#xff1a;需要以下pdf&#xff0c;关注下方 2023已经过完了&#xff0c;让我们来把今年的面试题统计号&#xff0c;来备战明年的金三银四&#xff01;所以&#xff0c;不管你是社招还是校招&#xff0c;下面这份前端面试工程师高频面试题&#xff0c;请收好。 前言 n…

CUDA学习笔记04:向量之和

参考资料 CUDA编程模型系列二(向量操作)_哔哩哔哩_bilibili &#xff08;非常好的学习资料&#xff01;&#xff09; vs2019 随意新建一个空项目&#xff0c;按照之前的环境配置配好项目依赖&#xff1a; CUDA学习笔记02&#xff1a;测试程序hello world-CSDN博客 代码结构…

jitpack上传aar异常: ERROR: No build artifacts found

问题 如图所示&#xff0c;提示 ERROR: No build artifacts found 解决 无法找到artifacts的情况下&#xff0c;我们就需要手动添加artifacts 。 //maven-publish 插件的配置 // publishing 用于定义项目的发布相关配置 publishing {// 配置maven 仓库repositories { Repo…

5201B数据网络测试仪

|5201B数据网络测试仪| | 产品综述 | 电科思仪5201B便携式数据网络测试仪&#xff0c;集成高性能IP基础测试硬件平台&#xff0c;提供L2-L3流量测试及协议仿真解决方案&#xff0c;支持以太网报文线速生成与分析、统计、报文捕获&#xff0c;以及路由、接入、组播、数据中心等协…

item_fee-获得淘宝商品快递费用 API调用说明获取测试key

item_fee-获得淘宝商品快递费用 .通过传入商品id、区域id&#xff0c;来获取该商品的快递费用。 公共参数 点此获取API请求地址 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&a…

Linux系统的服务/进程

系统守护进程&#xff08;服务&#xff09; •服务就是运行在网络服务器上监听用户请求的进程 •服务是通过端口号来区分的 常见的服务及其对应的端口 1.ftp&#xff1a;21 FTP指的是文件传输协议&#xff0c;它是用于在计算机网络上进行文件传输的标准网络协议。通过FTP&am…

数字化转型导师坚鹏:成为数字化转型顾问 引领数字化美好未来

成为数字化转型顾问 引领数字化美好未来 ——数字化人才与企业的共赢之路 数字经济新时代&#xff0c;中国企业向数字化转型要效益&#xff1b; 转型顾问创未来&#xff0c;职场精英借数字化转型成良师。 我们中国政府特别重视数字经济发展及数字化人才培养。早在2020年8月2…

通过XML调用CAPL脚本进行测试(新手向)

目录 0 引言 1 XML简介 2 通过XML调用CAPL脚本 0 引言 纪念一下今天这个特殊日子&#xff0c;四年出现一次的29号。 在CANoe中做自动化测试常用的编程方法有CAPL和XML两种&#xff0c;二者各有各的特色&#xff0c;对于CAPL来说新手肯定是更熟悉一些&#xff0c;因为说到在C…

C#高级:Winform桌面开发中DataGridView的详解

一、每条数据增加一个按钮&#xff0c;点击输出对应实体 请先确保正确添加实体的名称和文本&#xff1a; private void button6_Click(object sender, EventArgs e) {//SQL查询到数据&#xff0c;存于list中List<InforMessage> list bll.QueryInforMessage();//含有字段…

动静态库-动态库加载

动静态库 前言引入 一、静态库1. 创建静态库①原理②创建 2. 使用静态库①借助编译选项②只需要带库名 3. 小结 二、动态库1. 创建动态库2. 使用动态库 三、 动态库加载原理——进程地址空间1. 地址①程序没有被加载前的地址②程序加载后的地址 2. 原理①动态库的地址②原理 前…

Redis中的单线程高性能原因和其他高级命令

单线程 Redis是单线程吗&#xff1f; Redis的单线程主要是指Redis的网络IO和键值对读写是由一个线程来完成的&#xff0c;这也是 Redis对外提供键值存储的主要流程。但Redis的其他功能&#xff0c;比如持久化、异步删除、 集群数据同步等&#xff0c;其实是由额外的线程执行的…

Spring Cloud 面试题及答案整理,最新面试题

Spring Cloud中断路器的原理及其作用是什么&#xff1f; Spring Cloud断路器的原理和作用基于以下几个关键点&#xff1a; 1、故障隔离机制&#xff1a; 在微服务架构中&#xff0c;断路器作为一种故障隔离机制&#xff0c;当某个服务实例出现问题时&#xff0c;断路器会“断…

紫光展锐携手中兴通讯成功完成业界首个5G N102芯网一体方案联调

近日&#xff0c;紫光展锐携手中兴通讯成功完成业界首个5G N102频段的芯网一体方案联调&#xff0c;包括5G NR数据呼叫、时延和峰值速率测试等用例。这是双方在5G产品和研发方面取得的重大创新成果&#xff0c;为推动N102频段在5G行业的应用奠定了坚实基础。 3GPP定义的N102频段…

软件测试 - 测试用例基本理论

1. 概念 为了特定的目的(该目的是检验代码是否满足用户需求)而设计的文档&#xff0c;文档包含测试输入、执行条件、预期结果等。文档的形式一般是excel表格。 比如说我们买了一台电脑&#xff0c;新买的笔记本检查完外观之后第一步需要查看电脑是否能够正常开机&#xff0c;…

用Python爬取古诗文网的各类古诗

fetch-gushiwen 用途 可以拿去用于个人知识库、知识图谱的创建等其他学习用途。 使用 输入古诗文网的链接&#xff0c;即可爬取该页面所有诗歌的诗名&#xff0c;作者&#xff0c;朝代&#xff0c;内容&#xff0c;译文&#xff0c;注释&#xff0c;赏析&#xff0c;创作背…

MySQL 缓存策略

MySQL 缓存方案用来干什么 ? 缓存用户定义的热点数据&#xff0c;用户直接从缓存中获取热点数据&#xff0c;降低数据的读写压力。场景分析 内存访问速度是磁盘访问速度的 10 万倍。读的需求远远大于写的需求MySQL 自身缓冲层跟业务无关。MySQL 作为项目主要数据库&#xff0…

P5076 【深基16.例7】普通二叉树(简化版)题解

题目 您需要写一种数据结构&#xff0c;来维护一些数&#xff08;都是绝对值以内的数&#xff09;的集合&#xff0c;最开始时集合是空的。其中需要提供以下操作&#xff0c;操作次数q不超过&#xff1a; 定义数x的排名为集合中小于x的数的个数1。查询数x的排名。注意x不一定…

【ICM】好奇心机制

文章目录 样本经验处理降低图片像素和通道构建连续状态捕捉动作经验回放类 各部分的模型编码器模型反向模型正向模型DQN模型ICM 的 反向传播 概念补充强化学习组成元素按照学习目标来分按照策略更新方式区分强化学习on-line 与 off-line经验回放 全部代码 样本经验处理 降低图…

什么是物联网?物联网如何工作?

物联网到底是什么&#xff1f; 物联网(Internet of Things&#xff0c;IoT)的概念最早于1999年被提出&#xff0c;官方解释为“万物相连的互联网”&#xff0c;是在互联网基础上延伸和扩展&#xff0c;将各种信息传感设备与网络结合起来而形成的一个巨大网络&#xff0c;可以实…

无法启动报,To install it, you can run: npm install --save @/components/iFrame/index

运行的过程中后台报错 npm install --save /components/iFrame/index&#xff0c;以为是安装三方依赖错误&#xff0c;经过多次重装node_modules依然没有用。 没办法&#xff0c;只能在项目中搜索 components/iFrame/index这个文件。。突然醒悟。。。 有时候&#xff0c;犯迷…