非常大的稀疏矩阵R中的k-均值聚类?

问题描述:

我想在一个非常大的矩阵上做一些k-means聚类。非常大的稀疏矩阵R中的k-均值聚类?

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

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

在R中有没有可用于加载这种稀疏矩阵的包?然后,我将使用集群包中的常规k-means算法继续。

非常感谢

+0

感谢您的回答! 虽然我得到了另一个问题:-)我试图运行bigkmeans群集数量约为2000例如“clust movingabout 2010-06-18 07:49:58

+1

原文http://*.com/questions/3177827/clustering-on-very-large-sparse-matrix – 2011-12-20 20:04:23

bigmemory包(或现在家庭包 - 看到他们website)使用k均值作为大型数据运行示例扩展分析的。特别参见包含k-means功能的子包biganalytics

+0

对于大内存+1,我不知道他们有这么多的包。 – richiemorrisroe 2011-06-03 20:34:04

+0

是的,bigmemory包中的read.data.matrix()函数支持1个原子数据类型。 – 2014-06-13 16:21:36

请检查:

library(foreign) 
?read.arff 

干杯。

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

sparkcl执行稀疏层次聚类和稀疏k-均值聚类 这应该是适合R适用的(如此适合内存)矩阵。

http://cran.r-project.org/web/packages/sparcl/sparcl.pdf

==

对于真正的大矩阵,我会尝试与Apache的解决方案星火稀疏矩阵,并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