黎曼流形上的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/10/11 11:41:26 阅读更多 →
【java项目分享】springboot阅读推荐平台10600

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

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

2026/10/5 15:55:22 阅读更多 →
14 篇:PCIe 常见问题排查清单(经验篇)

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

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

2026/10/3 9:11:43 阅读更多 →

最新新闻

项目进度管理10.1-10.3思维导图:定规矩、拆动作、排顺序

项目进度管理10.1-10.3思维导图:定规矩、拆动作、排顺序

做项目管理系统学习的人,十有八九都会在“项目进度管理”这一章卡过壳。第10章的10.1到10.3,也就是规划进度管理、定义活动、排列活动顺序这三小节,是整个进度管理知识域的起手式。看似只有三节,但信息密度极高,术语之…

2026/10/12 6:05:34 阅读更多 →
X4独角兽新版PHP视频网站源码实测:部署、播放器与二次开发指南

X4独角兽新版PHP视频网站源码实测:部署、播放器与二次开发指南

做视频站的朋友应该都清楚,选一套靠谱的源码比什么都重要。市面上PHP视频网站源码不少,但真正能打、更新及时、后台顺手的不多。今天聊的这套X4独角兽视频网站新版源码,我前后在本地和服务器上都跑过,也拿它搭过测试站&#xff0c…

2026/10/12 6:05:34 阅读更多 →
AI 调试心法:用「完整日志 + 循环修复」让 AI 成为你的排错搭档

AI 调试心法:用「完整日志 + 循环修复」让 AI 成为你的排错搭档

文档教程Vibe Coding示例工程 【免费下载链接】vibe-vibe The First Systematic Vibe Coding Open-Source Tutorial | From Zero to Full-Stack, Empowering Everyone to Build Products with AI | Live at: www.vibevibe.cn ;首个系统化 Vibe Coding 开源教程 | 零…

2026/10/12 6:05:34 阅读更多 →
用巴菲特原则评估量子创业:从护城河到价值创造

用巴菲特原则评估量子创业:从护城河到价值创造

量子、巴菲特、创业生态、价值创造,这四个词放到一句话里,很多人第一反应是"硬凑"。一边是奥马哈的吼叫与汽水,一边是实验室里的极低温稀释制冷机,画风差得有点远。但过去两年我一直在用巴菲特的财务标尺去反推一批量子…

2026/10/12 6:05:34 阅读更多 →
Vibe Coding真相:零基础也能用自然语言打造效率工具?

Vibe Coding真相:零基础也能用自然语言打造效率工具?

1. 先说个真实场景:一个零基础朋友是怎么把活干完的前两天一个从没写过代码的朋友找我,说单位里每天要整理几十张Excel表,手工复制粘贴到晚上八点。她说听说现在有Vibe Coding,问我是不是真的不用学编程也能自己做个工具。当时我的…

2026/10/12 6:05:34 阅读更多 →
牛客寒假算法集训营第一场题解:双指针、树形DP与字符串DP实战

牛客寒假算法集训营第一场题解:双指针、树形DP与字符串DP实战

牛客寒假算法基础集训营第一场这套题,我印象挺深。难度曲线并不是那种“签到题送到嘴边、压轴题劝退所有人”的极端分布,前几道确实送分,但从G题开始就进入双指针、树形DP、字符串DP这些正经考点,最后两道又考模型转化和临场取舍。…

2026/10/12 6:04:34 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →