R'de k-ortalama kümelemenin sonucunu yorumlama


12

kmeansAnderson'ın iris veri kümesinde k-ortalama algoritmasını gerçekleştirmek için R komutunu kullanıyordum . Sahip olduğum bazı parametreler hakkında bir sorum var. Sonuçlar:

Cluster means:
  Sepal.Length Sepal.Width Petal.Length Petal.Width
1     5.006000    3.428000     1.462000    0.246000

Bu durumda, "Küme anlamı" ne anlama gelir? Kümedeki tüm nesnelerin mesafelerinin ortalaması nedir?

Ayrıca son bölümde:

Within cluster sum of squares by cluster:
[1] 15.15100 39.82097 23.87947
 (between_SS / total_SS =  88.4 %)

Bu değer% 88.4, yorumu ne olabilir?


4
Lütfen yayını geçmeyin ! stackoverflow.com/q/14524818/429846
Gavin Simpson

Hayır, bu sadece ilk kümedeki tüm nesnelerin ortalamasıdır (toplamda 3). İris.km $ betweenss / iris.km $ totss
dfhgfh

K-araçlarıyla ilgili makaleleri okuyun . O zaman clsuter'ın ne anlama geldiği açık olmalıdır ... K-araçları mesafe temelli değildir . Varyansları en aza indirir: "kare sapmaların toplamı".
ÇIKIŞ - Anony-Mousse

Ortalamanızın 0 olduğunu varsayın. Matematiği yapın. Yukarıdaki varsayımın bir fark yaratıp yaratmadığını kontrol edin. Bundan sonra mutlu yaşa. Kar!
mia

Yanıtlar:


24

Her bir veri noktasının kare uzaklıklarının toplamını global örnek ortalamasına hesaplarsanız, elde edersiniz total_SS. Eğer global bir örnek ortalaması (veya 'centroid') hesaplamak yerine, grup başına bir tane hesaplarsanız (burada, üç grup vardır) ve daha sonra bu üç aracın kare mesafelerinin toplamını küresel ortalamaya hesaplarsanız, elde edersiniz between_SS. (Bunu hesaplarken, her ortalamanın kare mesafesini küresel ortalamayla temsil ettiği veri noktalarının sayısı ile çarparsınız.)

Eğer fark edilebilir bir kümelenme modeli olmasaydı, üç grubun üç yolu küresel ortalamaya yakın between_SSolurdu ve çok küçük bir kısmı olurdu total_SS. Bunun tersi burada, veri noktalarının türlere göre dört boyutlu alanda oldukça düzgün bir şekilde kümelendiğini gösterir.


14

K-ortalamaları uzaklık tabanlı bir kümeleme algoritması değildir .

K-, minimum kareler ataması toplamını arar , yani total_SSküme merkezlerine nokta atayarak normal olmayan varyansı (= ) en aza indirir .

K-ortalamalarının birleşmesi için iki koşula ihtiyacınız vardır:

  • noktaların yeniden atanması , karelerin toplamını azaltır
  • ortalamanın yeniden hesaplanması karelerin toplamını azaltır

Yalnızca sınırlı sayıda kombinasyon olduğundan, bu değeri sınırsız olarak azaltamazsınız ve algoritma bir noktada yerel bir optimum seviyeye yakınsamalıdır .

Σben(xben-μjben)2j. Matematiksel olarak, en küçük kareler ile atama, kare kapanmış Öklid mesafesine göre atamaya eşittir (bu da (bilgi işlem için CPU döngülerini harcarsanız sqrt) minimum Öklid mesafesi atamasına eşittir. Yani sezgi en yakın ortalamaya her noktayı atama doğrudur, ancak optimizasyon problemi ne.

between_SS muhtemelen küme merkezlerinin ne kadar iyi ayrıldığını ölçmek için iki yol arasındaki karelerin toplamıdır (not: küme merkezleri, gerçek kümeleri karşılaştırmaz - teknik olarak, küme Voronoi hücresi komşu kümeler Voronoi hücresine dokunur).

K-araçlarıyla, k'yi artırarak saf kümeleme kalitesini artırabileceğinizi unutmayın. Burada ölçülen kalite , kullanıcının gereksinimlerine uygun olmayan matematiksel bir değerdir . İris aslında oldukça iyi bir örnektir, burada k-ortalamaları, tam olarak 3 küme olması gerektiği dış bilgileri göz önüne alındığında, genellikle tatmin edici sonuçlardan daha az sonuçlara dönüşür.

K-araçlarının mesafeye dayalı bir varyasyonunu istiyorsanız , k-medoidlere bakın . Burada yakınsama, ortalamayı medoid ile değiştirerek sağlanır:

  • Her nesne en yakın kümeye atanır (rastgele bir uzaklık ölçüsü ile)
  • Küme merkezi, kümenin en merkezi nesnesine, yani diğerlerine en küçük ortalama mesafeye göre güncelleştirilir.

Her adımda mesafelerin toplamı azalır; sonlu sayıda kombinasyon vardır, bu nedenle algoritmanın yerel minimumda sonlanması gerekir.


ilginç nokta +1
Cam.Davidson.Pilon

1
Neden burada (kmeans) mesafe hesaplaması yok? Varyansı hesaplamak için, her bir elemanın ortalamaya olan mesafesini hesaplamak gerekir, bu yüzden açıkça mesafe hesaplaması vardır, değil mi?
Funkwecker

Varyans genellikle mesafe olarak tanımlanmaz, ancak "kareden ortalama sapmanın beklenen değeri" olarak tanımlanır.
QUIT Vardır - Anony-Mousse
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.