机器学习强基计划8-4:流形学习等度量映射Isomap算法(附Python实现)

news2024/11/28 6:30:28

目录

  • 0 写在前面
  • 1 什么是流形?
  • 2 什么是流形学习?
  • 3 等度量映射原理
  • 4 Python实现

0 写在前面

机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树、支持向量机、贝叶斯与马尔科夫决策、强化学习等。强基计划实现从理论到实践的全面覆盖,由本人亲自从底层编写、测试与文章配套的各个经典算法,不依赖于现有库,可以大大加深对算法的理解。

🚀详情:机器学习强基计划(附几十种经典模型源码)


1 什么是流形?

在这里插入图片描述

流形(manifolds)是可以局部欧几里得空间化的一个拓扑空间,是具有拓扑结构的点集,是欧几里得空间中的曲线、曲面等概念的推广。

欧几里得空间是最简单的流形实例。流形要求拓扑结构的局部为欧式空间或其他相对简单的空间。例如下面的左图所示,在一个半径极大的球面(如地球)上,若以充分大的尺度去度量一个三角形则其只能为曲边三角形,欧式距离不成立,因为位于二维平面上的点不能沿直线穿过球面到达目标点;若以充分小的尺度去度量则可以得到直边三角形——例如在地球上测量跑道长度无需考虑地球的曲率。下面右图中的一维流形同理

在这里插入图片描述
一个并非流形的实例是在球面上吊一根线,因为在包含了线和球连接的那一点的附近区域一定不是简单的——既不是线也不是面。

在流形中度量两点的距离采用测地线(geodesic),测地线是位于流形上两点的最短拓扑距离,如图所示。

在这里插入图片描述

2 什么是流形学习?

流形学习(manifold learning)假设样本数据分布在高维特征空间中的低维嵌入流形上,虽然整体十分复杂,但局部上仍具有欧氏空间的性质,因此可以在局部建立降维映射关系,然后再将局部映射关系推广到全局——局部线性构造全局非线性。流形学习旨在从观测样本中去寻找产生数据分布的内在本质规律,而非破坏结构性地降维。

流形学习是近年来机器学习领域的一个重要研究方向,其发展历史可以追溯到上世纪90年代。流形学习在图像处理和计算机视觉领域中被广泛应用,例如图像分割、物体识别和人脸识别等。此外,在生物信息学和医学领域中,流形学习也有很多应用,例如基因表达谱分析、疾病诊断和药物研发等。

在这里插入图片描述

3 等度量映射原理

等度量映射(Isometric Mapping, Isomap)是流形上的多维缩放算法,其限制样本在降维后的低维空间中的测地线距离,等价于原始空间。经典多维缩放算法原理请看机器学习强基计划8-2:详细推导多维缩放MDS算法(附Python实现)

具体算法流程如表所示

在这里插入图片描述
对近邻图的构建通常有两种做法:

  • 指定近邻点个数,称为 k k k近邻图,例如设欧氏距离最近的 个点为近邻点;
  • 指定距离阈值 ϵ \epsilon ϵ,称为 ϵ \epsilon ϵ近邻图,例如设距离小于 ϵ \epsilon ϵ的点为近邻点;

若近邻范围指定得较大,则测地线距离很远的点可能被误认为近邻——出现短路现象;若近邻范围指定得较小,则流形上部分区域可能与其他区域不存在连接,出现断路现象。短路与断路都会给后续的最短路径计算造成误导。

需注意的是, Isomap 算法只能得到训练样本在低维空间的坐标,对于新样本的预测兼容性差(需要结合回归等其他算法)。

4 Python实现

核心代码如下

def run(self, outDim):
    # 获得距离矩阵
    D = self.calDist()
    D[D < 0] = 0
    D = D**0.5
    # 计算测地线距离矩阵
    Dk = self.floyd(D, self.k)
    # 调用多维缩放算法计算低维样本
    Z = self.mds(Dk**2, outDim)
    return Z

def floyd(self, D, knbrs):
    maxVal = np.max(D) * 1000
    Dk = np.ones((self.m, self.m)) * maxVal
    DIndex = np.argsort(D, axis=1)
    for i in range(self.m):
        Dk[i, DIndex[i, 0:knbrs + 1]] = D[i, DIndex[i, 0:knbrs + 1]]
    for k in range(self.m):
        for i in range(self.m):
            for j in range(self.m):
                if Dk[i, k] + Dk[k, j] < Dk[i, j]:
                    Dk[i, j] = Dk[i, k] + Dk[k, j]
    return Dk

