我正在尝试在非常大的矩阵上进行一些k-means聚类。
矩阵大约是500000行×4000个cols但非常稀疏(每行只有几个“1”值)。
整个东西不适合内存,因此我将其转换为稀疏的ARFF文件。但是R显然无法读取稀疏的ARFF文件格式。我还将数据作为普通的CSV文件。
R中是否有可用于有效加载此类稀疏矩阵的包?然后,我将使用群集包中的常规k-means算法继续。
非常感谢
答案 0 :(得分:13)
bigmemory包(或现在的系列包 - 请参阅他们的website)使用k-means作为大数据扩展分析的运行示例。特别参见包含k-means函数的子包biganalytics。
答案 1 :(得分:1)
请检查:
library(foreign)
?read.arff
干杯。
答案 2 :(得分:1)
sparkcl执行稀疏层次聚类和稀疏k均值聚类 这应该适合R适合(因此适合存储器)矩阵。
http://cran.r-project.org/web/packages/sparcl/sparcl.pdf
==
对于非常大的矩阵,我会尝试使用Apache Spark稀疏矩阵和MLlib的解决方案 - 仍然不知道它现在的实验性如何:
https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.mllib.linalg.Matrices $
答案 3 :(得分:0)
R有一个特殊的SparseM软件包可以有效地保存它。如果这不起作用,我会尝试使用更高性能的语言,如C。