回答:
ギャップ統計はこれを行うための優れた方法です。Tibshirani、Hastie&Walther(2001)。
http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/clusGap.html-関連するRパッケージ。
アイデアは、K = 1,2,3、...のデータをクラスター化する順次仮説検定を実行することです。これは、1つのクラスターに相当するランダムノイズの帰無仮説です。その特別な長所は、K = 1かどうか、つまりクラスターがないかどうかの信頼できる指標を提供することです。
例を挙げましょう。数日前に天文学のデータを調べていました。つまり、通過する太陽系外惑星の調査です。(凸)クラスターにはどのような証拠があるのか知りたいと思いました。私のデータは「交通機関」です
library(cluster)
cgap <- clusGap(transit, FUN=kmeans, K.max=kmax, B=100)
for(k in 1:(kmax-1)) {
if(cgap$Tab[k,3]>cgap$Tab[(k+1),3]-cgap$Tab[(k+1),4]) {print(k)};
break;
}
ギャップ統計では、テストが「失敗」した、つまりギャップ統計が大幅に低下するKの最初の値を探しています。上記のループはそのようなakを出力しますが、cgapをプロットするだけで次の図が得られます
。k= 1からk = 2までのGapに大幅な落ち込みがあることを確認してください。
より最近の方法を試すこともできます:A. KalogeratosおよびA.Likas、Dip-means:クラスター数を推定するためのインクリメンタルクラスタリング方法、NIPS 2012。
アイデアは、1つの点とセットの残りの点の間の類似性/距離を含むベクトルに対して、ユニモダリティの統計的仮説検定を使用することです。テストは、Hartigan-Hartigan dip test、Ann を使用して行われます。統計学者。13(1):70-84。
この方法は、すべてのデータセットを1つのクラスターとして開始し、単峰性仮説が拒否される(つまり、複数のクラスターが存在する)限り、データセットを徐々に分割します。
したがって、この方法は、データ(質問)に複数のクラスターがあるかどうかを示しますが、最終的なクラスター化も提供します。