シルエットプロットの平均解釈する方法は?


34

イムは、私のデータセット内のクラスタの数を決定するためにシルエットプロットを使用しようとしています。データセットを考えると電車、私は次のMATLABコードを使用しました

Train_data = full(Train);  
Result = [];  
for num_of_cluster = 1:20  
    centroid = kmeans(Train_data,num_of_cluster,'distance','sqeuclid');  
    s = silhouette(Train_data,centroid,'sqeuclid');  
    Result = [ Result; num_of_cluster mean(s)];  
end  
plot( Result(:,1),Result(:,2),'r*-.');`

得られたプロットは、x軸としてして以下に与えられるクラスタの数とY軸シルエット値の平均

どのように私はこのグラフを解釈するのですか?どのように私はこのことから、クラスタの数を決定するのですか?

ここに画像の説明を入力してください


クラスタの数を決定するために、下の最小スパニングツリー(MST)メソッド参照可視化-ソフトウェアのためのクラスタリングを
デニス

@Learner:シルエット関数はいくつかのライブラリに組み込まれていますか?そうでない場合は、気にしない場合は質問に投稿してもらえますか?
伝説

@Legend:Matlab Statisticsツールボックスで利用可能。
学習者

@学習者:おっと... Pythonを使用していると思った:)それについて教えてくれてありがとう。
伝説

1
コードを示すための1!また、k = 2のときにシルエットの最大平均が発生するため、データがクラスター化されているかどうかを確認することもできます。これは、ギャップ統計(別のリンク)を使用し実行できます。
フランクDernoncourt

回答:


41

Sergeyの答えには重要な点が含まれています。これは、シルエット係数が達成されるクラスタリングの品質を定量化するということです。したがって、シルエット係数を最大化するクラスターの数を選択する必要があります。


長い答えは、クラスタリング作業の結果を評価する最良の方法は、実際に人間の検査で形成されたクラスターを検査し、データが表すもの、クラスターが表すもの、そして、クラスタリングを実現するために意図されているもの。

制限の完全な理解を持つツールとして使用されるべきであるクラスタリング結果を、評価する数多くの定量的な方法があります。それらは本質的にかなり直感的である傾向があるため、自然な魅力があります(一般的なクラスタリング問題のように)。

例:クラスターの質量/半径/密度、クラスター間の凝集または分離など。これらの概念はしばしば組み合わされます。たとえば、クラスター化が成功した場合、分離と凝集の比率は大きくなければなりません。

クラスタリングの測定方法は、使用されるクラスタリングアルゴリズムの種類によって通知されます。例えば、品質測定完了(すべての点がクラスタに入れられた)クラスタリングアルゴリズムは、いくつかのポイントが「ノイズ」として非クラスタ化残される可能性のあるしきい値ベースファジークラスタリングアルゴリズム(の品質を測定することは非常に異なることができます)。


シルエット係数はそのような尺度の1つです。次のように機能します。

各ポイントpについて、最初にpと同じクラスター内の他のすべてのポイントとの間の平均距離を見つけます(これは凝集度の尺度であり、Aと呼びます)。次に、pと、最も近いクラスター内のすべてのポイントとの間の平均距離を見つけます(これは、最も近い他のクラスターからの分離の尺度です。pのシルエット係数は、BとAの差を2つのうちの大きい方(max(A、B))で割ったものとして定義されます。

各ポイントのクラスター係数を評価し、これから「全体的な」平均クラスター係数を取得できます。

直感的に、我々は、クラスタ間のスペースを測定しようとしています。クラスターの凝集が良好(Aが小さい)でクラスターの分離が良好(Bが大きい)の場合、分子は大きくなります。

私はこのグラフィックを示すために、ここで例を構築してきました。

クラスタリング係数 nclusters = 2:5のクラスタリングの結果

これらのプロットでは、同じデータが5回プロットされています。色がk = 1,2,3,4,5と、k-meansクラスタリングにより作成されたクラスタを示します。つまり、クラスタリングアルゴリズムにデータを2つのクラスター、次に3つのクラスターに分割するように強制し、それに応じてグラフに色を付けました。

シルエットプロットは、k = 3のときにシルエット係数が最高であったことを示しており、これが最適なクラスター数であることを示唆しています。この例では、データを視覚化できることは幸運であり、実際、3つのクラスターがこのデータセットのセグメンテーションを最もよくキャプチャすることに同意するかもしれません。

おそらくより高い次元性のためにデータを視覚化できなかった場合、シルエットプロットはまだ提案を提供します。ただし、ここでの多少長めの答えが、この「提案」が非常に不十分であるか、特定のシナリオでは単純に間違っている可能性があることを指摘することを願っています。


5
あなたの詳細な回答いただきありがとうございます、特にプロットは非常に有用です。しかし、私はthe average silhouette witdh "suggestion" could be very insufficient or just plain wrong in certain scenarios.あなたが主張する方法をよく理解していませんでした。
ジュバル

10

見てください クラスタの妥当性分析プラットフォーム(CVAP)ツールボックスを CVAPからと材料(リンク)の一部:

シルエット指数(全体平均シルエット)拡大シルエット値は、クラスタリング結果のより良い品質を示し[Chenらを。2002]

  • N.ボルシャコバ、F。アズアジェ。2003.ゲノム発現データのクラスター検証技術、信号処理。V.83。N4、P.825-833。
  • E.ディミトリアドゥ、S。ドルニカ、A。ウェインセル。バイナリデータセットのクラスター数を決定するためのインデックスの調査。Psychometrika、67(1):137-160、2002。

クラスタの数を推定するためのこの(単純な)ツールも確認できます。

両方のツールキットの例を見てください(他のクラスター検証手法を使用することもできます)


6

今日も同じことを調べていて、ここで解釈を見つけました。理にかなっていますが、データセットに解釈を盲目的に適用できるかどうかはわかりません。要約すると、その記事の内容は次のとおりです。

0.71-1.0
A strong structure has been found

0.51-0.70
A reasonable structure has been found

0.26-0.50
The structure is weak and could be artificial. Try additional methods of data analysis.

< 0.25
No substantial structure has been found

ただし、シルエット幅を使用して外れ値をキャッチできるようです。私は現在処理していますことを文書クラスタリングのタスクでは、(クロスが自分のセマンティックな意味で確認)明確なはずれ値である幅、負のシルエットを持つもの。この幅は、外れ値を削除した後(再び、これは論理的な意味がありますが、私は自分自身をこれを行っていない)改善されるかどうかはわかりません。


4
歴史的発言として、このテーブルはもともとスウェル、グランドビル、PJルソーからのものです。「データ内のグループの検索:クラスター分析の紹介。」(1990)。img546.imageshack.us/img546/4523/cnfg.png(著者の記事のいずれかで以前に公開された可能性があります)
フランクデルノンクール

回答のリンクは使用できなくなりました。別のリファレンスを提供していただけますか?
BajajG

ここではWebアーカイブから記事へのリンクです:web.archive.org/web/20111002220803/http://www.unesco.org:80/...は
Justas

1

教師なし学習用のクラスターの数を選択しようとしている場合は、次のようなことを試してみてください。

http://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html

彼らはシルエットスコアの平均以上のものを使用します(分布を使用します)が、それは理にかなっています。より小さなクラスターを好むようですが、生成されたデータでこれを試して、動作するかどうかを確認できますか?

または、このペーパーを確認することができます-

http://www.sciencedirect.com/science/article/pii/0377042787901257

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.