小编pim*_*pim的帖子

R kmeans(stats)vs Kmeans(amap)

Hello stackoverflow社区,

我在Iris数据集上运行kmeans(stats包)和Kmeans(amap包).在这两种情况下,我使用相同的算法(Lloyd-Forgy),相同的距离(欧几里德),相同数量的初始随机集(50),相同的最大迭代次数(1000),并且我测试相同的集合k值(从2到15).我也对两种情况使用相同的种子(4358).

我不明白为什么在这些条件下我会得到不同的wss曲线,特别是:使用stats包的"肘"比使用amap包更加突出.

你能帮我理解为什么吗?非常感谢!

这里的代码:

# data load and scaling
newiris <- iris
newiris$Species <- NULL
newiris <- scale(newiris)

# using kmeans (stats)
wss1 <- (nrow(newiris)-1)*sum(apply(newiris,2,var))
for (i in 2:15) {
  set.seed(4358)
  wss1[i] <- sum(kmeans(newiris, centers=i, iter.max=1000, nstart=50,
                       algorithm="Lloyd")$withinss)
  }

# using Kmeans (amap)
library(amap)
wss2 <- (nrow(newiris)-1)*sum(apply(newiris,2,var))
for (i in 2:15) {
  set.seed(4358)
  wss2[i] <- sum(Kmeans(newiris, centers=i, iter.max=1000, nstart=50,
                       method="euclidean")$withinss)
  }

# plots
plot(1:15, wss1, type="b", xlab="Number of Clusters",
     ylab="Within groups sum of squares", …
Run Code Online (Sandbox Code Playgroud)

r k-means

5
推荐指数
1
解决办法
924
查看次数

标签 统计

k-means ×1

r ×1