Silhouette çizimi ne anlama gelir?


34

Veri setimdeki küme sayısını belirlemek için siluet grafiği kullanmaya çalışıyorum. Veri kümesi treni göz önüne alındığında, aşağıdaki matlab kodunu kullandım

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*-.');`

Ortaya çıkan arsa, küme sayısı olarak xaxis ve siluet değerinin ortalaması olan xaks ile verilmiştir .

Bu grafiği nasıl yorumlayabilirim? Bundan küme sayısını nasıl belirleyebilirim?

görüntü tanımını buraya girin


Küme sayısını belirlemek için, kümeleme için görselleştirme yazılımı altındaki minimum yayılma ağacı (MST) yöntemine bakın .
denis

@ Öğrenci: Siluet işlevi bazı kütüphanelerde yerleşik mi? Olmazsa, sakıncası yoksa sorunuza gönderebilir misiniz?
Efsane

@ Legend: Matlab Statistics araç kutusunda bulunur.
Öğrenci

@ Öğrenci: Ooops ... Python kullandığınızı sanıyordum :) Bana haber verdiğiniz için teşekkür ederiz.
Efsane

1
Kodu göstermek için +1! Ayrıca, siluetinizin maksimum ortalaması k = 2 olduğunda ortaya çıktığından, verilerinizin kümelenip kümelenmediğini kontrol etmek isteyebilirsiniz; bu , boşluk istatistiği kullanılarak yapılabilir (başka bir bağlantı ).
Franck Dernoncourt 7:13

Yanıtlar:


41

Sergey'in cevabı kritik noktayı içeriyor; yani siluet katsayısı, elde edilen kümelenme kalitesini ölçüyor; bu nedenle siluet katsayısını en üst düzeye çıkaran küme sayısını seçmelisiniz.


Uzun cevap, kümelenme çabalarınızın sonuçlarını değerlendirmenin en iyi yolunun aslında insan incelemesi - kümelerin oluşturduğu ve verinin neyi temsil ettiği, kümenin neyi temsil ettiğine dair bir anlayışa dayanarak belirleme yaparak incelemeye başlamaktır. ve kümelemenin neyi başarması amaçlanmaktadır.

Sınırlamaları tam olarak anlayarak, araç olarak kullanılması gereken kümelenme sonuçlarını değerlendirmenin sayısız nicel metodu vardır. Doğada oldukça sezgisel olma eğilimindedirler ve bu nedenle doğal bir çekiciliği vardır (genel olarak kümelenme problemleri gibi).

Örnekler: küme kütlesi / yarıçapı / yoğunluğu, kümeler arasında birleşme veya ayrılma, vb. Bu kavramlar sıklıkla birleştirilir, örneğin kümelemenin başarılı olması durumunda ayrılmanın bütünlüğe yapışma oranının büyük olması gerekir.

Kümelenmenin ölçülme şekli, kullanılan kümelenme algoritmalarının türü ile bildirilir. Örneğin, tam bir kümeleme algoritmasının kalitesinin ölçülmesi (tüm noktaların kümelere konması) eşik bazlı bulanık kümelenme algoritmasının kalitesinin ölçülmesinden çok farklı olabilir (ki burada bir nokta kümelenmemiş olarak “gürültü” olarak bırakılabilir) ).


Siluet katsayısı, böyle bir ölçüdür. Aşağıdaki gibi çalışır:

Her p noktası için, ilk önce p ile aynı kümedeki diğer tüm noktalar arasındaki ortalama mesafeyi bulun (bu bir uyum ölçüsüdür, A olarak adlandırın). Daha sonra p ile en yakın kümedeki tüm noktalar arasındaki ortalama mesafeyi bulun (bu, en yakın diğer kümeden ayrılmanın bir ölçüsüdür, B olarak adlandırın). P için siluet katsayısı, B ve A arasındaki farkın ikiden büyüke (maks (A, B)) bölünmesiyle tanımlanır.

Her bir noktanın küme katsayısını değerlendiriyoruz ve bundan da 'genel' ortalama küme katsayısını elde edebiliyoruz.

Sezgisel olarak, kümeler arasındaki boşluğu ölçmeye çalışıyoruz. Küme uyumu iyi (A küçük) ve küme ayrımı iyi (B büyük), pay büyük vb.

Bunu grafiksel olarak göstermek için buraya bir örnek oluşturdum.

