【问题标题】:maxmin clustering algorithm最大最小聚类算法
【发布时间】:2014-12-06 01:35:00
【问题描述】:

我阅读了一篇提到最大最小聚类算法的论文,但我不太了解该算法的作用。谷歌搜索“最大最小聚类算法”不会产生任何有用的结果。有人知道这个算法是什么意思吗?这是论文的摘录:

Max-min 聚类通过随机选择一个观测值作为第一个质心 c1,并将质心集合 C 设置为 {c1} 来进行。 在第 i 次迭代期间,选择 ci 以使其最大化 ci 和 C 中的观测值之间的最小欧几里得距离。 Max-min 聚类优于基于密度的聚类算法(例如 k-means),后者倾向于从密集的非占用数据点组中选择许多示例。

我不太明白粗体部分。 论文链接是here

【问题讨论】:

  • 你能把论文链接在这里吗?
  • 已在问题部分更新

标签: algorithm cluster-analysis


【解决方案1】:

我们选择每个新质心尽可能远离现有质心。这是一些 Python 代码。

def maxminclustering(observations, k):
    observations = set(observations)
    if k < 1 or not observations: return set()
    centroids = set([observations.pop()])
    for i in range(min(k - 1, len(observations))):
        newcentroid = max(observations,
                          key=lambda observation:
                                  min(distance(observation, centroid)
                                      for centroid in centroids))
        observations.remove(newcentroid)
        centroids.add(newcentroid)
    return centroids

【讨论】:

    【解决方案2】:

    这听起来很像 播种 k-means 的最远点启发式算法,但根本不执行任何 k-means 迭代。

    这是一个非常简单但非常有效的策略。基本上它会找到一些分布良好的数据点,这可以使k-means快速收敛。通常,人们会丢弃第一个(随机)数据点。

    虽然它只适用于 k 值较低的情况(它避免将质心放置在数据集的中心!),并且对多次运行不太有利 - 它倾向于再次选择相同的初始质心。

    K-means++ 可以看作是一个更加随机化的版本。它不是总是选择较远的对象,而是选择可能性增加的远对象,但也可能随机选择近邻。这样,您在多次运行时会获得更多样化的结果。

    你可以在 ELKI 中试用它,它被命名为FarthestPointsInitialMeans。如果你选择算法SingleAssignmentKMeans,那么它不会执行k-means迭代,而只会做初始赋值。这可能会给你这个“MaxMin 聚类”算法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 2015-07-18
      • 2011-07-14
      • 2021-11-19
      • 2020-11-24
      相关资源
      最近更新 更多