【发布时间】:2012-09-26 13:36:34
【问题描述】:
我觉得这不能太难。我知道hclust() 和cutree(),但是如何获得质心的坐标,其中没有点距离高于给定半径?我知道质心范围内的点可能已经属于不在范围内的质心。我没问题。
set.seed(1)
data <- matrix(runif(100),ncol=2)
plot(data)
dclust <- hclust(dist(data),method="centroid")
cutree(dclust,h=0.1)
cutree(...,h=0.1) 已经失败,因为dclust 的高度没有排序。
【问题讨论】:
-
这听起来更像是 k-means 聚类而不是层次聚类。您可以逐渐增加 k,直到从一个点到其集群质心的最差距离在您选择的半径范围内。
-
您需要更具体地了解您想要做什么。 kmeans() 函数可能是您想要的,但是质心位置(和质心数量)是来自数据还是独立于数据?观察可以与集群不匹配吗?如果你总是可以添加一个质心(集群),那么你可以设置任何你想要的最差距离,包括零!除非您在开始时提供质心,否则 kmeans() 也不会给出唯一的结果。如果质心来自您的数据,则可能有多种解决方案。
-
我们先不谈观察。我有一些来自 OpenStreetMap 的数据以及两条或多条街道相交的节点坐标。由于在短距离内有许多上述节点的交叉口(正如我们人类所看到的那样)(想象一条街道,不同的车道与另一条车道相遇)我想要一个代表这些节点的点,例如用于可视化。
标签: r cluster-analysis centroid