0

在 R 中尝试复制 SPSS 中使用的 K-means 聚类方法的最佳功能/包是什么?这是我将在 SPSS 中使用的语法示例:

QUICK CLUSTER VAR1 TO VAR10       
   /MISSING=LISTWISE                  
   /CRITERIA=CLUSTER(5) MXITER(50) CONVERGE(.02)
   /METHOD=KMEANS(NOUPDATE)

谢谢!

4

1 回答 1

0

在 SPSS 中,使用该/PRINT INITIAL选项。这将为您提供初始聚类中心,这些中心在 SPSS 中似乎是固定的,但在 R 中是随机的(请参阅?kmeans参数centers)。

如果您使用 SPSS 输出中打印的初始聚类中心和argument="Lloyd"kmeans 中的参数,您应该得到相同的结果(至少它对我有用,多次重复测试)。

初始聚类中心的 SPSS 输出示例:

           Cluster
           Cl1  Cl2  Cl3  Cl4
Var A      1    1    4    3
Var B      4    1    4    1
Var C      1    1    1    4
Var D      1    4    4    1
Var E      1    4    1    2
Var F      1    4    4    3

该表在 R 中复制为矩阵,使用 kmeans 计算:

mat <- matrix(c(1,1,4,3,4,1,4,1,1,1,1,4,1,4,4,1,1,4,1,2,1,4,4,3), nrow=4, ncol=6)
kmeans(na.omit(data.frame), centers=mat, iter.max=20, algorithm="Lloyd")

确保在 SPSS 和 R-kemans 中使用相同数量的最大迭代,并在 R-kmeans 中使用 Lloyd 方法。

但是,我不知道固定或随机选择初始中心是否更好。我个人喜欢随机选择,并使用找到的聚类组计算线性判别分析以评估分类准确性,然后重新运行 kmeans 聚类,直到我有一个令人满意的组分类。

编辑:我发现这篇文章描述了选择初始集群的 SPSS 程序。也许有人知道 R 实现?

于 2014-03-10T14:19:48.870 回答