在不同空间中展示数据(欧式、球面、庞加莱圆盘)

发布时间:2026/10/22 3:13:06

在不同空间中展示数据(欧式、球面、庞加莱圆盘) 文章目录欧式空间超球面双曲空间本文参照了Geomstats的官方教程对不同流形上的数据进行了展示。欧式空间我们平时接触最多的就是欧式空间在geomstats中可创建一个Euclidean对其实现。下面创建一个欧氏空间并计算其上两个随机点的平均值效果如下没什么好说的初中几何。importgeomstats.backendasgs gs.random.seed(2020)fromgeomstats.geometry.euclideanimportEuclidean euclideanEuclidean(dim2,equipFalse)ptsLSeuclidean.random_point(n_samples2)avggs.sum(ptsLS,axis0)/2importmatplotlib.pyplotasplt plt.rcParams[font.sans-serif]Times New Romanaxplt.subplot()ax.scatter(ptsLS[:,0],ptsLS[:,1],labelPoints)ax.plot(ptsLS[:,0],ptsLS[:,1],linestyledashed)ax.scatter(gs.to_numpy(avg[0]),gs.to_numpy(avg[1]),labelMean,s80,alpha0.5)ax.set_title(Mean of points in a linear space)ax.legend()plt.show()超球面同样是求平均值的问题如果挪用到超球面上那么问题可能会发生变化。按照欧式空间的做法球面上任意两点其平均值一定不在球面上为了让平均值操作在球面上仍然有意义就需要在测地线上取平均值。在geomstats中通过实现【Hypersphere】对象即可创建一个超球面最终求得平均值如下fromgeomstats.geometry.hypersphereimportHypersphere sphereHypersphere(dim2,equipFalse)ptsHypersphere.random_point(n_samples2)avggs.sum(ptsHyper,axis0)/2importgeomstats.visualizationasvisualization axplt.subplot(projection3d)visualization.plot(ptsHyper,axax,spaceS2,labelPoint,s80)ax.plot(ptsHyper[:,0],ptsHyper[:,1],ptsHyper[:,2],linestyledashed,alpha0.5)ax.scatter(avg[0],avg[1],avg[2],labelMean,s80,alpha0.5)ax.set_title(Mean of points on a manifold)ax.legend()plt.show()绘图代码中S2表示三维球面。双曲空间karate_graph数据集是一组关于社交关系的网络常被用于图上聚类的研究。下面调用这组数据集并在庞加莱圆盘上展示这组数据效果如下在庞加莱圆盘中圆盘中心处图形的大小看起来是正常的但越靠近圆盘的边缘图形在视觉上就变得越小而圆盘的圆周则直接表示无穷远。如果将上图画在欧式空间中外围的点间距离会迅速变大影响读图。代码如下importgeomstats.datasets.utilsasdata_utils karate_graphdata_utils.load_karate_graph()fromgeomstats.datasets.prepare_graph_dataimportHyperbolicEmbedding hyperbolic_embeddingHyperbolicEmbedding(max_epochs20)embeddingshyperbolic_embedding.embed(karate_graph)diskvisualization.PoincareDisk(coords_typeball)axplt.subplot()disk.set_ax(ax)disk.draw(axax)ax.scatter(embeddings[:,0],embeddings[:,1])plt.show()【HyperbolicEmbedding】是用于计算庞加莱嵌入的类随后调用【embed】方法将karate_graph数据嵌入到双曲空间中经过20轮迭代即可将其绘制在庞加莱圆盘上。
延伸阅读

更多相关文章

2026/10/22 3:56:21

SAP ME核心价值解析:从MES选型到与S/4HANA深度集成实战

如果你在制造业做信息化,特别是负责生产车间这一层,那么“MES”这个词你一定不陌生。但当你真正去选型、实施或开发时,往往会陷入困惑:市面上的MES五花八门,有的像ERP的延伸,有的像数据采集器的集合&#x…

2026/10/22 7:45:36

AI智能体与设计语法:重塑实验科学范式的核心架构

1. 从“炼丹”到“设计”:AI智能体如何重塑实验科学范式如果你在实验室里泡过,或者做过任何需要反复试错、调整参数的实验工作,你肯定对“炼丹”这个词不陌生。它精准地描述了传统实验科学中那种高度依赖直觉、经验和运气的探索过程——我们设…

2026/10/21 16:08:36

大厂面试必考的Java核心技术解析与实战技巧

1. 为什么大厂面试总爱考八股文? 刚入行那会儿,我也特别不理解为什么大厂面试总喜欢问那些看似死记硬背的"八股文"问题。直到后来自己当了面试官才明白,这些看似基础的问题,实际上是在考察候选人对Java技术体系的理解深…

2026/10/22 14:57:12

IMX6ULL嵌入式Linux驱动开发实战:从字符设备到设备树与中断调试

入门Linux驱动开发,很多人第一脚就踩空。拿着内核源码从进程管理开始啃,啃到调度器、内存分配就放弃了,回头发现连一个像样的驱动都没写过。我自己带过不少新人也面过不少候选人,一个很明显的感受是:驱动开发的核心不在…

2026/10/22 14:57:12

J2ME老工程实战:System.getProperty取IMEI与基站LAC/CID联动解析

简介:这是一份面向J2ME移动开发者的实用代码包,聚焦如何通过Java ME API获取手机IMEI码与基站Cell ID信息,适合初学移动设备编程或需要实现基础定位功能的读者参考。压缩包共20个文件,包含6个class、4个java源码、3个properties配…

2026/10/22 14:57:12

C++版SORT多目标跟踪算法:原理、实现与调参指南

简介:资源基于C实现的SORT多目标跟踪算法封装,面向具备一定C与计算机视觉基础的学习者,可用于毕业设计、课程设计、工程实训或初期项目开发,在检测器之后无缝接入即可获得实时多目标跟踪能力。算法被封装为可复用类,支…

2026/10/22 14:57:12

AI Agent入门:先建认知地基,再学框架代码

1. 别急着装系统,先搞懂你手里的“扳手”长什么样“AI Agent 入门:新手和转行者先学什么,别一上来就啃框架”——这句话我去年在某高校开放日现场听一位带过三十多个学生项目的导师讲完,台下二十多个刚辞职准备转行的程序员、设计…

2026/10/22 14:57:12

AI基础设施开源栈实战:从算力调度到MLOps最小闭环

1. 这次论坛议程发布,为什么值得所有搞AI的人先停下来看一眼 某开源大会的AI基础设施开源论坛最近放出了完整议程。AI基础设施、开源、算力底座这些词,这两年已经被各种发布会讲得快要没新鲜感了,但真正把“AI基础设施”单独列成一个论坛&…

2026/10/22 14:52:11

从XHR到Axios:前端Ajax请求与CORS跨域实战指南

1. 从一次接口联调失败说起:为什么前端绕不开Ajax刚入行那会儿,我接手了一个后台管理系统的前端页面,需求很简单:点击按钮,从服务端拉取一张用户列表,渲染到表格里。我心想这有什么难的,三下五除…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