是否可以使用分块距离矩阵来运行聚类算法?

时间:2018-10-28 14:13:25

标签: r cluster-analysis hclust

我有一个距离/差异矩阵(3万行30K列),该矩阵是循环计算并存储在ROM中的。

我想对矩阵进行聚类。我将其导入并聚类如下:

Mydata<-read.csv("Mydata.csv")
Mydata<-as.dist(Mydata)
Results<-hclust(Mydata)

但是当我将矩阵转换为dist对象时,出现RAM限制错误。我该如何处理?我可以在循环/分块中运行hclust算法吗?我的意思是我将距离矩阵分成多个块并循环运行?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

Mydata<-read.csv("Mydata.csv")
Mydata<-as.matrix(Mydata)
Mydata<-as.dist(Mydata)
Results<-hclust(Mydata)

阅读以下内容以跟踪您的会话中发生的情况:http://adv-r.had.co.nz/memory.html

这通常可能会有所帮助: https://cran.r-project.org/web/packages/fastcluster/ 还有这个问题:hclust() in R on large datasets

这也取决于您的操作系统,但是也许您可以更改RAM限制(或仅在具有更多RAM的其他人的计算机上运行此代码,使用saveRDS存储对象,然后使用readRDS在您自己的计算机中读取该对象)。 / p>

相关问题