我想知道 K-Mean 和 K-Means++ 算法之间的区别。如果有人了解 K-Means++ 算法的流程,请您用例子解释一下吗?虽然,我了解 K-Mean 算法,但发现如何实现 K-Means++ 算法对我来说很困难,因为我不清楚该算法的工作流程。 谢谢大家。
最佳答案
说你想知道k-means和k-means++之间的区别是不准确的。因为,这两种算法没有可比性,而是相互融合的。
Kmeans++维基百科的定义:
k-means++ is an algorithm for choosing the initial values (or "seeds") for the k-means clustering algorithm
并且需要这样一种算法的存在,因为 k 均值在性能和准确性方面存在问题(取决于您分析数据的方式和整个预处理步骤)。
至于您的问题:
finding how to implement K-Means++ algorithm is difficult for me because I don't understand the work flow of this algo: clearly.
您从数据集中的一个随机点开始,然后计算该集中的每个点与所选点之间的距离(欧几里得距离可以是您的选择之一)。然后,使用 weighted probability distribution 随机选择一个新数据点作为新中心。其中点 x 通过 probability proportional 选择至 D(x)2。并重做同样的事情(除了从随机点开始),直到达到所需的 k
簇(k
应作为参数传递给算法)。
在获得 k
个集群之后,您可以继续使用 k-means
。
注意,这主要来自维基百科,但我的观点是,你将 k-means++ 作为 k-means 的替代品,但事实并非如此,它是上述定义所述的。
最后,k-means++ 足以帮助克服 k-means 所存在的一些问题,但通过将簇数 (k
) 作为输入参数传递给它,它就不再是可扩展。然而,k-means 还有另一个版本,称为 k-means2 (我没有搜索其他来源)如果您感兴趣的话,这可能会克服可扩展性问题。
关于algorithm - K-Means++ 的流程是什么,我想知道 K-Mean 和 K-Means++ 之间的确切区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521909/