クラスター数の選択-クラスター検証の基準とドメインの理論的な考慮事項


8

クラスターの数を選択する必要があるという問題によく直面します。私が最終的に選択するパーティションは、多くの場合、品質基準ではなく視覚的および理論的な懸念に基づいています。

主な質問が2つあります。

1つ目は、クラスターの品質に関する一般的な考え方です。「エルボ」などの基準が理解できることから、コスト関数を参照して最適な値を提案しています。このフレームワークで私が抱えている問題は、最適な基準が理論的な検討に影響されないため、最終的なグループ/クラスターに常に必要となるある程度の複雑さ(研究分野に関連)があることです。

また、のように説明し、ここで最適値はまた、あなたがしているかを考慮して、(例えば経済的制約など)、「下流の目的」制約に関連している何をするつもりクラスタリング事項と。

明らかに、1つの面が意味のある/解釈可能なクラスターを見つけることであり、クラスターが多くなるほど、それらを解釈することが難しくなります。

しかし、常にそうであるとは限りません。8、10、または12個のクラスターが、分析で必要なクラスターの最小の「興味深い」数であることがよくあります。

ただし、肘などの基準では、クラスターがはるかに少ないことが示唆されることが多く、通常は2、3または4です。

Q1。私が知りたいのは、特定の基準(エルボなど)によって提案されたソリューションではなく、より多くのクラスターを選択することを決定した場合の最良の議論の行です。直観的には、制約がない場合(取得したグループの了解度や、非常に多額の場合のコースラの例など)は常に優れいるはずです。これを科学雑誌の記事でどのように議論しますか?

別の言い方をすれば、(これらの基準を使用して)クラスターの最小数を特定したら、それよりも多くのクラスターを選択した理由を正当化する必要さえあるということです。意味のある最小限のクラスターを選択する場合にのみ、正当化が行われるべきではありませんか?

Q2。これに関連して、クラスターの数が増えるにつれて、シルエットなどの特定の品質指標が実際にどのように減少するかはわかりません。シルエットにクラスター数のペナルティが表示されないので、どうすればよいですか?理論的には、クラスターが多いほど、クラスターの品質は高くなりますか?

# R code 

library(factoextra)

data("iris")
ir = iris[,-5]

# Hierarchical Clustering, Ward.D
# 5 clusters
ec5  = eclust(ir, FUNcluster = 'hclust', hc_metric = 'euclidean', 
              hc_method = 'ward.D', graph = T, k = 5)
# 20 clusters
ec20 = eclust(ir, FUNcluster = 'hclust', hc_metric = 'euclidean', 
              hc_method = 'ward.D', graph = T, k = 20)

a = fviz_silhouette(ec5)  # silhouette plot
b = fviz_silhouette(ec20) # silhouette plot

c = fviz_cluster(ec5)  # scatter plot
d = fviz_cluster(ec20) # scatter plot

grid.arrange(a,b,c,d)

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


KでのWCSSのような方法は、アルゴリズムを使用してクラスタリングのKの最適値を取得できることを意味します。
avi sharma

クラスター品質stats.stackexchange.com/a/195481/3277のいくつかの側面。また、内部クラスタリング基準に関する一般的な情報が必要な場合は、私のWebページの「クラスタリング基準」ドキュメントを参照してください。
ttnphns

Theoretically, the more clusters you have, the greater is the cluster quality絶対に必要ではありません。ほとんどの内部クラスタリング基準(を含む)シルエットインデックスは、これがその方法で「正規化」されているか、クラスターkの最良の数で極端になるように数式で調整されているため、kはその数よりも少ないか、または多い基準値が低くなります。"エルボーSSw"基準は正規化されていません。悪い基準であり、検討する価値はありません。代わりにClinski-HarabaszまたはDavies-Bouldinの正規化を使用してください。
ttnphns

what is the best line of argument when you decide to choose more clusters rather than the solution proposed by a certain criteria上記のリンクの下にある私のファセットを読むと、単一の最良の引数も合成された引数も存在しないことが理解できます。結局のところ、(小さいまたは大きいkの)最良の議論は、自分自身または聴衆に対する説得力です。人間の決定は議論に基づくのではなく、恣意的です。議論は言い訳できないことを言い訳するために説明しています。
ttnphns

より多くのクラスターが適切であるかどうかにかかわらず、WCSSは常にKが増加するにつれて減少します。
ガン-モニカの

回答:


3

重要なのは、意味のあるクラスターと、結果のクラスターで何を評価するかを見つけることです。

簡単な例で説明しましょう。例は、かなりよく分離された2つのガウスクラスターです。k-meansを使用してデータを2つまたは3つのクラスターに分割すると、次のパーティションが得られます。

set.seed(1066)
x = c(rnorm(200,0,1), rnorm(200,6,1))
y = rnorm(400,0,1)
XY = data.frame(x,y)

KM2 = kmeans(XY, 2)
KM3 = kmeans(XY, 3)

par(mfrow=c(1,2))
plot(XY, pch=20, col=KM2$cluster+1, asp=1)
plot(XY, pch=20, col=KM3$cluster+1, asp=1)

2つおよび3つのクラスター

Silhouetteは、3つではなく2つのクラスターの方が良いと言っています。

library(cluster)
plot(silhouette(KM2$cluster, dist(XY)))
plot(silhouette(KM3$cluster, dist(XY)))

シルエットプロット

シルエットが下がった理由を確認するのに役立ちます。まず、右側のクラスターでは、シルエットがほとんど変化していないことが簡単にわかります。平均シルエットが大きく低下するのは、左側のクラスターが2つに分割されているためです。どうしてそんなシルエットにならなかったの?先ほど述べたように、メトリックが好むものを確認する必要があります。各ポイントについて、シルエットは、同じクラスター内のポイントと他のポイント間の平均距離を、そのポイントと最も近い他のクラスター間の平均距離と比較します。2つのクラスターがある場合、2つのクラスターのそれぞれのポイントは、他のクラスターから十分に離れていました。3つのクラスターではそうではありません。左側の2つのクラスターのポイントは、互いに真上にあります。これにより、メトリックが低下する可能性があります。シルエットは、クラスター内のポイントが近接しているクラスターに報酬を与えるだけではありません。また、互いに十分に分離されていないクラスターを罰します。

それが「下流の目的」になります。十分に分離されたクラスターを持つことがそれほど重要ではない場合があります。たとえば、画像の色にk平均クラスタリングを使用して、画像圧縮のために類似した色をグループ化できます。その場合、各クラスターが適度に一貫している(コンパクトである)限り、2つのクラスターが互いに接近していてもかまいません。ただし、多くの場合、データのより基本的な構造を理解する方法としてクラスタリングを使用します。たとえば、上記の2つのガウス分布の例では、2つのクラスターが3つのクラスターよりも基礎となる構造を示しています。構造を探している場合は、データ内の自然なグループを最も厳密に表すクラスターの数が必要です。しかし、これらは2つの異なる目標です。

  1. 同じクラスター内のポイントが互いに近くにあるポイントのグループ化

  2. 異なるクラスターも分離するグループ

同じクラスター内のポイントのみを近接させたい場合は、クラスターが多いほど常に良いという主張は問題ありません。しかし、根底にある構造を発見しようとしている場合、それは良くありません。構造とは、データの内容です。1つのクラスターを2つ呼び出すことは改善されていません。


非常に有益な回答をありがとうございます。私の時点ですぐに戻るために、例で0を特定の意味として、定性的なしきい値の一種として、そこに表示されるパーティションが意味のある(理論的に)何かを明らかにすることを想像してみてください。私のシルエットの問題は、実際には、ポイントが互いに近くに表示されていても、実際には理論的には非常に遠いことです(0はある種の有意なしきい値であるため)。私の経験では、多くの場合、これらのクラスターは重要です。
Giac

1
私たちは反対しているとは思わない。例は単純に2つのガウスクラスターとして作成したため、-0.1と0.1の差は小さく、3つのクラスターバージョンは偽です。ただし、「x <0:」と「x> 0」がまったく異なるものを意味し、この分離が意味のあるアプリケーションが存在する可能性があることを完全に受け入れます。しかし、シルエットのようなメトリックが問題を知ることは期待できません。データのみを表示します。そのため、問題に関してデータとメトリックを解釈するのはあなたの責任です。メトリックが問題を反映していない場合は、役に立ちません。
G5W 2018

はい私は同意する。別の考えとして、私の印象は、あなたが説明するものは非常にdivisiveパラダイムであるということですが、agglomerativeパラダイムでは、各個人が何よりもまず1つのクラスターです。ですから、このパラダイムでは「良いほど良い」と感じています。2つのグループを強制的に分離するのではなく、2つの個人を1つのグループに統合することを強制しています。それでは、凝集クラスタリングのシルエットはどの程度適切かと思います。どう思いますか?
giac

@ hxd1011の回答で述べたように、極端なケースでは、すべてのポイントをクラスターにすることができます。クラスタリングの全体のポイントは、それを超える構造を見つけることです。そのため、おそらく「より多くの方が良い」とは完全には当てはまりません。ある時点までしか真実ではありません。目的は、適切なレベルの結合ポイントを見つけて、個別のグループをマージせずに構造をキャプチャすることです。すべてのステップで、質問をする必要があります。ここで停止するか、それともクラスターを結合し続ける必要がありますか?
G5W 2018

1
一般に、クラスターが十分に分離されていない場合、シルエットはそれらを結合し続けると言います。ただし、シルエットは、1つのポイントを持つクラスターに対しても定義されていません。凝集プロセスの開始時には適用されません。
G5W 2018

1

交差検証は、クラスタリングの問題でも使用できることに注意してください。

たとえば、Kの意味では、クラスターの数が増えると、常に当てはまる目的が減少します。極端なケースは、データポイントの数に等しいクラスターの数であり、目的は0。しかし、それは過剰適合モデルであり、テストセットでは失敗します。

私の提案は、ホールドアウトテストデータセットの「クラスタリング品質測定」をチェックすることです。


クラスター分析の相互検証のリファレンスを教えてもらえますか?
giac
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.