【发布时间】:2016-04-18 06:10:18
【问题描述】:
我正在使用由一组可重用层组成的 Docker 映像。现在给定一组图像,我想组合具有大量共享层的图像。
更准确地说:给定 N 个图像的集合,我想创建一个集群,其中一个集群中的所有图像彼此共享超过 X% 的服务。每张图片只能属于一个集群。
我自己的研究指向集群算法的方向,我使用相似性度量来决定哪些图像一起属于一个集群。我知道如何编写相似度度量。但是,我很难找到一个准确的算法或伪算法来开始。
有人可以推荐一种算法来解决这个问题或提供伪代码吗?
编辑:经过更多搜索后,我相信我正在寻找类似这种层次聚类 (https://github.com/lbehnke/hierarchical-clustering-java) 但具有阈值 X 的东西,这样相似度低于 X% 的邻居不会合并并留在单独的集群。
【问题讨论】:
-
我最终通过使用层次聚类解决了这个问题,然后从上到下遍历树状图的每个分支,直到找到距离低于阈值的聚类。最坏的情况是没有这样的集群,但我最终会出现在树状图的叶子中,这意味着该元素在它自己的集群中。
标签: algorithm docker cluster-analysis similarity