You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K-Means聚类中如何对簇内图像按相似度排序?是否有可用衍生指标?

簇内图像相似度排序可行方案

聚类衍生可用产物说明

首先明确:K-Means聚类没有直接生成可直接用于簇内相似度排序的现成指标,你提到的「类似2D散点到原点的距离」这类原生输出不存在,但是可以复用两类聚类过程的中间产物,不需要重新跑图像特征提取:

  • 所有图像的预提取特征向量:K-Means聚类的输入就是你提前算好的图像特征(比如CNN全局特征、CLIP特征等),可以直接拿来做相似度计算
  • 簇-样本的映射关系:聚类完成后你已经做好了样本到簇的分配,直接按簇提取对应样本的特征子集即可,不用再做匹配

具体实现方案

方案1:优化你现有的锚点排序思路

你提到的用annoy计算单张参考图和其他样本距离的方案是可行的,只要把随机选参考图改成选距离簇质心最近的样本作为锚点,排序逻辑会更合理:

  1. 计算当前簇所有样本到簇质心的距离,取距离最小的样本作为锚点(该样本是当前簇的典型代表)
  2. 计算簇内所有样本和锚点特征的余弦/欧氏距离,按距离从小到大排序
  3. 给对应图像文件名添加0001_类的递增前缀即可
    如果单簇样本量小于1000,不需要用annoy,直接调用sklearn.metrics.pairwise.cosine_distances计算全量距离即可,实现更简单。

方案2:层次聚类全局排序(相邻样本相似度更高)

如果不想依赖单一锚点,希望排序后相邻的图像相似度尽可能高,整体浏览时渐变更顺滑,可以直接对簇内特征子集做层次聚类:

  1. 调用scipy.cluster.hierarchy.linkage计算簇内特征的层次聚类树
  2. 直接取聚类结果的leaves_order属性,就能得到全局最优的相似度排序索引,不用自定义规则

方案3:降维投影排序(匹配你想要的2D散点类指标)

如果你需要类似2D散点坐标的可解释排序指标,可以对簇内特征子集做低维降维:

  1. 用UMAP或TSNE把簇内高维特征降为2维,得到每个样本的(x,y)坐标
  2. 自定义排序规则即可:比如按x坐标从小到大排序、按到(0,0)点的曼哈顿距离排序,排序结果和你在2D散点图上按规则浏览的顺序完全一致,符合你提到的类似「到原点距离」的量化需求。

内容的提问来源于stack exchange,提问作者Martim Passos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:54:06