【发布时间】:2018-10-01 15:48:48
【问题描述】:
这是一个有点理论和实践的问题。 我有一个包含点列表的 x、y、z 坐标的 df。这些点是由图像分割生成的 3D 表面上的点。 我要解决的问题是这些点是随机分布在这个表面上还是表现出一些聚类。我正在 R 中对此进行测试。
我使用的第一种方法是 kmeans。我要求计算机确定可以使这些数据适合的最佳(如果有的话)组数。 我正在使用这段代码。它测试了 30 个不同的指标(各种方法)并输出了最佳的聚类数
library("NbClust")
nb <- NbClust(df, distance = "euclidean", min.nc = 2,
max.nc = 10, method = "kmeans")
library("factoextra")
fviz_nbclust(nb)
我得到了一定数量的集群,我想这首先是集群的一个迹象。 但是,我想从中计算出一个指标吗?关于如何做的建议?
此外,我还通过直方图检查聚类。
df_mat <- df %>% as.matrix()
dist_df <- dist(df_mat)
hist(dist_df)
您可能会期望多个峰值用于聚类,一个峰值可能会或多或少地随机分布。
我正在尝试的另一种方法是层次聚类
my_hclustdf <- hclust(dist_df)
plot(my_hclustdf)
但是,输出(树状图)本身并不能告诉我太多信息。
任何建议将不胜感激。 非常感谢
【问题讨论】:
标签: r cluster-analysis distribution spatial hierarchical-clustering