黎曼流形上的K-Means聚类
文章目录黎曼流形上的K-Means聚类数据生成聚类黎曼流形上的K-Means聚类KMeans最非常简单的一种聚类方法其目的是将样本分割为k个簇其基本流程是选择k个点作为k个簇的初始质心计算样本到这k个质心(簇)的距离并将其划入距离最近的簇中计算每个簇的均值并使用该均值更新簇的质心重复上述2-3的操作直到质心区域稳定或者达到最大迭代次数。常规的KMeans算法默认在欧式空间中进行也就是说在计算距离的时候采取平直的欧式距离。但在某些特殊情况下比如下面这种球面上的点从直觉来说更应该采取测地线作为计算距离的依据。Python的【geomstats】库可以轻松做到这一点。本文是geomstats的官方教程。数据生成我们要做的是在球面上随机生成两簇数据并且将这两簇数据随机旋转一个角度代码如下。importnumpyasnpimportgeomstats.backendasgs np.random.seed(1)gs.random.seed(1000)fromgeomstats.geometry.hypersphereimportHyperspherefromgeomstats.geometry.special_orthogonalimportSpecialOrthogonal sphereHypersphere(dim2,equipFalse)clustersphere.random_von_mises_fisher(kappa20,n_samples140)SO3SpecialOrthogonal(3,equipFalse)rotation1SO3.random_uniform()rotation2SO3.random_uniform()c1cluster rotation1 c2cluster rotation2 datags.concatenate((c1,c2),axis0)【Hypersphere】用于生成一个嵌入到n 1 n1n1维空间中的n nn维单位超球面。在上述代码中生成了一个三维空间中的二维球面。【random_von_mises_fisher】可在超球面上生成符合von Mises-Fisher (vMF) 分布的随机样本vMF可以理解为超球面上的高斯分布其kappa为浓度参数对标高斯分布中的1 σ 2 \frac{1}{\sigma^2}σ21​n_samples为点数。【SpecialOrthogonal】生成一个特殊正交群S O ( n ) SO(n)SO(n)表示n nn维空间中的旋转群。上述代码中用random_uniform方法生成了两个随机的三维旋转矩阵。在生成数据之后可通过visualization函数对数据进行可视化代码如下。importmatplotlib.pyplotasplt plt.rcParams[font.sans-serif]Times New Romanimportgeomstats.visualizationasvisualization figplt.figure(figsize(15,15))axvisualization.plot(c1,spaceS2,colorred,alpha0.7,labelData points 1 )axvisualization.plot(c2,spaceS2,axax,colorblue,alpha0.7,labelData points 2)ax.auto_scale_xyz([-1,1],[-1,1],[-1,1])ax.legend()plt.show()聚类【RiemannianKMeans】是geomstats中用于在黎曼流形上执行 K-Means 聚类的算法类。其不可缺省的参数有而分别是【metric】定义流形几何结构的度量对象算法依赖它来计算测地线距离和Fréchet均值。【n_clusters】: 聚类的簇数简单来说我们需要在生成数据的超球面中定义一个黎曼K-Means算法类。然后调用其中的fit方法对前面创建的数据集data进行分类。代码如下fromgeomstats.learning.kmeansimportRiemannianKMeans manifoldHypersphere(dim2)kmeansRiemannianKMeans(manifold,2,tol1e-3)kmeans.fit(data)labelskmeans.labels_ censkmeans.cluster_centers_ figplt.figure(figsize(15,15))colors[red,blue]axvisualization.plot(data,spaceS2,marker.,colorgrey)foriinrange(2):axvisualization.plot(pointsdata[labelsi],axax,spaceS2,marker.,colorcolors[i])fori,cinenumerate(cens):axvisualization.plot(c,axax,spaceS2,marker*,s2000,colorcolors[i])ax.auto_scale_xyz([-1,1],[-1,1],[-1,1])plt.show()聚类效果如下

相关新闻

企业微信外部群智能自动回复:基于RPA接口的关键词匹配方案

企业微信外部群智能自动回复:基于RPA接口的关键词匹配方案

在私域流量运营和客户服务场景中,社群的及时响应速度直接影响到客户的留存率与满意度。企业微信官方虽然提供了部分基础的自动回复功能,但在外部群(包含外部客户的群聊)中,往往无法灵活对接自定义的知识库或关键词触发…

2026/8/8 11:28:04 阅读更多 →
【java项目分享】springboot阅读推荐平台10600

【java项目分享】springboot阅读推荐平台10600

源码获取 私信联系我即可~ 大家点赞、收藏、关注、评论啦 精彩专栏推荐订阅:在下方专栏👇🏻 👇🏻 精彩专栏 推荐订阅👇🏻 Java精品项目案例【2000套】 Java精品项目案例【2000套】https://blog…

