0

以下是如何使用 kmeans 算法的示例:http: //mnemstudio.org/clustering-k-means-example-1.htm

在这个例子中,作者使用“相距最远的两个人(使用欧几里得距离测量)”作为初始质心,正如人们所说。

如果我想要的不是两个集群,而是 10 个集群怎么办!如何选择前 10 个质心?有没有办法选择相距最远的十个人?或者我应该用另一种方式来选择它们。

PS:我认为在我的情况下使用随机选择不会很好。此外,我一直在尝试使用前 10 个个体作为质心,但我正在寻找一种更好的方法来选择它们。

4

2 回答 2

1

简单地选择距离最远的 K 个实体作为初始质心是相当危险的。现实世界的数据集往往有异常值,在您的方法下,这些将被选为初始质心。

K-Means的初始化算法有很多,也许你想看看智能K-Means。

于 2014-04-23T16:15:03.187 回答
0

选择初始质心的最常见方法是使用 kmeans++ http://en.wikipedia.org/wiki/K-means%2B%2B 。具有理论性能保证。

http://ilpubs.stanford.edu:8090/778/1/2006-13.pdf

很多python集群包都实现了这个初始化,比如mlpy、scipy KMeans。但我不知道JAVA。

于 2014-05-23T15:45:25.097 回答