Benzerlik puanlarına dayalı kümeleme


19

Biz elemanları bir dizi olduğunu varsayalım E ve bir benzerlik ( değil mesafe ) işlevi sim (örnek, ej) iki eleman arasında ei, ej ∈ e .

Sim kullanarak E öğelerini (verimli bir şekilde) nasıl kümelendirebiliriz ?

k , örneğin, belirli bir k gerektirir, Kanopi Kümelemesi iki eşik değeri gerektirir. Bu kadar önceden tanımlanmış parametreler istemezsek ne olur?

Not, bu sim merdivenler bir metrik olmayan (yani üçgen eşitsizliği veya tutun da olmayabilir). Dahası, kümelerin ayrık olup olmadığı önemli değildir ( E'nin bölümleri ).


2
Eğer vurgulamıştır- Acaba neden değil mesafe var. Burada bir uzman değilim, ancak temelde tersini düşünerek böyle bir benzerliği gerekirse bir mesafeye dönüştürmenin mümkün olup olmayacağını merak ediyorum. Bundan bağımsız olarak, parametrelerden tamamen arınmış kümeleme algoritmaları olduğundan şüpheliyim, bu nedenle her durumda bazı ayarların yapılması gerekecektir. Eğer k-Means bakıldığında, bir (o, özellikle gerçek değerli özelliklere sahip olduğunu varsayabiliriz olabilir birkaç unsur "ortalama" almak)?
Marco13

4
K araçlarını gerçekleştirmek için k bilmenize gerek yoktur. Optimum bulmak için değişken k ile kümelenebilir ve küme varyansını kontrol edebilirsiniz. Alternatif olarak, Gauss karışım modellerine veya kümelenmenize yardımcı olacak şeyler gibi başka bir restorana gitmeyi düşünebilirsiniz.
cwharland

2
Belirli bir nedenden dolayı soruları sordum: Eğer k-Means uygulayabilirseniz, ancak tek sorun ilk "k" yi bulmaksa , bir alternatif olarak en.wikipedia.org/wiki/Self-organizing_map'i düşünebilirsiniz . Bazı güzel özelliklere sahiptir ve temel olarak k-Ortalamalara "benzer" davranır, ancak başlangıçtaki "k" nin ayarlanmasını gerektirmez. Muhtemelen hazır bir çözüm değildir, çünkü ek ayarlama parametreleri vardır (ve eğitim hesaplama açısından pahalı olabilir), ancak yine de bir göz atmaya değer.
Marco13

2
İlk k seçimi kümeleme sonuçlarını etkiler, ancak bir küme için kullandığınız her bir k değeri için bu kümedeki tüm nesnelerin göreceli benzerliğini söyleyen bir kayıp işlevi veya büyük olasılıkla bir doğruluk işlevi tanımlayabilirsiniz. Bu benzerlikteki varyansı en aza indiren k'yi seçersiniz. GMM ve diğer dirichlet süreçleri bilmeme problemini oldukça iyi halleder. Bu konuda gördüğüm en iyi kaynaklardan biri Edwin Chen eğitimidir .
cwharland

4
Sadece bir düşünce: Benzerlik puanınız 1 olarak normalleştirilmişse , o zaman 1-sim(ei, ej) = Distance. Mesafe metriğiyle, örneğin hiyerarşik kümeleme uygulayabilirsiniz. Kökten aşağı inerken, ayrıntı düzeyi kümelerinin hangi sorunlarınız için anlamlı olacağını göreceksiniz.
Olexandr Isayev

Yanıtlar:


9
  1. Normalde bir metrik kullanan bir dizi kümeleme algoritmasının, metrik özelliklere (değişme haricinde) güvenmediğini düşünüyorum, ancak burada buna sahip olacağını düşünüyorum. Örneğin, DBSCAN bir nokta etrafında epsilon mahalleleri kullanır; orada üçgen eşitsizliğinin önemli olduğunu söyleyen hiçbir şey yoktur. Bu durumda muhtemelen DBSCAN kullanabilirsiniz, ancak durumunuzda verimli aramalar yapmak için bir çeşit standart dışı mekansal dizin yapmanız gerekebilir. Epsilon-neighbourhood sürümünüz diğer yollardan ziyade sim> 1 / epsilon olacaktır. K-araçları ve ilgili algoritmalar ile aynı hikaye.

  2. Benzerliğinizden bir metrik oluşturabilir misiniz? Bir olasılık: tüm k için dist (ei, ej) = min (sim (ei, ek) + sim (ek, ej)) ... Alternatif olarak, sim (ei, ej) <sim (ei, ek) + sim (ek, ej) + d, tüm k ve bazı pozitif sabit d? Sezgisel olarak, büyük sim değerleri birbirine daha yakın anlamına gelir: 1 / sim metrik benzeri mi? 1 / (sim + sabit) ne olacak? Tüm k için min (1 / sim (ei, ek) + 1 / sim (ek, ej)) ne olacak? (sonuncusunun metrik olduğu garanti edilir, btw)

  3. Bir metriğin alternatif bir yapısı, gömme işlemi yapmaktır. İlk adım olarak, ei -> xi puanlarınızı eşleştirmeyi deneyebilirsiniz, böylece xi toplamı en aza indirir (abs (sim (ei, ej) - f (dist (xi, xj))), bazı uygun f ve metrik işlevleri için f işlevi, katıştırmadaki mesafeyi benzerlik benzeri bir değere dönüştürür; biraz denemeniz gerekir, ancak 1 / dist veya exp ^ -dist iyi başlangıç ​​noktalarıdır. Burada fikir, xi üzerinde geleneksel kümelemeyi kullanabilirsiniz.Buradaki fikir, gömmedeki mesafelerinizi benzerlik değerlerine neredeyse (en uygun anlamda) dönüştürebilmenizdir, böylece doğru şekilde kümelenirler.

  4. Önceden tanımlanmış parametrelerin kullanımında, tüm algoritmaların bazı ayarları vardır. DBSCAN kümelerin sayısını bulabilir, ancak yine de bazı parametreler vermeniz gerekir. Genel olarak, ayarlama, kümelenmenin iyiliğini (kümeleme algoritmasının kendisi tarafından sağlanan veya ayrı ayrı hesaplanan) değerlendirilen bazı işlevlerle birlikte, ayarlanabilir parametreler için farklı değerlere sahip algoritmanın birden çok çalışmasını gerektirir. verileriniz değişmez, bir kez ayarlayabilir ve ardından bu sabit parametreleri kullanabilirsiniz; değişirse, her çalışma için ayar yapmanız gerekir. Bunu, her çalışma için ayarlayarak ve daha sonra bir çalışmadaki parametrelerin diğerinde ne kadar iyi çalıştığını karşılaştırarak, bunun için özel olarak ayarlanan parametrelere göre bulabilirsiniz.


8

Alex, DBSCAN'ın burada kullanmak için en iyi kümeleme algoritması olduğu imalarına bir parça geri dönmek zorunda kalmamıza rağmen bir dizi iyi noktaya değindi. Uygulamanıza ve hızlandırılmış indeksler kullanıp kullanmadığınıza (pek çok uygulamada bulunmuyorsa) bağlı olarak, zaman ve alan karmaşıklığınızın her ikisi de O(n2)idealden uzak olacaktır .

Şahsen, go-to kümeleme algoritmalarım kazananların hepsini alır kümeleme için OpenOrd ve bulanık kümeleme için FLAME. Her iki yöntem de kullanılan metriklerin benzerlik veya mesafe olup olmadığına kayıtsızdır (özellikle FLAME her iki yapıda da neredeyse aynıdır). OpenOrd'un Gephi'de uygulanması, Gephi paketinde O(nlogn)bulunan diğer kümeleme algoritmalarından daha ölçeklenebilir olduğu bilinmektedir.

Öte yandan FLAME, bulanık bir kümeleme yöntemi arıyorsanız harika. FLAME'nin karmaşıklığını belirlemek yinelemeli bir süreç olduğu için biraz daha zor olsa da, ikinci dereceden olduğu ve knn'den çalışma hızında benzer olduğu gösterilmiştir.


5

DBSCAN (ayrıca bkz: Genelleştirilmiş DBSCAN) mesafe gerektirmez. Tek ihtiyacı olan ikili bir karardır . Yaygın olarak "mesafe <epsilon" kullanılır, ancak hiçbir şey "benzerlik> epsilon" kullanamayacağınızı söylemez. Üçgen eşitsizliği vb. Gerekli değildir.

Yakınlık yayılımı, adından da anlaşılacağı gibi, benzerlikler kullanır.

Hiyerarşik kümeleme, belki Ward bağlantısı haricinde, herhangi bir varsayımda bulunmaz. Birçok uygulamada, benzerlikleriniz olduğunda negatif mesafeleri kullanabilirsiniz ve bu da işe yarayacaktır. Çünkü gereken tek şey min, max ve <.

Çekirdek k-ortalamaları benzerlik iyi bir çekirdek işlevi ise çalışır. Bunu, Öklid mesafesinin benzerlik fonksiyonunuza karşılık geldiği farklı bir vektör uzayında k-araçlarını hesaplama olarak düşünün. Ama sonra k'yi bilmelisin.

PAM (K-medoidler) çalışmalıdır. Her nesneyi en benzer medoid'e atayın, ardından yeni medoid ile en yüksek ortalama benzerliğe sahip nesneyi seçin ... üçgen eşitsizliğine gerek yok.

... ve muhtemelen çok daha fazlası. Kelimenin tam anlamıyla yüzlerce kümeleme algoritması var. Çoğu IMHO çalışmalıdır . Çok azının aslında metrik özellikler gerektirdiği görülüyor. K-Ortalamaları muhtemelen en güçlü gerekliliklere sahiptir: varyansı (mesafe veya benzerlik değil) ve araçları hesaplayabilmeniz gerekir.


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.