Kmeans总和的平方和可以随着簇的数量而增加吗?

时间:2017-08-03 18:43:31

标签: cluster-analysis k-means

当我使用下面的代码时,我看到平方和内的总数有所增加。这甚至可能或者我在代码中犯了一些错误?

v<-foreach(i = 1:30,.combine = c)  %dopar%  {
  iter <- kmeans (clustering_data,centers = i,iter.max = 1000)
  iter$tot.withinss
}

2 个答案:

答案 0 :(得分:0)

K-means是一种随机算法。它并不能保证找到最佳效果。

所以你只是随机坏了。

答案 1 :(得分:0)

是。请参阅Anony-Mousse的回答。

如果使用nstart = 25函数的kmeans()参数,则运行算法25次,让R从每次运行中收集错误度量,并在内部构建平均值。这样你就不需要构造一个foreach循环。

来自R kmeans()

的文档
## random starts do help here with too many clusters
## (and are often recommended anyway!):
(cl <- kmeans(x, 5, nstart = 25))

必须为nstart选择合理的值。然后,不同随机初始化的错误更可能被平均掉。 (但是无法保证在nstart运行后tot.withinss是最小的。)