【发布时间】:2012-12-24 02:33:30
【问题描述】:
我正在尝试在键值类型的向量上使用 k-means 聚类。我的问题是,如何设置向量中每个元素的坐标?具体来说,键值对是字符串浮点数。我需要这个来稍后找到集群的中心。
【问题讨论】:
-
有谁知道我在哪里可以找到 c# 中 k-means 的实现,以便我看看?我知道我必须(至少)在二维空间中定义每个元素,但我该怎么做呢?有什么建议吗?
我正在尝试在键值类型的向量上使用 k-means 聚类。我的问题是,如何设置向量中每个元素的坐标?具体来说,键值对是字符串浮点数。我需要这个来稍后找到集群的中心。
【问题讨论】:
聚类算法通常只将顶点分类为聚类。您正在寻找的是一种集群渲染算法,它给定图形的集群分区,以合适的方式呈现图形以进行可视化。我想说让你的集群算法和可视化算法分开。力导向布局是一种很好的简单聚类可视化算法。
最后,here 是一个实现的链接,another one。
【讨论】:
K-means 算法通常会计算集群的质心。例如,在 R 的实现中:
n.clin <- 10
n.pop <- 100
clinicdat <- data.frame( x=runif(n.clin), y=runif(n.clin) )
popdat <- data.frame( x=runif(n.pop), y=runif(n.pop), pop=sample(1:5000, n.pop) )
plot(popdat$y~popdat$x, col="grey")
points(clinicdat$y~clinicdat$x, col="red")
km <- kmeans( subset(popdat,select=c(x,y)), n.clin )
points( fitted(km, method="centers"), col="green" )
【讨论】: