Python K-Means聚类和最大距离

时间:2019-01-06 09:25:22

标签: python scikit-learn cluster-analysis

首先,我对集群技术的了解非常有限,请不要太苛刻。

我有一组相当大的3D点(大约8,000个)-考虑一个X,Y,Z三元组,其Z坐标表示地下地球上的一个点(负)。我想使用绝对最小数目的聚类来聚类这些点,并具有以下约束:

  1. 使用最少数量的群集
  2. 所有点都应包含在聚类中,这意味着任何点至少应属于一个聚类
  3. 任何点与群集质心之间的最大距离(在地面上Z偏移为Z = 0)不应超过某个固定距离 d

我当时正在考虑使用scikit-learn k-means方法,通过迭代增加聚类的数量,然后针对数据集中的所有点计算该点与聚类质心之间的距离(在Z = 0处)是否为小于提供的特定距离。

当然,我愿意接受更好/更有效的建议-例如,聚类不需要像k均值返回的那样是圆形的。只要满足上述约束,它们就可以是椭圆形或其他任何形式。

我欢迎任何建议,谢谢您的见解。

1 个答案:

答案 0 :(得分:0)

使用层次聚类。

具有完整的链接。

找到真正的最小掩护很困难。所以你不想这样做。但这应该会产生一个非常好的O(n³)近似值。

这是基础知识。当寻找聚类算法时,至少阅读Wikipedia文章。甚至更好一些书,以获得概述。不只是k-均值...