K均值算法

时间:2011-06-15 05:42:06

标签: machine-learning cluster-analysis data-mining k-means

  

可能重复:
  How to optimal K in K - Means Algorithm
  How do I determine k when using k-means clustering?

根据统计测量,我们可以决定K.如标准偏差,平均值,方差等, 或

有没有简单的方法可以选择K-means算法中的K?

提前致谢 纳文

5 个答案:

答案 0 :(得分:4)

如果您明确想要使用k-means,您可以学习描述x-means的文章。当使用x-means的实现时,与k-means相比唯一的区别是,不是指定单个k,而是指定k的范围。这是“最好的”选择。在某种程度上,该范围将是x-means输出的一部分。你也可以看一下 Mean Shift聚类算法。

如果您的给定数据在计算上是可行的(可能使用yura建议的采样),您可以使用各种k进行聚类,并使用一些标准聚类有效性度量来评估生成的聚类的质量。这里描述了一些经典措施:measures

@doug k-means ++在群集分配开始之前确定群集数量的最佳k是不正确的。 k-means ++与k-means的不同之处仅在于它不是随机选择初始k质心,而是随机选择一个初始质心,并连续选择中心直到选择k为止。在初始完全随机选择之后,数据点被选择为新的质心,其概率由潜在函数确定,该函数取决于数据点到已经选择的中心的距离。 k-means ++的标准参考是Arthur和Vassilvitskii的k-means++: The Advantages of Careful Seeding

另外,我不认为通常选择k作为主要组件的数量将改善您的群集。想象一下三维空间中的数据点都位于通过原点的平面中。然后,您将获得2个主要组件,但这些点的“自然”聚类可以包含任意数量的聚类。

答案 1 :(得分:3)

不幸的是没有。没有原则统计方法,简单或复杂可以设置“正确的K”。有启发式,有时可以工作的经验法则,有时则不然。

情况更为普遍,因为许多聚类方法都有这些类型的参数。

答案 2 :(得分:3)

对于智能选择问题,有两种实用的解决方案 常用的质心数(k)。

首先是 PCA 您的数据,以及PCA的输出 - 这是 主成分(特征向量)及其对变化的累积贡献 在数据中观察到 - 显然表明质心的最佳数量。 (例如,如果您的数据中95%的可变性由前三个主体解释 组件,那么k = 3是k-means的明智选择。)

智能估计k的第二个常用实用解决方案是 是k-means算法的修订实现,称为 k-means ++ 。在本质上, k-means ++只是通过额外的预处理与原始k-means不同 步。在此步骤中,质心的数量和初始位置并进行估算。

k-means ++依赖的算法很容易理解并在代码中实现。两者的良好来源是 LingPipe Blog 中的2007 Post,它提供了出色的效果 k-means ++的解释以及对原始论文的引用 首先介绍了这种技术。

除了为k提供最佳选择外,k-means ++显然优于k 两个性能中的原始k均值(大约1/2处理时间比较 在一个公布的比较中使用k-means)和准确度(三个数量级) 在相同的比较研究中改善错误。)

答案 3 :(得分:1)

当您不知道群集的数量时,

Bayesian k-means可能是一个解决方案。网站上给出了相关的论文,并给出了相应的MATLAB代码。

答案 4 :(得分:0)

未知的最佳解决方案(通过统计参数模型等)ML问题是对子问题采样数据并找到最佳参数,然后在完整问题上使用它们。在这种情况下,为5%的数据选择最佳K.