Doğru küme sayısına nasıl karar verilir?


54

Küme merkezlerini bulur ve çok iyi bilinen bir algoritma olan ve neredeyse net ağdaki her makine öğrenme paketinde bulunan k-ortalama kümelemesinde k farklı küme kutularına puanlar atarız . Ancak bence eksik ve en önemli kısım, doğru bir k seçimidir. Bunun için en iyi değer nedir? Ve en iyisi ile ne kastedilmektedir ?

MATLAB'ı, siluet alanlara bakmanın burada tartışılan k konusunda karar vermenin bir yolu olarak verildiği bilimsel hesaplama için kullanıyorum . Bununla birlikte, Bayesian yaklaşımları ile daha çok ilgilenirdim. Herhangi bir öneriniz takdir edilmektedir.


2
Güzel Soru ...


Kümelenme için görselleştirme altında , (KEM) k-kümelerini resmedmenin ve çeşitli k'lerin etkisini MST'leri kullanarak tek seferde görmenin bir yolu var.
denis

Ben yarım düzine yöntemleriyle bu soruyu yanıtladı Rüzerinde burada
Ben

1
Kümelerin "en iyi" sayısına karar vermek küme çözümlerini farklı k ile karşılaştırmak anlamına gelir - ki bu çözüm "daha iyi" dir. Bu bakımdan, görev kümelenme yöntemlerinin karşılaştırılması ile aynı görünmektedir - bu verileriniz için "daha iyi" dir. Genel kurallar burada .
ttnphns

Yanıtlar:


28

Bu, yığın akışında birkaç kez soruldu: burada , burada ve burada . Buradaki kalabalığın bu soru hakkında ne düşündüğüne (veya bunun küçük bir türevine) bir göz atabilirsiniz.

Ayrıca bu soruya kendi cevabımı kopyalayayım, stackoverflow.com'da:

Ne yazık ki, otomatik olarak "sağ" K'yı ayarlamanın bir yolu yoktur ve ne "sağ" ın bir tanımı da yoktur. "Doğru K" yi ayarlayabilecek basit veya karmaşık ilkeli bir istatistiksel yöntem yoktur. Sezgisel, bazen işe yarayan, bazen işe yaramayan kurallar vardır.

Durum, kümelenme yöntemlerinin çoğunun bu tip parametrelere sahip olması nedeniyle daha geneldir ve bunun kümelenme / denetimsiz öğrenme araştırma topluluğunda büyük bir açık sorun olduğunu düşünüyorum.


+1 Bunu okuduktan sonra - bana çok sezgisel geliyor ... ama bunu daha önce hiç düşünmediğimi söylemeliyim. aslında PCA'daki PC sayısını seçme probleminin K-ortalamadaki küme sayısını seçme problemine eşdeğer olduğu ...
Dov

2
@Dov bu iki şey pek eşit değil. Bir PCA çözümünün kalitesini incelemek için kullanılabilecek özel önlemler vardır (en önemlisi yeniden yapılanma hatası, aynı zamanda yakalanan sapma yüzdesi vb.) Ve bunlar (çoğunlukla) tutarlı olma eğilimindedir. Bununla birlikte, kümelemede genellikle hiç kimse "doğru cevap" yoktur - bir kümeleme bir metrik değer ile diğerinden daha iyi olabilir ve bunun tersi de başka bir ölçüm kullanarak doğru olabilir. Bazı durumlarda, aynı ölçüm altında iki farklı kümelenme aynı derecede olası olabilir.
tdc

@tdc ama bu en.wikipedia.org/wiki/… bu daha fazla mı yoksa az mı, bu gelişmişoutcomes.com/ docs/WebSiteDocs/PCA/… ?
Dov

2
@Dov Evet, birbirleri gibi "az ya da çok" dırlar, ama sadece küme sayısını seçme sorununun PC sayısını seçmekten çok daha zayıf olduğunu söylüyordum - yani "eşdeğer" değillerdi.
tdc

1
+1 Haklısın. En iyi k üzerinde karar vermek için başka bir model veya varsayım getirdik ama sonra soru şu ki neden bu modelin veya varsayımın en iyisi olduğu ortaya çıkıyor ...
petrichor

19

