K-means聚类是聚类的常用方法。假设有K个均值聚类的N个点,即N个点应该被分成K个组,其中每个组中的点彼此具有相似性。
我们应该在K-means clustering
过程之前为初始中心分配值,这里我从整个点中随机选择K点,并且程序为每次运行获得不同的输出。为什么这会导致不同的结果,我怎么知道哪个是最好的分类?
答案 0 :(得分:4)
首先,k均值聚类算法不一定产生最优结果,因此它已经是一个相当重要的指标,它可能从不同的起点得到不同的结果。
这实际上归结为这样一个事实:每个集群都使用自己集群中的点来确定它应该移动到哪里 - 如果所有集群都找到了到达各自点的中心,算法将终止,并且这可能是多种方式。
考虑这个例子:( .
表示的4个点和x
表示的2个集群)
. . . x .
x x versus
. . . x .
左侧和右侧都已收敛,但它们明显不同(右侧的那个明显更差)。
要找到最好的结果,您可以选择最小化从中心到其下分类的每个点的平方距离总和的结果(毕竟,这是the goal of k-means clustering)。
答案 1 :(得分:1)
我们的想法是为您的聚类运行多次聚类算法,使用K个不同的质心,使用从数据集中随机抽取的K点进行初始化。
然后,您最好的解决方案是最小化点与其所属群集的质心之间的平方距离之和。
答案 2 :(得分:0)
K-means通过尝试改进给出的答案直到达到局部最优为止,但有一个很好的论据,即没有单一的全局最优,因此没有单一的局部最优。如果有,那么同一数据集上的每个K-means算法总会收敛到相同的答案。但是不可能发生,因为如果我在K-means收敛并重新编号聚类后得到答案,我会得到另一个不同的答案,但得分与我开始的答案完全一样,所以实际上有多个全局最优。
有各种方案可以为K-means提供起点,您可以尝试以及随机选择起点。最近的一些人声称速度有所提高,例如http://en.wikipedia.org/wiki/K-means%2B%2B。在http://jihe.net/downloads/papers/he04ijcnn.pdf
有一些简单方法的测试