クラスタリング結果の比較を理解する


13

データをグループに分類する実験をしています。私はこのトピックに非常に新しく、いくつかの分析の出力を理解しようとしています。

Quick-Rの例を使用して、いくつかのRパッケージを提案します。これらのパッケージのうち2つを使用してみました(関数とfpcを使用)。私が理解していないこの分析の1つの側面は、結果の比較です。kmeansmclust

# comparing 2 cluster solutions
library(fpc)
cluster.stats(d, fit1$cluster, fit2$cluster)

私はfpc マニュアルの関連部分を読みましたが、私が何を目指しているべきかまだ明確ではありません。たとえば、これは2つの異なるクラスタリングアプローチを比較した結果です。

$n
[1] 521

$cluster.number
[1] 4

$cluster.size
[1] 250 119  78  74

$diameter
[1]  5.278162  9.773658 16.460074  7.328020

$average.distance
[1] 1.632656 2.106422 3.461598 2.622574

$median.distance
[1] 1.562625 1.788113 2.763217 2.463826

$separation
[1] 0.2797048 0.3754188 0.2797048 0.3557264

$average.toother
[1] 3.442575 3.929158 4.068230 4.425910

$separation.matrix
          [,1]      [,2]      [,3]      [,4]
[1,] 0.0000000 0.3754188 0.2797048 0.3557264
[2,] 0.3754188 0.0000000 0.6299734 2.9020383
[3,] 0.2797048 0.6299734 0.0000000 0.6803704
[4,] 0.3557264 2.9020383 0.6803704 0.0000000

$average.between
[1] 3.865142

$average.within
[1] 1.894740

$n.between
[1] 91610

$n.within
[1] 43850

$within.cluster.ss
[1] 1785.935

$clus.avg.silwidths
         1          2          3          4 
0.42072895 0.31672350 0.01810699 0.23728253 

$avg.silwidth
[1] 0.3106403

$g2
NULL

$g3
NULL

$pearsongamma
[1] 0.4869491

$dunn
[1] 0.01699292

$entropy
[1] 1.251134

$wb.ratio
[1] 0.4902123

$ch
[1] 178.9074

$corrected.rand
[1] 0.2046704

$vi
[1] 1.56189

ここでの私の最初の質問は、このクラスター比較の結果を解釈する方法をよりよく理解することです。


以前は、データのスケーリングと距離行列の計算の影響について詳しく質問していました。しかし、マリアナ・ソファーはこれに明確に答えており、2つの異なるクラスタリングアルゴリズムの比較である出力の解釈に興味があることを強調するために質問を再編成しています。

質問の前の部分:何らかのタイプのクラスタリングを行う場合、常にデータをスケーリングする必要がありますか?たとえばdist()、スケーリングされたデータセットのcluster.stats()関数を関数への入力として使用していますが、何が起こっているのか完全には理解していません。私はdist() ここについて読ん、それはそれを述べています:

この関数は、指定された距離測定を使用して計算された距離行列を計算して返し、データ行列の行間の距離を計算します。


さらなる説明をお探しですか、@ marianaの回答に不満をお持ちですか?それはあなたの最初の質問に関するものだと思います(2番目の§)。この場合は、質問を更新して、なぜこの質問に賞金を設定しているのかを人々に理解してもらう必要があります。
CHL

@chlより明確にするために更新します。出力の意味が分からないため、クラスタリングの比較の解釈に関するガイダンスを探しています。@marianaの応答は、このメソッドに関連する用語のいくつかを説明するのに非常に役立ちました。
セレニウス

回答:


13

まず、ここではすべての測定値を正確に説明するつもりはありませんが、クラスタリング手法がどれほど優れているかを比較する方法について考えてみましょう(同じ数の2つのクラスタリング手法を比較すると仮定しましょう)クラスターの)。

  1. たとえば、クラスターの直径が大きくなると、クラスターに属するポイントがより散乱されるため、最悪のクラスタリングになります。
  2. 各クラスタリングの平均距離が長いほど、最悪のクラスタリング方法です。(平均距離は、クラスター内の各ポイントからクラスターの中心までの距離の平均であると仮定しましょう。)

これらは、最も使用される2つのメトリックです。これらのリンクをチェックして、それらが何を表しているのかを理解してください。

  • クラスター間距離(高いほど、異なるクラスター重心間の距離の合計です)
  • クラスター内距離(低いほど良い、クラスターメンバーからクラスターの中心までの距離の合計)

上記のメトリックをよりよく理解するには、これを確認してください。

次に、使用しているライブラリと関数のマニュアルを読んで、どのメジャーがこれらのそれぞれを表すかを理解するか、これらが含まれていない場合は、含まれているものの意味を見つけてください。しかし、私はここで述べたものを気にせず、固執しません。

行った質問に進みましょう。

  1. データのスケーリングについて:はい、常にクラスタリングのためにデータをスケーリングする必要があります。そうしないと、異なる次元(変数)の異なるスケールがデータのクラスタリング方法に異なる影響を与え、変数の値が大きいほどその変数に影響を与えますクラスタリングがどのように行われるかということになりますが、実際、それらはすべて同じ影響を持っている必要があります(特定の奇妙な理由がない限り、そうする必要はありません)。
  2. 距離関数は、1つのポイント(インスタンス)から別のポイントまでのすべての距離を計算します。最も一般的な距離測定はユークリッドです。たとえば、インスタンス1からインスタンス2までの距離を測定するとします(簡単にするために、インスタンスが2つしかないと仮定します)。また、各インスタンスに3つの値があると仮定します(x1, x2, x3)。したがってI1=0.3, 0.2, 0.5I2=0.3, 0.3, 0.4I1とI2からのユークリッド距離は次のようになりますsqrt((0.3-0.2)^2+(0.2-0.3)^2+(0.5-0.4)^2)=0.17。したがって、距離行列は次のようになります。

        i1    i2
    i1  0     0.17
    i2  0.17  0

距離行列は常に対称であることに注意してください。

存在するのはユークリッド距離式だけではありません。この行列を計算するために使用できる他の多くの距離があります。たとえば、Wikipedia Manhattain Distanceとその計算方法を確認してください。ユークリッド距離のウィキペディアページの最後で(式を確認することもできます)、他にどの距離が存在するかを確認できます。


非常に包括的な答えをありがとう-それは非常に有用です。
セレニウス

私はそれがあなたに役立ったことを本当に嬉しく思います。
マリアナ・ソファー

@marianasofferスタンフォードページへのリンクは機能しません。更新するか、アクセス可能にしてください。ありがとう
ハーマン・トゥーロット

7

ラベル付けされたデータとラベル付けされていないデータを使用した学習で Seegerが示したように、クラスタリングの最適な品質尺度はクラスターの仮定であると思います

たとえば、X = Rdおよび「クラスター仮定」の有効性、つまり、2つの点x、xのパスがX内で比較的高いP(x )。

はい、これは重心と中心の全体的なアイデアをもたらします。結局のところ、データが実際に操作している空間の非線形部分多様体の中にあるかもしれないという事実を考えるなら、これはかなりarbitrary意的な概念です。

混合モデルが分解する合成データセットを簡単に構築できます。例:これ雲の中の円

簡単に言えば、クラスタリングアルゴリズムの品質をミニマックスの方法で測定します。最適なクラスタリングアルゴリズムは、同じクラスターの最近傍へのポイントの最大距離を最小化する一方で、異なるクラスターからの最近傍へのポイントの最小距離を最大化するアルゴリズムです。

ノンパラメトリック情報理論クラスタリングアルゴリズムにも興味があるかもしれません。


ミニマックスアプローチを使用してクラスター適合を調べる方法を教えてください。私のクラスタリングの知識レベルは非常に基本的なものなので、現時点では2つの異なるクラスタリングアプローチを比較する方法を理解しようとしています。
セレニウス

添付の図のRコードを教えてください。
アンドレジ

@Andrej私の推測では、ガウス雲(x<-rnorm(N);rnorm(N)->y)がrによって3つの部分に分割されています(そのうちの1つが削除されています)。

私はその品質尺度に従って適合する実用的なアルゴリズムを知りません。おそらくまだK-Meansなどを使用したいでしょう。しかし、上記の測定値が破綻した場合、見ているデータがそのアルゴリズムに(まだ!)適切ではないことがわかります。
バイエルジ

@Andrej私はR(統計ではなくMLから来ています:)を使用しませんが、mbqが示唆していることは問題ないようです。
バイエルジ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.