İlk önce bir uyarı. Kümelemede genellikle tek bir "doğru cevap" yoktur - bir kümelenme bir metrikten diğerine göre daha iyi olabilir ve bunun tersi başka bir metrik kullanılarak doğru olabilir. Bazı durumlarda, aynı ölçüm altında iki farklı kümelenme aynı derecede olası olabilir.

Bunu söyledikten sonra Dirichlet İşlemlerine bir göz atmak isteyebilirsiniz . Ayrıca bu öğreticiye bakınız .

Bir Gauss Karışımı modeliyle başlarsanız, k-aracıyla aynı problemi yaşarsınız - küme sayısını seçmek zorundasınız. Model kanıt kullanabilirsiniz, ancak bu durumda sağlam olmayacaktır. Bu yüzden püf noktası, karışım bileşenlerinden önce Dirichlet Süreci kullanmaktır; bu da potansiyel olarak sınırsız sayıda karışım bileşenine sahip olmanıza izin verir, ancak model (genellikle) otomatik olarak "doğru" bileşen sayısını (varsayımların altında) bulacaktır. model).

Önceden Dirichlet İşleminin konsantrasyon parametresini belirtmeniz gerektiğini unutmayın . Küçük değerleri için, DP'den alınan örneklerin büyük ağırlıkları olan az sayıda atomik ölçümden oluşması muhtemeldir. Büyük değerler için, çoğu numunenin belirgin (konsantre) olması muhtemeldir. Konsantrasyon parametresinde bir hiper önceliği kullanabilir ve daha sonra verilerini değerden çıkartabilirsiniz ve bu hiper öncü, birçok farklı olası değere izin verecek şekilde uygun şekilde belirsiz olabilir. Bununla birlikte, yeterli veri verildiğinde, konsantrasyon parametresi çok önemli olmaktan çıkacak ve bu hiper-öncelik bırakılabilir.ααα


1
Hangi konsantrasyon parametresi altında bir Dirichlet işlemi? Aynı orijinal soruya eşdeğerdir, k-ne k altında demektir? Her ne kadar Direchlet dağıtımının bazı karmaşık algoritmaların gerçek dünya verileri üzerindeki davranışını daha iyi anladığına katılıyorum.
carlosdc

@carlosdc iyi bir noktaya, ben konsantrasyon parametresi hakkında tartışma biraz içerecek şekilde cevap güncelledik
tdc

1
Tecrübelerime göre, alfa gibi sürekli bir konsantrasyon parametresini öğrenmek, sonlu bir karışım modelindeki küme sayısını belirlemekten daha kolaydır. Eğer sonlu karışım modeli ile sopa ve Bayes çakmak isterseniz, geri dönüşümlü atlama MCMC (orada onlinelibrary.wiley.com/doi/10.1111/1467-9868.00095/abstract )

1
Mükemmel cevap. Ben Revisiting K-Means: Bayesian Nonparametrics ile Yeni Algoritmalar adlı makaleyi eklerdim . Bu K-Means'a basit bir "Sürekli" yaklaşım verir. Ardından, optimum değeri bulmak için optimizasyonu kullanmak kolaydır.
Royi

9

Kullandığım Dirsek yöntemi :

  • K = 2 ile başlayın ve kümelerinizi ve eğitim ile gelen maliyeti hesaplayarak her adımda 1 arttırmaya devam edin. K için bir miktar değerde maliyet çarpıcı bir şekilde düşer ve bundan sonra daha da artarsanız platoya ulaşır. Bu istediğiniz K değeridir.

Bunun sebebi, bundan sonra, küme sayısını arttırmanızdır; ancak yeni küme, var olanların bir kısmına çok yakındır.


Kulağa L Yöntemi'nin (cevabına bakınız) değerlendirdiği ilke gibi geliyor.
Şubat'ta

6

Küme boyutları hem verilerinize hem de sonuçları ne için kullanacağınıza bağlıdır. Verilerinizi kategorilere ayırmak için kullanıyorsanız, ilk önce kaç tane kategori istediğinizi hayal etmeye çalışın. Veri görselleştirmesi için yapılandırılabilir hale getirin, böylece insanlar hem büyük kümeleri hem de küçükleri görebilir.

Otomatikleştirmeniz gerekirse, artan k'ya bir ceza eklemek ve en uygun kümeyi bu şekilde hesaplamak isteyebilirsiniz. Ve sonra sadece bir kaç küme isteyip istemediğinize veya çok az istediğinize bağlı olarak k ağırlığındasınız.



