• K-ortalama (K-means) Kümeleme Yöntemi

    Kümeleme algoritmaları giriş örnekleri boyunca benzer veri noktalarının gruplarını bulmakta kullanılır. Bunlardan birisi olan k-means algoritmasından biraz bahsetmek istiyorum. K-means kümelemesi eğitim setinden verilen sayı kadar küme elde etmede kullanılan etkili bir algoritmadır. Başlangıç olarak küme merkezlerini veri içinde rastgele seçeriz. Seçilen ilk merkezler için veri setimizi kümeleriz. Bu sayede veri setimizi istediğimiz sayıda küme sayısına bölmüş oluruz. Ancak başlangıçta küme merkezlerini rastgele seçtiğimiz için ilk iterasyonda istenilen başarım büyük ihtimalle sağlanmaz. Bu yüzden elde ettiğimiz kümelerin ortalamasını alarak yeni küme merkezlerini hesaplarız ve elde ettiğimiz yeni merkezlere göre verimizi yeniden kümeleriz. Bu işlem sürekli yapıldığında her iterasyonda sonuç daha da iyileşecektir.

    Burada veri setimizin elemanlarının hangi kümeye dahil olacağını benzerlik ölçütlerini kullanarak belirleriz. Benzerlik ölçütü olarak oklit uzaklığı sıkça kullanılır. Ben oklit uzaklığı yanında faz korelasyonu da kullandım ve faz korelasyonunun oklite göre kümeleme başarımını arttırdığını gözlemledim.

    Burada dikkat edilmesi gereken bir diğer durum ise, başlangıçta var olan rastgelelikten dolayı aynı küme içinde birden fazla birbirine yakın temsilci seçilebilme ihtimalidir. O yüzden kümeleme sırasında ayrıca kümelerin varyansları ve kümelerin birbirlerine olan yakınlığının test edilmesi gerekebilir. Benzer kümeler birleştirilip tek küme haline getirilirken yeni kümelerde, küme içi değişintisi (varyansı) çok yüksek olanlardan oluşturulabilir. Bu işlem k-means algoritmasının daha hızlı, daha doğru kümeleme işlemini gerçeklenmesine neden olur.

    K-means algoritmasının daha iyi anlaşılması için aşağıdaki gibi ifade edebiliriz.

    Yukarıdaki şekli incelersek, ufak mavi noktaların tümü bizim verimizi temsil etsin. Rastgele olarak 5 adet küme merkezi seçelim. Bu seçtiğimiz merkezler kırmızı ile gösterilen noktalar olsun. Geri kalan tüm mavi noktaların bu seçtiğimiz kırmızı noktalara yani küme merkezlerine olan uzaklıkları hesaplanır. Mavi ile gösterilen veri elemanları hangi noktaya daha yakın iseler o noktanın temsil ettiği kümeye dahil edilirler. Mavi noktaları dahil oldukları kümelere göre ayırmaya kalkarsak yaklaşık olarak siyah ayırtaç çizgilerinin gösterdiği gibi bir kümeleme sonucu elde edilir. Siyah ayırtaç çizgilerin verimizi şu an için çokta iyi kümeleyemediği görülüyor. O yüzden oluşturulan her kümenin ortalamasını alıyoruz. Elde edilen ortalama değerlerde yeşil noktalara denk gelmektedir.

    Verimizde elde ettiğimiz küme merkezlerinin (yeşil noktalar) konumlarına bakarsak kimilerinin birbirlerine çok yakın ve kimisininde küme içi değişintinin çok büyük olduğunu görürüz. Yukarıdada gösterildiği gibi yakın olan küme merkezlerini birleştirerek tek küme (yeni küme merkezleri bu sefer yukarıda gösterildiği gibi kırmızı noktalarla iade ediliyor)  ve küme içi değişintisi çok yüksek olan kümeleri iki ayrı küme gibi böler, yeni kümelerin orta noktalarını hesaplarız.

    Yukarıda da görüldüğü gibi verimizin kümelenmiş hali ve kümelerin merkezlerini yaklaşık olarak bulmuş oluruz. Yalnız dikkat edilecek bir diğer nokta tek iterasyonda yukarıdaki gibi bir başarım sağlamanın zor olduğudur. Bu yöntemin sonlandırılması için önceden belli bir iterasyon sayısı ve küme merkezlerindeki minimum değişim oranı seçilmelidir. Küme merkezleri bir zaman sonra değişmez yada çok az değişiklik gösterirler. Bu durumda kümeleme yöntemimizi sonlandırırız.

    Faydalı olması dileğiyle iyi çalışmalar…

    Cumartesi, Şubat 14th, 2009 at 00:32
Henüz yorum yapılmamış.

Yorum yaz

XHTML: Bu etiketleri kullanabilirsin: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Yukarı çık