【发布时间】:2021-02-04 07:18:17
【问题描述】:
我有一个庞大的数据集(200,000 rows * 40 columns),其中每一行代表一个观察值,每一列都是一个变量。对于这个数据,我想做hierarchical clustering。不幸的是,由于行数很大,所以使用我的计算机无法做到这一点,因为我需要计算所有观察对的距离矩阵,所以(200,000 * 200,000) 矩阵。
这个question的答案建议首先使用kmeans计算中心的数量,然后使用库FactoMineR对这些中心的坐标执行hierarchical clustering。
问题:我在应用相同的方法时总是出错!
#示例
# Data
MyData <- rbind(matrix(rnorm(70000, sd = 0.3), ncol = 2),
matrix(rnorm(70000, mean = 1, sd = 0.3), ncol = 2))
colnames(x) <- c("x", "y")
kClust_MyData <- kmeans(MyData, 1000, iter.max=20)
Hclust_MyData <- HCPC(kClust_MyData$centers, graph=FALSE, nb.clust=-1)
plot.HCPC(Hclust_MyData, choice="tree")
但是
Error in catdes(data.clust, ncol(data.clust), proba = proba, row.w = res.sauv$call$row.w.init) :
object 'data.clust' not found
【问题讨论】:
-
层次聚类不需要使用第三方库:有内置函数hclust。如果你需要一个特别高效的实现,你可以查看 fastcluster 包。你试过这些吗?
-
@cdalitz 老实说不!我没有尝试使用库
fastcluster的功能。我从其他帖子中了解到,由于距离矩阵,直接对我的数据集200,00µ0 * 40使用层次聚类没有用,因此我正在寻找替代方法或其他方法以间接方式应用层次聚类。请问您有什么建议吗? -
对于尺寸问题,您已经有了先应用 kmeans 的解决方法。但是,错误消息来自 HCPC 函数。因此,我想知道为什么您将它们用于层次聚类而不使用 hclust(内置或来自 fastcluster)。
标签: r k-means hierarchical-clustering factominer