Çözmek istediğiniz sorun budur:
minxΣi = 1nΣj = 1kxben j| | pben- cj| |2tabi:Σj = 1kxben j= 1∀ bencj küme j'nin sentroidixben j∈ { 0 , 1 }∀ ben , j
İkili değişken , noktasına kümesine atanıp atanmadığını belirtir . Semboller ve göstermektedirler koordinatları inci noktası ve ağırlık merkezi inci küme, sırasıyla. Her ikisi de , burada veri noktalarının boyutluluğudur. i j p i c j i j R d dxben jbenjpbencjbenjR,dd
İlk kısıtlamalar grubu, her noktanın tam olarak bir kümeye atanması gerektiğini söyler. İkinci sınırlama grubu (matematiksel olarak tanımlanmadığımız), küme sentroidinin koordinatlarının aslında değişkenlerinin değerlerine bağlı olduğunu söylüyor . Örneğin bu kısıtlamayı şu şekilde ifade edebiliriz:
x i j c j = ∑ i x i j p i jjxben j
cj= ∑benxben jpben jΣbenxben j
Bununla birlikte, bu doğrusal olmayan kısıtlamalarla uğraşmak yerine, K-Means'de (yaklaşık olarak) orijinal sorunumuzla aynı optimal çözüme sahip farklı bir sorunu :
minxΣi = 1nΣj = 1kxben j| | pben- yj| |2tabi:Σj = 1kxben j= 1∀ benxben j∈ { 0 , 1 }∀ ben , jyj∈ Rd∀ j
Centroidlere olan mesafeyi en aza indirmek yerine, daha iyi bir çözüm sağlayacak herhangi bir nokta kümesine olan mesafeyi en aza indiririz. Bu noktaların tam olarak centroid olduğu ortaya çıkıyor.
Şimdi bu sorunu çözmek için, yakınsamaya kadar bu algoritmanın 2-3 adımında tekrarlıyoruz:
- değişkenlerine bazı değerler atayınyj
- değişkenleri için değerleri düzeltin ve değişkenleri için en uygun değerleri bulun .yjxben j
- değişkenlerinin değerlerini düzeltin ve değişkenleri için en uygun değerleri bulun .xben jyj
Her adımda, önceki adımda bulunan çözüm mevcut adımın arama alanında olduğu için, hedef fonksiyon iyileşir (veya algoritma yakınlaştığında aynı kalır). Bununla birlikte, her adımdaki bazı değişkenleri düzelttiğimizden, bu, en uygunluğu garanti etmeyen yerel bir arama prosedürüdür.
Neyse ki, adım 2 ve 3'teki optimizasyon problemleri kapalı formda çözülebilir. Bildiğimiz Eğer
(her noktası atanır küme hangi bildiğimiz eğer yani), en iyi değerler değişkenlerin kümeleri centroids bulunmaktadır. değerlerini biliyorsanız, değişkenleri için en iyi seçim her noktayı en yakın . xben jyjyjxben jyj