Neden k-araçlar kümeleme algoritması sadece Öklid uzaklık metriğini kullanıyor?


62

Verimlilik veya işlevsellik açısından k-aracı algoritmasının örneğin uzaklık ölçüsü olarak kosinüs (dis) benzerliğini kullanmadığı, ancak sadece Öklid normunu kullanabileceği belirli bir amaç var mı? Genel olarak, K-aracı yöntemi Öklid'den başka mesafeler göz önüne alındığında veya kullanıldığında uygun olacak ve doğru olacak mı?

[@ Ttnphns ilavesi. Soru iki katlıdır. "(Olmayan) Öklid mesafesi" iki veri noktası arasındaki mesafeyi veya bir veri noktası ile küme merkezi arasındaki mesafeyi ilgilendirebilir. Şimdiye kadar cevaplarda her iki yol da ele alınmaya çalışılmıştır.]


Bu soruya yığında akış ve bu siteye yaklaşık 10 kez soru soruldu. Lütfen arama işlevini kullanın.
Anony-Mousse

3
@ Anony-Mousse: Sizinle tamamen aynı fikirdeyim ve son zamanlarda SO'da bir sürü bayrak kaldırırken, bu soruların çoğunda yinelenen kapanma sıkıntısı çekiyorum.
Nikana Reklawyks,

4
Bu, bu konuyla ilgili ilerlerken ilk gelen sayfadır.
haripkannan

Yanıtlar:


62

Kümeleme yöntemi olarak sıklıkla kullanılan bir vektör niceleme yöntemi olan K-Means prosedürü, açıkça hiyerarşik ve rastgele yakınlık ölçüsü sağlayan bazı diğer kümelemelerin aksine, kesinlikle çift ​​/ çift b / w veri noktalarını kullanmaz . Tekrar tekrar en yakın centroid noktalarına atanır ve böylece veri noktalarından bir centroid'e Öklid mesafesini kullanır . Bununla birlikte, K-Means , örtülü olarak çift taraflı Öklid mesafelerinin s / b veri noktalarına dayanmaktadır , çünkü merkezden kare sapmaların toplamı, sayıların bölünmesiyle, çift kare kare Öklid mesafelerinin toplamına eşittir.. "Centroid" terimi, Öklid geometrisinden gelmektedir. Öklid uzayında çok değişkenli ortalamadır. Öklid uzayı öklid mesafeleri ile ilgilidir. Öklid dışı mesafeler genellikle Öklid uzayını kapsamaz. Bu yüzden K-Means sadece Öklid mesafeleri içindir.

Ancak, Öklid mesafesinin s / b iki veri noktası, çeşitli alternatif yollarla gösterilebilir . Örneğin, bir yakından bağlı nokta ağırlık / kosinüs veya sayısal ürünü b. Eğer kosinüsünüz, kovaryansınız veya korelasyonunuz varsa , her zaman (1) onu (kare) Öklid mesafesine dönüştürebilir ve sonra (2) bu Öklid mesafelerinin matrisi için veri oluşturabilirsiniz (Asli Koordinatlar veya diğer metrik formlar aracılığıyla). Çok Boyutlu Ölçeklendirme) ila (3) bu verileri K-anlamına gelir. Bu nedenle, K- Means'ı çift kosinüslerle "çalışma" yapmak mümkündür ; Aslında, K-Means kümelenmesinin bu gibi uygulamaları mevcuttur. Ayrıca bakınız hakkında "mesafe matrisi için K araçları" uygulaması.

Öyle mümkün bunun bir şekilde K-araçları programlamak için doğrudan elbette İkili Öklid mesafeler, kare matris üzerine hesaplayın. Ancak, yavaş çalışacak ve bu yüzden daha etkili yol, bu mesafe matrisi için veri oluşturmaktır (mesafeleri skaler ürünlere dönüştürmek ve böylece - önceki paragrafta belirtilen geçiş) - ve sonra standart K-aracı prosedürünü uygulamaktır. Bu veri kümesine.

Ben Öklid veya Öklid dışı farklılık olmadığını konuyu değerlendiriyordu unutmayınız veri noktaları arasındaki K-araçlarla uyumludur. Centroidden (geniş anlamda, merkez veya kuasententroid) hiç bir iltihap sapmasının K-aracına dahil edilip edilemeyeceği veya "K-vasıtaları" olarak değiştirilip değiştirilemeyeceği ile ilgili değildir.

İlgili soruya bakın K-ne anlama gelir: Neden WCSS’yi minimize etmek kümeler arasındaki mesafeyi maksimize ediyor? .


Bahsettiğiniz yaklaşımın bazı örnek-dokümanlarından bahsedebilir misiniz?
meraklı

4
@Duglas, lütfen. K-araçlarının ikili mesafeler kullanmadığını söyledim . Açıkça belirtilmiştir. Centroid'e olan mesafeleri kullanır. Ancak bu otomatik olarak kümeler içindeki ikili mesafeleri optimize etmenin görevle dolaylı olarak bağlantılı olduğu anlamına gelir .
ttnphns

1
@ Ttnphns: Yazdığınız karakter sayısı But a Euclidean distance b/w two data points can be represented in a number of alternative ways. For example, it is closely tied with cosine or scalar product b/w the points. If you have cosine, or covariance, or correlation, you can always (1) transform it to (squared) Euclidean distancekadar kolay yazabiliyordunuz: distance(x,y) = 1 - cosine_sim(x,y)ya da benzer şekilde zekice ve bilgilendirici bir şey.
stackoverflowuser2010

1
Bu geçerli ve yapıcı bir eleştiriye benziyor: bir bağlantıya güvenmek yerine bilgiyi doğrudan görevinize eklemek daha iyidir; ve genellikle belirsiz olmaktan açık olmak daha iyidir. (cc @stackoverflowuser)
whuber

3
Ne ile yarışıyorsun? Bu durumda, bir bağlantıya güvenmek ya da belirsiz olmak ya da her ikisini birden yapmak daha mı iyidir? Ve neden?
whuber

46

Ayrıca bkz. @Ttnphns, aslında nokta yönündeki Öklid mesafelerini içeren k-araçlarının yorumlanması için verilen cevaba.

K-aracının yapılma şekli mesafelere bağlı değildir .

K araçları küme içi değişimleri en aza indirir. Şimdi, varyans tanımına bakarsanız, merkezden alınan kare öklid mesafelerinin toplamı ile aynıdır. (@ttnphns cevabı çiftli Euclidean mesafeleri ifade eder!)

K-araçlarının temel fikri kare hatalarını en aza indirmektir . Buraya dahil olan bir "mesafe" yok.

Alışılagelmiş mesafeleri kullanmak neden doğru değil: çünkü k-aracı diğer mesafe fonksiyonlarıyla birleşmeyi durdurabilir . Ortak yakınsama kanıtı şöyledir: atama adımı ve ortalama güncelleme adımı aynı kriterleri optimize eder . Mümkün olan sınırlı sayıda görev vardır. Bu nedenle, sınırlı sayıda iyileştirmeden sonra bir araya gelmesi gerekir. Bu kanıtı diğer mesafe fonksiyonları için kullanmak için, ortalamanın (not: k- anlamına gelir ) mesafelerinizi de en aza indirdiğini göstermelisiniz.

Bir Manhattan-mesafe k-aracı varyantı arıyorsanız, k-medyanlar var. Çünkü ortanca bilinen en iyi L1 tahmincisidir.

Rasgele mesafe fonksiyonlarını istiyorsanız, k-medoidlere bir göz atın (aka: PAM, medoidlerin etrafına bölünerek). Medoid keyfi mesafeleri en aza indirir (çünkü minimum olarak tanımlanır ) ve sadece sınırlı sayıda muhtemel medoid vardır. Yine de, ortalamadan çok daha pahalıdır.


Ama ilk aşamada her nokta kümesinin ağırlık merkezi ile en yakın Öklid mesafe ile kümede konur k-demektir ... Yani metrik bir mesafe olduğunda
meraklı

@AnonyMousse Cevabımda @ttnphns answer refers to pairwise Euclidean distances!, 1. paragrafta, açıkça hem "SS hatası" (doğrudan) hem de "çift yönlü d ^ 2" (kapalı) yorumlarına atıfta bulunuyorum .
ttnphns

3
Cevap sana katılıyorum. Operasyonel hesabınızın k-means may stop converging with other distance functionsteorik olarak homolog olduğunu unutmayın Non-euclidean distances will generally not span euclidean space.
ttnphns

çok iyi bir açıklama. Öklid mesafesine hiçbir zaman ikinci bir düşünce vermedim ve gerçekte küme toplamı karelerinin toplamını en aza indirdiğini fark etmedim.
Verena Haunschmid

Ortalamanın neden öklid mesafeleri ve kosinüs açısından mesafeleri en aza indirdiğini hala göremiyorum
meraklı

9

Burada biraz bilgiçlik edebilirim, ancak K-araçları, küme varyansları içerisinde en aza indirilecek şekilde veri noktalarına etiketler atanan belirli bir algoritmaya verilen addır ve "genel teknik" adı değildir.

K-aracı algoritması, alan için geçerli güçlü yorumlarla, çeşitli alanlardan bağımsız olarak önerilmiştir. Sadece güzel bir şekilde, aynı zamanda merkeze öklid mesafesi olduğu ortaya çıkıyor. K-araçlarının kısa bir geçmişi için, lütfen Veri Kümelemesini okuyun : K-araçlarının 50 yıl ötesinde

Öklid dışında başka metrikler kullanan başka kümelenme algoritmalarının bir bolluğu vardır. Bildiğim en genel örnek , Öklid'in özel bir durum olduğu kümelenme için Bregman Divergences'ı kullanmak .


"Öklid dışındaki ölçütler" Biraz daha bilgili olabilirim, ama bu sapmalar genel olarak ölçüt değil :)
mic

doğru :); Muhtemelen cevabı düzenlemeliyim.
user1669710

8

Bu görünüşte artık bir kanonik soru olduğundan ve henüz burada bahsedilmedi çünkü

Rdφ:RpHdd(x,y)=φ(x)φ(y)H{φ(xi)}. Birçok durumda, biz haritası hesaplayamaz açıkça, ama biz olabilir çekirdek hesaplamak . Tüm mesafe metrikleri bu modele uymuyor, ancak çoğu uyuyor ve dizgelerde, grafiklerde, görüntülerde, olasılık dağılımlarında ve daha pek çok şeyde tanımlanan fonksiyonlar var.φk(x,y)=φ(x),φ(y)H

Bu durumda, standart (Lloyd's) k-algoritmasında, kümelerine kolayca puan atayabiliriz, ancak küme merkezlerini örtük olarak temsil ederiz (Hilbert uzayındaki giriş noktalarının doğrusal kombinasyonları olarak). Giriş alanında en iyi gösterimi bulmak oldukça pahalı olan bir Fréchet ortalaması bulmayı gerektirir . Bu nedenle, küme atamaları bir çekirdeğe sahip olmak kolaydır, araçları elde etmek zorlaşır.

Aşağıdaki yazıda bu algoritma tartışılmaktadır ve spektral kümeleme ile ilgilidir:

I. Dhillon, Y. Guan ve B. Kulis. Çekirdek k anlamına gelir, Spektral Kümeleme ve Normalleştirilmiş Kesmeler. KDD 2005.


Lloyd'un algoritmasıyla çekirdek numarasının nasıl kullanılabileceğini anlamıyorum. Bana öyle geliyor ki bir centroid (hatta Hilbert uzayında bile) hesaplamak için açık haritaya ihtiyacımız olacak φ (x_i)? Kümelere puan vermek için sadece çekirdeğe ihtiyacımız var, ancak yeniden merkezlenen centroidler için, yalnızca kümeden uzaklaşamayız, çünkü centroid o kümeye atanan {φ (x_i)} 'nin ortalamasıdır. Bir şey mi eksik?
user2428107

Haklısın ki açıkça centroid hesaplayamıyoruz. Ama biz sadece onları temsil edebilir ve nokta için hesaplama mesafeler olarak . 1nijCiφ(xj)xφ(x)1nijCiφ(xj)2=k(x,x)+1ni2j,jk(xj,xj)2nijk(x,xj)
Dougal

5

Burada birçok ilginç yorum okudum, ama şunu ekleyeyim, Matlab'ın "kişisel" k-aracı uygulamasının [Öklid dışı 4 mesafeyi [veri noktaları ve küme merkezleri arasında] desteklediğini] ekleyeyim . Bununla ilgili görebildiğim belgelere ait tek yorum:

P-boyutlu uzayda, 'Uzaklık' ve bir dizgeden oluşan virgülle ayrılmış çift olarak belirtilen, simge durumuna küçültmek için kullanılan uzaklık ölçüsü

kmeans, farklı, desteklenen mesafe ölçüleri için centroid kümelerini farklı şekilde hesaplar. Bu tablo mevcut mesafe ölçütlerini özetlemektedir. Formüllerde, x bir gözlemdir (yani, bir satır X) ve c bir centroiddir (bir satır vektörü).

Sonra fonksiyonların bir listesi cve xizler. Bu nedenle, pgirdi verilerinin boyutsallığı göz önüne alındığında , önceden Öklid gömme işlemi gerçekleştirilmediği görülmektedir.

Geçmişte BTW, Matlab'ın k-araçlarını korelasyon mesafesiyle kullanıyorum ve (şaşırtıcı şekilde) yapması gerekeni yaptı.


2
Bir not olarak, desteklenen Öklid dışı mesafeler vardır cosine, (normalize giriş noktalarında sadece Öklid mesafesi olan) correlation(standardize girdileri Öklid), cityblock( , bu durumda medyan ortalama yerine kullanılır) ve hangi ( sadece ikili girişler için). L1hammingcityblock
Dougal

@Dougal, Algoritmaya ortanca nasıl yerleştirilir? K değişmez , temelde farklı bir algo anlamına gelir mi?
ttnphns

1
Ayrıca, ikili veri için "hamming mesafe" = cityblock = sq. Euclidean mesafe olduğunu unutmayın.
ttnphns

1
@ttnphns Evet, artık kesinlikle k anlamına gelmiyor, ancak bir ortanca hesapladığınız anlamına gelir. Ve evet, ikili girdilerde , fakat Matlab ortalama yerine medyanı kullanır. =L22=L1
Dougal

1
@Dougal, Matlab prosedürünün bir veri noktası ile küme merkezi arasındaki çeşitli mesafeler olduğunu söylediğine dikkat edin; bu ikili mesafelerin çeşitleri ile aynı şey değildir.
ttnphns

2

Gönderen burada :

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

Yukarıdaki şekildeki vektörler tarafından temsil edilen A ve B belgelerini ele alalım. Kosinüs her iki vektörü de normalize ederek ünite vektörleri olarak ele alır, böylece iki vektör arasındaki açının bir ölçüsünü verir. Doğru bir benzerlik ölçütü sağlar ancak büyüklüğü dikkate alınmaz. Ancak benzerlik dikkate alındığında büyüklük önemli bir faktördür.


Bu genel bir cevaptır. Neden k-aracında kosinüs benzerliği olmadığını açıklamıyor. Örneğin, hiyerarşik kümelemede yaygın olarak kullanılmaktadır
merak

3
@DLDahly: Bazen büyüklük önemlidir, bazen de gürültü. Araştırma alanına bağlıdır ve veri standardizasyonu konusudur.
ttnphns
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.