以S流形数据集为例执行降维,效果如下

在这里插入图片描述

在这里插入图片描述
本文完整工程代码请通过下方名片联系博主获取


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

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

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

相关文章

【经验分享】Windows/Ubuntu上如何使用api下载kaggle上的数据集

1 下载kaggle的api 1.1 已经安装了Anaconda 打开cmd&#xff08;Windows&#xff09;/打开终端&#xff08;Ubuntu&#xff09; conda activate 你的conda环境名称 这里我的环境叫做Pytorch conda activate Pytorch然后执行pip install kaggle pip install kaggle如果你没…

沃尔玛、亚马逊影响listing的转化率4大因素,测评补单自养号解析

1、listing的相关性&#xff1a;前期我们在找词&#xff0c;收集词的时候&#xff0c;我们通过插件来协助我们去筛选词。我们把流量高&#xff0c;中&#xff0c;低的关键词都一一收集&#xff0c;然后我们再进行对收集得来的关键词进行分析&#xff0c;再进行挑词&#xff0c;…

云计算:优势与未来趋势

文章目录 前言一、云计算的优势1. 降低IT成本2. 提高工作效率3. 提高业务的可靠性和稳定性4. 提升安全性 二、未来发展趋势1. AI与云计算的融合2. 边缘计算的发展3. 多云的趋势4. 服务器和存储的创新 三、 行业应用案例1.金融行业2.医疗保健行业3.教育行业4.零售和物流行业 四、…

2.4 定点除法运算

学习目标&#xff1a; 学习如何实现一个基于余数查商法的定点除法运算&#xff0c;并能够正确地进行除法计算&#xff0c;包括处理舍入误差和溢出等问题。具体要求包括&#xff1a; 熟悉定点数的表示方法和定点数的基本运算法则&#xff0c;理解定点除法运算的基本概念和原理。…

逻辑回归评分系统(mimic数据集)

1.读取数据与数据处理 为什么不对数据进行标准化&#xff1f; 我们制作的评分卡&#xff0c;评分卡是要给医务人员们使用的基于病人的化验结果打分的一张卡片&#xff0c;而为了制作这张卡片&#xff0c;我们需要对我们的数据进行一个“分档”&#xff0c;比如说&#xff0c;…

大型Saas系统的权限体系设计(一)

X0 概述 在2B系统开发中&#xff0c;权限体系设计是绕不开的问题。最简单的当然是RBAC模型&#xff0c;只要通过用户、角色、权限几个有限的概念&#xff0c;就可以建立起一套基本可用的权限体系。再复杂一点&#xff0c;可以增加角色的层级概念&#xff0c;使得角色的配置更高…

验证回文串

题目&#xff1a;验证回文串 思路&#xff1a; 这段代码是一个判断字符串是否为回文的函数。它接受一个 string 类型的参数 s&#xff0c;并依次执行两个步骤&#xff1a; 首先对字符串进行预处理&#xff1a; 将大写字母转换成小写字母&#xff1b;移除非字母数字字符。 然…

平均10870元!2023一季度居民可支配收入公布(文末附最新招聘岗位)

今天是五一假期的第一天&#xff0c;暂别职场的打工人已经开始扎入人从众中放肆玩乐了&#xff0c;小编已经流下了羡慕的泪水。不过&#xff0c;今年的五一除了人流量上暴涨之外&#xff0c;出行成本也没被少吐槽&#xff0c;机票咱就不说了&#xff0c;酒店民宿的涨幅简直到了…

医院信息系统HIS源码——接口技术:RESTful API + WebSocket + WebService

云HIS系统采用SaaS软件应用服务模式&#xff0c;提供软件应用服务多租户机制&#xff0c;实现一中心部署多机构使用。相对传统HIS单机构应用模式&#xff0c;它可灵活应对区域医疗、医疗集团、医联体、连锁诊所、单体医院等应用场景&#xff0c;并提升区域内应用的标准化与规范…

fc坦克大战游戏完美复刻

