9

我正在尝试在一个非常大的矩阵上进行一些 k 均值聚类。

该矩阵大约有 500000 行 x 4000 列,但非常稀疏(每行只有几个“1”值)。

整个东西不适合内存,所以我把它转换成一个稀疏的 ARFF 文件。但是 R 显然无法读取稀疏的 ARFF 文件格式。我也将数据作为纯 CSV 文件。

R 中是否有任何包可用于有效加载此类稀疏矩阵?然后,我将使用 cluster 包中的常规 k-means 算法继续进行。

非常感谢

4

4 回答 4

14

bigmemory包(或现在的包系列——参见他们的网站使用 k-means 作为对大数据进行扩展分析的运行示例。特别参见包含 k-means 函数的子包biganalytics 。

于 2010-06-14T18:10:53.010 回答
1

请检查:

library(foreign)
?read.arff

干杯。

于 2011-06-03T16:03:16.493 回答
1

sparkcl 执行稀疏层次聚类和稀疏 k-means 聚类这对于 R-suitable(所以 - 适合内存)矩阵应该是好的。

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 $

https://spark.apache.org/docs/latest/mllib-clustering.html

于 2015-05-20T10:50:45.307 回答
0

R 有一个特殊的 SparseM 包可以有效地保存它。如果这不起作用,我会尝试使用更高性能的语言,例如 C。

于 2013-05-31T23:21:57.377 回答