1

Rでクラスタリングを実行しようとしています。使用したアルゴリズムはapcluster()です。私が使用したスクリプトは:R内のapcluster:メモリ制限

s1  <- negDistMat(df, r=2, method="euclidean") 
apcluster <- apcluster(s1) 

私のデータセットは約0.1百万行あります。私は、スクリプトを実行したときに、私は次のエラーを得た:私はオンラインで検索すると

Error in simpleDist(x[, sapply(x, is.numeric)], sel, method = method, : negative length vectors are not allowed

、私は負の長さのベクトル誤差が私のRAMのメモリ制限のために発生することが分かりました。私の質問は、利用可能なRAMで0.1百万行のデータセットにapcluster()を実行する回避策があるか、apclusterをRで実行しているときに気をつける必要があるものがありませんか?

私は8 GBのRAMを備えたマシンを持っています。

+0

このサイズのデータ​​セットでは、O(n²)メモリーとO(n³)時間さえ必要とするアルゴリズムは使用しないでください。代わりに 'dbscan'パッケージを試してみてください。 –

答えて

0

apcluster()メソッドで実装された親和性伝播の標準バージョンは、決してそのサイズのデータ​​に対して正常に実行されません。一方では、類似性行列(コードサンプルのs1)に100K x 100K = 10Gのエントリがあります。一方、計算時間は過大になります。代わりにapclusterL()を使用することをお勧めします。