k-意味着在非常大的稀疏矩阵上聚类?

时间:2010-06-14 18:03:36

标签: r cluster-analysis sparse-matrix

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

矩阵大约是500000行×4000个cols但非常稀疏(每行只有几个“1”值)。

整个东西不适合内存,因此我将其转换为稀疏的ARFF文件。但是R显然无法读取稀疏的ARFF文件格式。我还将数据作为普通的CSV文件。

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

非常感谢

4 个答案:

答案 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 $

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

答案 3 :(得分:0)

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