r - 是否可以使用分块距离矩阵运行聚类算法?
问题描述
我有一个在循环中计算并存储在 ROM 中的距离/相异矩阵(30K 行 30K 列)。
我想对矩阵进行聚类。我将其导入并聚类如下:
Mydata<-read.csv("Mydata.csv")
Mydata<-as.dist(Mydata)
Results<-hclust(Mydata)
但是当我将矩阵转换为dist
对象时,出现 RAM 限制错误。我该如何处理?我可以hclust
在循环/分块中运行算法吗?我的意思是我将距离矩阵分成块并循环运行它们?
解决方案
您可以尝试以下方法:
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 在您自己的计算机中读取它)。
推荐阅读
- firebase - 将 Firebase 导出到 Bigquery 数据集的生存时间
- reactjs - 如何从 reactjs 中的事件处理程序访问更新的状态
- html - 按钮上的按钮转换:活动
- python - 创建一个可视化指标图,将收益分为高、正常和低
- java - 如何在 Maven 子模块中添加 Java Azure Functions
- angularjs - AngularJs - 在没有控制器的情况下分配和重新定义变量,打破循环
- flask - 使用域名在 IIS 中托管 Flask 应用程序的最佳实践
- generics - 我如何获得警告 FS1125(泛型类型 'xxx' 的实例化丢失并且无法从中推断出......)消失?
- c# - C#算法合并两个无重复的排序数组
- pandas - 数据框 Sort_values 给出不正确的结果