2

k-means を使用してクラスタリングする 62 列と 181408 行の行列があります。私が理想的に望むのは、最適なクラスター数を特定する方法です。clusGapクラスター パッケージ (以下の再現可能なコード)を使用してギャップ統計手法を実装しようとしましたが、これにより、ベクトルのサイズ (122 GB) に関連するいくつかのエラー メッセージが生成さmemory.limitれ、Windows およびError in dist(xs) : negative length vectors are not allowedOS X では " "の問題が発生します。大規模なデータセットで最適なクラスター数を決定する際に機能する手法について何か提案はありますか? または、代わりに、コードを機能させる方法 (完了まで数日かからない方法) を教えてください。ありがとう。

library(cluster)
inputdata<-matrix(rexp(11247296, rate=.1), ncol=62)
clustergap <- clusGap(inputdata, FUN=kmeans, K.max=12, B=10)
4

3 に答える 3

2

62 次元では、次元の呪いにより、結果が無意味になる可能性があります。

k-means は最小 SSQ 割り当てを行います。これは、技術的には、ユークリッド距離の 2 乗を最小化することと同じです。ただし、ユークリッド距離は、高次元データではうまく機能しないことが知られています。

于 2013-03-13T10:13:37.433 に答える