我想在一個非常大的矩陣上做一些k-means聚類。非常大的稀疏矩陣R中的k-均值聚類?
該矩陣大約500000行×4000列但非常稀疏(每行只有幾個「1」值)。
整件事不適合內存,所以我把它轉換成一個稀疏的ARFF文件。但是R顯然無法讀取稀疏的ARFF文件格式。我也有數據作爲一個普通的CSV文件。
在R中有沒有可用於加載這種稀疏矩陣的包?然後,我將使用集羣包中的常規k-means算法繼續。
非常感謝
我想在一個非常大的矩陣上做一些k-means聚類。非常大的稀疏矩陣R中的k-均值聚類?
該矩陣大約500000行×4000列但非常稀疏(每行只有幾個「1」值)。
整件事不適合內存,所以我把它轉換成一個稀疏的ARFF文件。但是R顯然無法讀取稀疏的ARFF文件格式。我也有數據作爲一個普通的CSV文件。
在R中有沒有可用於加載這種稀疏矩陣的包?然後,我將使用集羣包中的常規k-means算法繼續。
非常感謝
的bigmemory包(或現在家庭包 - 看到他們website)使用k均值作爲大型數據運行示例擴展分析的。特別參見包含k-means功能的子包biganalytics。
對於大內存+1,我不知道他們有這麼多的包。 – richiemorrisroe 2011-06-03 20:34:04
是的,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 $
感謝您的回答! 雖然我得到了另一個問題:-)我試圖運行bigkmeans羣集數量約爲2000例如「clust < - bigkmeans(mymatrix,centers = 2000)」 但是,我得到以下錯誤: 錯誤1:(10 + 2^k):結果將是一個向量太長 有人可能會給我一個提示,我在做什麼錯在這裏? 謝謝! – movingabout 2010-06-18 07:49:58
原文http://stackoverflow.com/questions/3177827/clustering-on-very-large-sparse-matrix – 2011-12-20 20:04:23