【发布时间】:2015-03-04 11:45:30
【问题描述】:
似乎有很多关于创建分层或 k-means 集群的信息。但我想知道 R 中是否有一个解决方案可以创建大约相等大小的 K 个集群。有一些关于在其他语言中执行此操作的内容,但我无法通过互联网搜索找到任何建议如何在 R 中实现结果的内容。
一个例子是
set.seed(123)
df <- matrix(rnorm(100*5), nrow=100)
km <- kmeans(df, 10)
print(sapply(1:10, function(n) sum(km$cluster==n)))
导致
[1] 14 12 4 13 16 6 8 7 13 7
我最希望看到
[1] 10 10 10 10 10 10 10 10 10 10
【问题讨论】:
-
我所能做的就是将您推荐给cran.r-project.org/web/views/Cluster.html,以获取与集群相关的软件包的完整列表。不过,我希望熟悉这个问题的人能给你一个特别的建议。
-
我相信 Ward 集群会产生更相等大小的集群。尝试使用
hclust(d, method="ward.D")或hclust(d, method="ward.D2") -
谢谢你和 jaysunice。 Jaysunice,我明天会调查的。
-
我已经编辑了我的问题,但我不太清楚为什么我被搁置,除非我明白我隐含地打破了上面的“要求工具或软件库”部分。但是,如果是这种情况,所有 R 问题中有一半都在做同样的事情。如何要求可能在某个库中或可能不在某个库中的特定类型的聚类,与要求转换日期的函数或执行特定类型的图表(这将需要一个库)或组合两个表(需要一个图书馆),除了我的问题需要一些难以搜索的知识水平
标签: r cluster-analysis