Kümeleme katsayısı Nclusters için kümelemenin sonuçları = 2: 5

Bu parsellerde aynı veriler beş kez çizilmiştir; renkler, k = 1,2,3,4,5 ile k-aracı kümelenmesi tarafından oluşturulan kümeleri gösterir. Yani, verileri 2 kümeye, ardından 3'e bölmek için kümeleme algoritmasını zorladım ve grafiği buna göre renklendirdim.

Siluet grafiği, k = 3 olduğunda siluet katsayısının en yüksek olduğunu gösterir, bu da optimum küme sayısı olduğunu gösterir. Bu örnekte verileri görselleştirebildiğimiz için şanslıyız ve gerçekten üç kümenin bu veri kümesinin bölümlenmesini en iyi şekilde yakaladığını kabul edebiliriz.

Verileri görselleştirememiş olsaydık, belki de daha yüksek boyutsallık nedeniyle, bir siluet grafiği bize bir öneride bulunacaktı. Bununla birlikte, burada biraz uzun soluklu cevabımın, bu "öneri" nin bazı senaryolarda çok yetersiz ya da sadece yanlış olabileceği fikrine de inanıyorum.


5
Ayrıntılı cevabınız için teşekkür ederiz ve özellikle araziler çok faydalıdır. Ancak, the average silhouette witdh "suggestion" could be very insufficient or just plain wrong in certain scenarios.iddia ettiğiniz gibi bir şey anlamadım .
Zhubarb

10

Bir göz atın Küme Geçerlilik Analizi Platformu (CVAP) ToolBox Ve CVAP malzemelerin (bağlantılar) bazı:

Siluet endeksi (genel ortalama siluet) daha büyük bir Siluet değeri, kümelenme sonucunun daha iyi bir kalitesini gösterir [Chen et al. 2002]

  • N. Bolshakova, F. Azuaje. 2003. Genom ekspresyon verileri için küme doğrulama teknikleri, Sinyal İşleme. V.83. N4, s. 825-833.
  • E. Dimitriadou, S. Dolnicar, A. Weingessel. İkili veri kümelerindeki Küme Sayısının belirlenmesi için endekslerin incelenmesi. Psikometrika, 67 (1): 137-160, 2002.

Küme sayısını tahmin etmek için bu (basit) Aracı da kontrol edebilirsiniz .

Her iki araç setinin örneklerine bir göz atın (Diğer küme doğrulama tekniklerini de kullanabilirsiniz)


6

Bugün aynı şeyi inceledim ve burada bir yorum buldum . Mantıklı geliyor ama yorumumuzu veri kümelerimiz için körü körüne uygulayabilir miyiz emin değilim. Özet olarak, bu makalenin söylediği şey şudur:

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

Bununla birlikte, siluet genişliğini aykırılıkları yakalamak için kullanabiliriz. Şu an üzerinde çalışmakta olduğum bir belge kümeleme görevinde, negatif siluet genişliğine sahip olanlar kesin aykırı değerlerdir (anlamsal anlamlarıyla çapraz kontrol edildiklerinde). Aykırı değerlerin kaldırılmasından sonra bu genişliğin iyileşip iyileşmeyeceğinden emin değilim (yine, bu mantıklı geliyor, ancak bunu kendim yapmadım).


4
Sadece bir tarih yorumunda, tablo aslen Sewell, Grandville ve PJ Rousseau'dan geliyor. "Verilerdeki grupları bulma: Küme analizine giriş." (1990). img546.imageshack.us/img546/4523/cnfg.png (belki de daha önce yazarların makalelerinden birinde basılmış olabilir)
Franck Dernoncourt

Cevaptaki bağlantı artık mevcut değil. Lütfen başka bir referans verebilir misiniz?
BajajG

İşte web arşivindeki makalenin bağlantısı: web.archive.org/web/20111002220803/http://www.unesco.org:80/…
Justas 19

1

Denetimsiz öğrenme için küme sayısını seçmeye çalışıyorsanız, belki bir şey yapmayı deneyebilirsiniz.

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

Siluet puan ortalamasından daha fazlasını kullanırlar (dağılımı kullanırlar) ama mantıklı geliyor. Daha küçük kümeleri tercih ediyor gibi gözüküyor, ancak belki bunu bazı verilerle deneyip çalışıp çalışmadığını görebilirsiniz.

Alternatif olarak, bu kağıdı kontrol edebilirsiniz.

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.