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