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