5

Coğrafi bir uygulamadaki küme sayısını belirlemek için "L Metodu" nu kullanmayı başardım (örneğin, teknik olarak Öklid olmasa da esasen bir 2d problemi).

L Yöntemi burada açıklanmıştır: Hiyerarşik Kümeleme / Segmentasyon Algoritmaları Stan Salvador ve Philip Chan'daki Küme / Segment Sayısının Belirlenmesi

Temel olarak bu, k'nin çeşitli değerlerine uygunluğu değerlendirir. Grafikte diz ile temsil edilen optimum k değeri ile "L" şeklinde bir grafik görülür. Diz noktasını bulmak için basit bir çift çizgi en küçük kareler yerleştirme hesaplaması kullanılır.

Yöntemi çok yavaş buldum çünkü yinelemeli k araçları k'nin her değeri için hesaplanmalı. Ayrıca k-means'in çoklu çalışmalarda en iyi sonucu verdiğini ve sonunda en iyisini seçtiğini gördüm. Her veri noktasının sadece iki boyutu olmasına rağmen, basit bir Pisagor mesafesi kullanılamadı. Yani bu çok hesaplama.

Bir düşünce, k (diğer) değerlerinin hepsini hesaplamaların yarısına atlamak ve / veya k-aracı yinelemelerinin sayısını azaltmak ve ardından daha doğru bir uyum sağlamak için elde edilen eğriyi hafifçe pürüzsüzleştirmektir. Bunu StackOverflow - IMHO'da sordum , düzeltici soru hala açık bir araştırma sorusu.


4

k

Peki ya veri kümeniz gerçekten Voronoi programına uymuyorsa?

kk

k


3
Her ne kadar birinci paragrafta K-araçlarının tanımı yanlış olmasa da, bazı kimseleri bu metodu orijinal verilere dayanarak Voronoi bölümlemesi ile dengelemek için yanlış yönlendirebilir . Bu böyle değil: bölüm, orijinal verilerin hiçbiriyle çakışmayacak (ve genellikle olmayacak) küme araçlarının konumlarına dayanmaktadır.
whuber

3

Genel olarak, iki farklı yoldaki küme sayısını seçebilirsiniz.

  1. bilgi odaklı: İş bakış açısıyla kaç kümeye ihtiyacınız olduğuna dair bazı fikirlere sahip olmalısınız. Örneğin, müşterileri kümeliyorsunuz, kendinize sormalısınız, bu müşterileri aldıktan sonra ne yapmalıyım? Farklı kümeler için farklı tedavi olabilir misiniz? (örneğin, e-posta veya telefonla reklam). O zaman kaç tane olası tedavi planlıyorsun? Bu örnekte, 100 kümenin çok anlamlı olmayacağını söylersiniz.

  2. Veri odaklı: Daha fazla sayıda küme fazla uyuyor ve daha az sayıda küme uygun değil. Kaç kümenin iyi olduğunu görmek için verileri her zaman ikiye bölebilir ve çapraz doğrulamayı çalıştırabilirsiniz. Kümelemede, denetimli ayara benzer şekilde hala kayıp işlevine sahip olduğunuzu unutmayın.

Son olarak, gerçek dünyada her zaman birlikte sürülen bilgi ve verileri birleştirmelisiniz.


2

Henüz kimse işaret etmediğinden, bunu paylaşacağımı düşündüm. Bayesian bilgi kriterini (BIC) kullanarak uygun sayıda kümeyi tahmin eden X-means ( bu bağlantıya bakınız ) adı verilen bir yöntem vardır . Temel olarak, bu, K'yi farklı K'ler ile denemek, her K için BIC'yi hesaplamak ve en iyi K'yı seçmek gibi bir şey olacaktır.

Bir de bulunmaktadır weka uygulama ayrıntıları bulunabilir, burada .


0

Başka bir yaklaşım, bireyleri farklı uzunluklarda kromozomlara sahip olan evrimsel bir algoritma kullanmaktır. Her birey bir aday çözümdür: her biri centroid koordinatlarını taşır. En iyi kümelenme değerlendirme skorunu veren bir çözüme ulaşmak için centroid sayısı ve koordinatları geliştirilmiştir.

Bu yazıda algoritma açıklanmaktadır.

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.