algorithm - K-Means++ 的流程是什么,我想知道 K-Mean 和 K-Means++ 之间的确切区别?

标签 algorithm k-means

我想知道 K-Mean 和 K-Means++ 算法之间的区别。如果有人了解 K-Means++ 算法的流程,请您用例子解释一下吗?虽然,我了解 K-Mean 算法,但发现如何实现 K-Means++ 算法对我来说很困难,因为我不清楚该算法的工作流程。 谢谢大家。

最佳答案

说你想知道k-meansk-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/

相关文章:

python - 如何使用 scikit-learn 获取每个 k-means 集群的惯性值?

python - 使用 Plotly 自定义标签

python-3.x - 如何获得离簇中心最近的N个数据点?

R:除了 nstart 和 iter.max 的设置不同之外,k 均值中的集群相同

algorithm - 如何提高我的算法时间复杂度?

algorithm - 没有起点的寻根

java - 在提供一组 5 个左右的 URL 时生成 URL 模式

algorithm - 搜索间隔列表的时间复杂度

python - K 表示绘图未正确显示

algorithm - 将二叉树的前序列表转换为后序列表,反之亦然