文章目录 一、 介绍二、 制作基本物体三、 控制玩家坦克移动、转向四、 子弹脚本、爆炸脚本五、 敌人AI寻路算法六、 坦克生成点脚本七、 用链表实例化地图八、 玩家游戏控制器脚本九、 添加音效十、 资源包 一、 介绍 儿时经典游戏《坦克大战》完整复刻 发射子弹、生成敌人、…

「欧拉定理」[SDOI2008]仪仗队

[SDOI2008]仪仗队 https://ac.nowcoder.com/acm/problem/20313 题目描述 作为体育委员&#xff0c;C君负责这次运动会仪仗队的训练。 仪仗队是由学生组成的N * N的方阵&#xff0c;为了保证队伍在行进中整齐划一&#xff0c;C君会跟在仪仗队的左后方&#xff0c;根据其视线所…

Golang每日一练(leetDay0050)

目录 147. 对链表进行插入排序 Insertion Sort List &#x1f31f;&#x1f31f; 148. 排序链表 Sort List &#x1f31f;&#x1f31f; 149. 直线上最多的点数 Max Points On A Line &#x1f31f;&#x1f31f;&#x1f31f; 150. 逆波兰表达式求值 Evaluate Reverse …

DDS基本原理与FPGA实现

DDS基本原理与FPGA实现 定义&#xff1a;DDS是指DDS信号发生器&#xff0c;采用直接数字频率合成技术。是一种新型的频率合成技术&#xff0c;具有相对带宽大&#xff0c;频率转换时间短、分辨率高和相位连续性好等优点。较容易实现频率、相位以及幅度的数控调制&#xff0c;广…

服务运营| Healthcare Management Science 近期文章精选

作者&#xff1a;李舒湉 王畅 &#xff08;一&#xff09; Screening for preclinical Alzheimer’s disease: Deriving optimal policies using a partially observable Markov model nen Dumlu Z, Sayın S, Grvit İ H. Screening for preclinical Alzheimer’s disease: …

UG NX二次开发(C#)-显示-更改对象颜色

文章目录 1、前言2、UG NX中的更换对象颜色的功能3、采用UG NX二次开发实现颜色修改3.1 采用直接赋值对象颜色不能直接更改对象颜色3.2 采用NewDisplayModification的方法如下:1、前言 当一个三维模型展现在我们面前时,总会有颜色赋予三维模型的对象上,比如红色、蓝色、银灰…

工具链与其他-移动端网络优化的指标和策略

目录 网络指标 一个请求的时间消耗 页面加载 常见性能指标 网络优化策略 缓存 压缩 请求合并 离线包 预加载&#xff08;前端大流量数据&#xff09; 网络指标 一个请求的时间消耗 一个请求的发生到返回回来&#xff1b;有3部分时间 1.Scheduling&#xff08;排队&…

初识C++之异常

目录 一、C中的常用处理错误方式 二、C异常的概念 1. throw 2. catch 3. try 三、异常的使用 1. 异常的抛出和捕获 1.1 异常的抛出和匹配原则 1.2 在函数调用链中异常栈展开匹配原则 四、异常体系 1. 自定义异常体系 2. C中的异常体系 五、 异常安全 六、异常规范…

Unity 热更新基础HybridCLR:Windows平台使用(HybridCLR手记二)

项目是根据官网的示例工程进行修改的,版本参数如下&#xff1a; unity&#xff1a;2021.2.20 wolong&#xff1a;v2.1.0 il2cpp_plus:v2021_2.1.0 ------------------------------------------------------------- 1、安装&#xff1a;参考&#xff1a;第一篇文章Unity 热…

pytest - Getting Start

前言 项目开发中有很多的功能&#xff0c;通常开发人员需要对自己编写的代码进行自测&#xff0c;除了借助postman等工具进行测试外&#xff0c;还需要编写单元测试对开发的代码进行测试&#xff0c;通过单元测试来判断代码是否能够实现需求&#xff0c;本文介绍的pytest模块是…

虚幻图文笔记:Substance Painter通过USD格式导入UE5的工作流

什么是USD格式 USD即Universal Scene Description&#xff0c;是著名的Pixar公司研发的一种开源的3D 场景说明和文件格式&#xff0c;如其名所示&#xff0c;相较于传统的FBX、Obj等3D格式&#xff0c;USD的具有更好的通用性和扩展性&#xff0c;现在已被非常多的厂商和平台所…