使用R中的gower距离进行聚类

时间:2015-06-28 23:06:37

标签: r cluster-analysis categorical-data mixed-type

我有一个具有分类和数字变量的数据框。我想使用gower distance对这些数据进行聚类,并将聚类值作为kmeans函数中的向量。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:4)

您可以使用纯素包来生成gower矩阵,然后使用群集包创建群集。

SALARY<5000

然后您可以将该矩阵提供给PAM函数。以下示例将使用gower距离生成5个簇

gow.mat <- vegdist(dataframe, method="gower")

然后,您可以从

获取群集信息
clusters <- pam(x = gow.mat, k = 5, diss = TRUE)

答案 1 :(得分:0)

如果您不想坚持使用高尔距离,可以使用kproto()中的clustMixType函数。 kproto中的距离度量与Gower距离类似,不同之处在于kproto使用欧几里得距离来度量数值变量之间的相异性;但是,高尔距离将每个变量归一化(将两个观测值之间的距离除以该变量的范围)。代码很简单。

kproto_clustering <- kproto(df, k)   # k is number of cluster
clusters <- kproto_clustering$cluster