2026/8/8 11:28:04 阅读更多 →
14 篇:PCIe 常见问题排查清单(经验篇)

14 篇:PCIe 常见问题排查清单(经验篇)

目录 第 14 篇:PCIe 常见问题排查清单(经验篇) 一、设备不识别怎么办?(从“完全看不见”到“看得见”) 一、先给一句“保命结论”

2026/8/8 11:28:04 阅读更多 →

最新新闻

如何用3个步骤构建跨平台OPC UA客户端:工业物联网通信完整指南

如何用3个步骤构建跨平台OPC UA客户端:工业物联网通信完整指南

如何用3个步骤构建跨平台OPC UA客户端:工业物联网通信完整指南 【免费下载链接】opc-ua-client Visualize and control your enterprise using OPC Unified Architecture (OPC UA) and Visual Studio. 项目地址: https://gitcode.com/gh_mirrors/op/opc-ua-client…

2026/8/8 13:22:04 阅读更多 →
Python虚拟环境管理:从Miniconda安装到实战避坑指南

Python虚拟环境管理:从Miniconda安装到实战避坑指南

1. 为什么你需要一个Python环境管理器? 如果你刚开始接触Python,或者已经写过一些脚本,大概率遇到过这样的场景:项目A需要 pandas 1.5.3 ,项目B却要求 pandas 2.0.0 ;好不容易装好了 TensorFlow &…

2026/8/8 13:22:04 阅读更多 →
7款开源机器人机械手设计:从零打造你的智能抓取系统

7款开源机器人机械手设计:从零打造你的智能抓取系统

7款开源机器人机械手设计:从零打造你的智能抓取系统 【免费下载链接】openhand-hardware CAD files for the OpenHand hand designs 项目地址: https://gitcode.com/gh_mirrors/op/openhand-hardware 想要构建自己的机器人抓取系统却苦于高昂成本&#xff1f…

2026/8/8 13:22:04 阅读更多 →
企业微信外部群消息自动化:模拟操作与工程化实现路径探讨

企业微信外部群消息自动化:模拟操作与工程化实现路径探讨

技术背景与需求场景 在企业对客服务与协作中,企业微信的外部群组是连接多方参与者的关键节点。对于特定业务场景,例如向项目群发布系统状态更新、向合作伙伴群同步流程进展,存在从业务系统自动推送消息的客观需求。由于官方接口的能力限制&a…

2026/8/8 13:22:04 阅读更多 →
3分钟上手:nba_api Python库终极指南,轻松获取NBA官方数据

3分钟上手:nba_api Python库终极指南,轻松获取NBA官方数据

3分钟上手:nba_api Python库终极指南,轻松获取NBA官方数据 【免费下载链接】nba_api An API Client package to access the APIs for NBA.com 项目地址: https://gitcode.com/gh_mirrors/nb/nba_api 你是否曾想分析勒布朗詹姆斯的职业生涯数据&am…

2026/8/8 13:22:04 阅读更多 →
GIMP Resynthesizer完全指南:7个步骤掌握智能图像修复与纹理合成

GIMP Resynthesizer完全指南:7个步骤掌握智能图像修复与纹理合成

GIMP Resynthesizer完全指南:7个步骤掌握智能图像修复与纹理合成 【免费下载链接】resynthesizer Suite of gimp plugins for texture synthesis 项目地址: https://gitcode.com/gh_mirrors/re/resynthesizer GIMP Resynthesizer是一款革命性的开源插件套件&…

2026/8/8 13:21:03 阅读更多 →

日新闻

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

当下AI应用飞速普及,无数企业下场搭建智能体系统,可落地阶段难题接踵而至:上下文无限堆积频繁爆栈、AI工具调用准确率低下、Token成本居高不下、企业数据权限混乱暗藏安全隐患……很多团队卡在架构搭建环节,空有前沿技术概念&…

2026/8/8 0:00:07 阅读更多 →
PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码 【免费下载链接】php-qrcode A PHP QR Code generator and reader with a user-friendly API. 项目地址: https://gitcode.com/gh_mirrors/ph/php-qrcode 在当今数字时代,二维码已…

2026/8/8 0:00:08 阅读更多 →
UniApp微信小程序隐私保护组件开发:从原理到实战

UniApp微信小程序隐私保护组件开发:从原理到实战

1. 项目缘起:为什么我们需要一个隐私保护通用组件?最近在维护一个基于uniapp开发的微信小程序矩阵时,我遇到了一个非常棘手的问题。随着平台对用户隐私保护的要求越来越严格,几乎每一个新版本发布,或者在某些特定机型&…

2026/8/8 0:00:08 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/8 8:58:26 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/7 23:24:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/7 23:54:54 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →