K-ortalamaları uzaklık tabanlı bir kümeleme algoritması değildir .
K-, minimum kareler ataması toplamını arar , yani total_SS
kü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- μj ben)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.