scipy中的kmeans和kmeans2有什么区别?

10
我是机器学习新手,想知道scipy库中kmeans和kmeans2之间的区别。根据文档,它们都使用“k-means”算法,但该如何选择使用哪个呢?
1个回答

8

根据文档,kmeans2似乎是标准的k-means算法,并且会一直运行直到收敛到局部最优解,同时允许您更改种子初始化。

kmeans函数将基于变化量提前终止,因此可能甚至无法达到局部最优解。此外,它的目标是生成一个代码簿以将特征向量映射到其中。代码簿本身不一定是从停止点生成的,但将使用具有最低“畸变度”的迭代来生成代码簿。此方法也会多次运行kmeans。文档详细说明了更多细节。

如果您只想作为算法运行k-means,请选择kmeans2。如果您只想要一个代码簿,请选择kmeans。


谢谢您的回答。我正在尝试生成一个码本,但是当我使用“kmeans”时,码本的长度小于指定的“k”。这很奇怪,您有任何想法吗? - Mickey Shine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接