【发布时间】:2015-09-22 03:01:21
【问题描述】:
我有一个包含分类变量和数值变量的数据框。我想使用高尔距离对这些数据进行聚类,并将聚类值作为向量获取,就像在 kmeans 函数中一样。我怎样才能做到这一点?
【问题讨论】:
-
使用适用于任意距离的 PAM、CLARA 等。
标签: r cluster-analysis categorical-data mixed-type
我有一个包含分类变量和数值变量的数据框。我想使用高尔距离对这些数据进行聚类,并将聚类值作为向量获取,就像在 kmeans 函数中一样。我怎样才能做到这一点?
【问题讨论】:
标签: r cluster-analysis categorical-data mixed-type
如果您不想坚持使用高尔距离,可以使用clustMixType 中的kproto() 函数。 kproto 中的距离度量类似于 Gower 距离,只是 kproto 使用欧几里得距离来度量数值变量之间的相异性;但是,高尔距离对每个变量进行了归一化(将两个观测值之间的距离除以该变量的范围)。代码很简单。
kproto_clustering <- kproto(df, k) # k is number of cluster
clusters <- kproto_clustering$cluster
【讨论】:
您可以使用 vegan 包生成 gower 矩阵,然后使用 cluster 包创建集群。
gow.mat <- vegdist(dataframe, method="gower")
然后您可以将该矩阵输入到 PAM 函数中。下面的示例将使用 gower 距离生成 5 个聚类
clusters <- pam(x = gow.mat, k = 5, diss = TRUE)
然后您可以从
获取您的集群信息clusters$clustering
【讨论】: