Dün biri bana "şirkette yazdığım en karmaşık algoritma k-means yea" diye hava attı. Düşündüm de şimdiki işimde kullandığım en karmaşık algoritma DFS. O da abuk subuk bir yerde. Altta kalmamak için ben de k-means yazayım neyim eksik dedim .
K-means bir çeşit sıkıştırma algoritması olarak da kullanılabiliyor, Bishop'un kitabında örneği de var. Eğer bir resmi k-means ile sıkıştırmak istiyorsak standart k-means'i pikseller üzerinde tek boyutta uygulayabiliriz. Yanlış hatırlamıyorsam Bishop kitabında her bit için uyguluyordu, sadece 3 renk için uygulamak daha kolayıma geldi .
Elimizdeki resim şu olsun (kaynak);
K=2 ile sıkıştırdığımızda elimizdeki resim aşağıdaki gibi olacak;
K arttıkça resmin orijinale yaklaşmasını bekliyoruz. K=5 ile sıkıştırdığımızdaysa resim aşağıdaki gibi olacak;
Ben kendime C#'ta k-means yazmadı dedirtmem! (Bu arada cidden Python'daki list comprehension'lar hayat kurtarıyormuş, bir kez daha anlamış oldum).