boyutsuz veriler için kümeleme algoritması


12

Binlerce noktadan oluşan bir veri kümesine ve iki nokta arasındaki mesafeyi ölçmenin bir aracına sahibim, ancak veri noktalarının boyutu yok. Bu veri kümesinde küme merkezleri bulmak için bir algoritma istiyorum. verinin boyutları olmadığı için, bir küme merkezinin birkaç veri noktasından ve bir toleranstan oluşabileceğini ve kümedeki üyeliğin, bir veri noktasının küme merkezindeki her veri noktasına olan uzaklığının ortalamasıyla belirlenebileceğini hayal ediyorum.

Bu sorunun iyi bilinen bir çözümü varsa lütfen beni affet, bu tür bir sorun hakkında çok az şey biliyorum! (çok sınırlı) araştırmam sadece boyutsal veriler için kümeleme algoritmalarını ortaya çıkardı, ancak bariz bir şeyi kaçırırsam önceden özür dilerim.

teşekkür ederim!


Boyutsuzluk neden bu sorunu özel kılıyor?
Raphael

1
Kümeleme için gördüğüm bazı algoritmalar (gerçekten sadece k-araçları) boyutsuz verilerle mümkün olmayan tohumlar olarak rastgele veri noktalarının oluşturulmasını gerektirir. Bu nedenle, özel gereklilik, küme merkezlerinin bir dizi mevcut veri noktasıyla (belki de ağırlıklı) temsil edilmesi gerektiğidir.
paintcan

Yanıtlar:


15

Mesafe işlevi bir metrikse, merkez kümelemesini (bir topun maksimum yarıçapının en aza indirildiği yerde) veya medyan kümelemesini (küme merkezlerine olan mesafelerin toplamını en aza indirir) kullanabilirsiniz. merkez kümelemesi kolaydır: sadece uzak noktaları seçin ve üçgen eşitsizliği ile 2-yaklaşım elde edeceğiniz garanti edilir (bu Gonzalez nedeniyle eski bir sonuçtur).k k kkkkk

medyan kümelenmesi için gözden geçirilemeyecek kadar çok iş vardı. UCLA'dan Michael Shindler'in ana fikirleri güzel bir şekilde inceliyor .k

Her iki problem de genel olarak NP-zordur ve keyfi bir faktör dahilinde yaklaşık olarak zordur. Bir metrik olma koşulunu düşürürseniz, yaklaşıklık açısından işler daha da kötüleşir.

Uygulamanız için uygun olabilecek başka bir daha sezgisel yaklaşım, mesafe matrisinizi bir Öklid uzayına gömmek için MDS (çok boyutlu ölçeklendirme) gibi bir teknik kullanmak ve daha sonra birçok farklı Öklid kümeleme yönteminden (veya kümeleme anlamına gelir) kullanmaktır. ). Mesafe fonksiyonunuzun bir metrik olduğundan eminseniz, Öklid uzayına biraz daha akıllı bir gömme yapabilir ve cevabınızın kalitesi hakkında kanıtlanabilir (zayıf da olsa) bir garanti alabilirsiniz.k

Sonuçta, çoğu kümelenme probleminde olduğu gibi, son seçiminiz uygulamaya, veri boyutunuza vb. Bağlıdır.


3
Hızlı ve net genel bakış için teşekkürler. Soruma cevap verip vermediğinizi belirlemek en az birkaç günümü alacak.
Sorunumu

5

Ayrıca , her bir öğe çifti için aynı kümeye mi yoksa farklı kümelere mi ait olduklarını belirten girdi bilgisi olan korelasyon kümelemesi de vardır.


evet, bu başka iyi bir örnek. Ve elbette Warren bu konuda uzmandır! OP giriş +/- olsa da, ya da eşikleme ile dönüştürülmüş olabilir bilmiyorum. eğer öyleyse, bu kesinlikle uygun bir seçenektir.
Suresh Venkat

5

Sadece iyi ampirik performans arıyorsanız, afinite yayılım algoritması genellikle k-medyanlardan daha iyi çalışır. Algoritmayı daha ayrıntılı olarak açıklayan birçok dilde ve yayında kod vardır: http://www.psi.toronto.edu/index.php?q=affinity%20propagation

En üst düzeye çıkarmaya çalıştığı hedef:

is(i,ci)

burada , nokta çiftleri (örn. negatif mesafe) arasında tanımlanan bir benzerlik ölçüsüdür ve ait kümeyi verir . de verilen büyük veya küçük kümeleri tercih edip etmediğinizi kontrol eden bir ek parametre daha vardır .c ic i s ( i , i )scicis(i,i)


5

Sorunuz, iyi hesaplama süresine sahip bir algoritma aradığınız anlamına geliyor. Köşelerinizin (veya noktalarınızın) boyutu, verilerinizin ağırlıklı bir grafik temsilini oluşturmak ve grafiği kümelemek için Markov Küme Algoritması'nı (MCL) kullanmak olacaktır.

http://www.micans.org/mcl/

MCL, yoğun altgrafları bulmak için ağırlıklı ve ağırlıksız grafiklerde rastgele yürüyüşlere dayanır. Büyük grafikleri işleyebilir ve birçok iyi bilinen, iyi kullanılan biyoinformatik programda (BLAST gibi) kullanılmıştır. -Boucher


1

Raphael, k-NN algoritması gerçekten bir kümeleme algoritması değil, değil mi? bir düğümün k komşularını tekrar tekrar çekmedikçe?
Suresh Venkat

Birbirimizin en yakın grubundaki düğümler arasında bir kenar çiziyoruz . Ortaya çıkan grafikte, uçurumlar (neredeyse uçurumlar) bir tür küme olmalıdır. Grafiği oluşturduğumuz için, bu kliklerin tanımlanmasının çok zor olmaması gerektiğini düşündüm, ama tamamen düşünmedim. k
Raphael
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.