k-Means kümeleme algoritması, data mining dünyasında en çok kullanılan algoritmaların başında yer almaktadır. En çok kullanılan gözetimsiz öğrenme algoritmalarının başında gelir. 1967 yılında J. MacQueen tarafından geliştirişmiştir. K-means’in atama mekanizması her verinin sadece bir kümeye ait olabilmesine izin verir
Kümeleme algoritmaları ile Sınıflandırma algoritmaları arasında bir takım farklılıklar bulunmaktadır. k-means algoritması bir kümeleme algoritmasıdır. Kümeleme algoritmaları otomatik olarak verileri daha küçük kümelere yada alt kümelere ayırmaya yarayan algoritmalardır. Algoritma istatistiksel olarak benzer nitelikteki kayıtları aynı gruba sokar. Bir elemanın yalnızca bir kümeye ait olmasına izin verilir. Küme merkezi kümeyi temsil eden değerdir.
Algoritmanın isminde yer alan "k" harfi, aslında küme sayısını belirtir: Algoritma, hata hesaplamada yaygın olarak kullanılan Karasel Hata Fonksiyonunu en aza indirgeyecek "k" küme sayısını da arar. Verilen "n" sayıdaki veri seti "k" tane kümeye bu hata fonksiyonunu en aza indirgeyecek şekilde yerleştirilir. Bu nedenle küme benzerliği kümedeki değerlerin ortalamaya yakınlıkları ile ölçülür. Bu da kümenin ağırlık merkezidir. Kümenin merkezinde yer alan değer kümenin temsilci değeridir ve medoid olarak adlandırılır.
Nasıl Çalışır?
- Kaç küme olacağı kullanıcıdan parametre olarak istenir.
- Rastgele olarak k merkez noktası seçilir.
- Her veri örneği, en yakın merkez noktasına göre ilgili kümeye atanır.
- Her küme için yeni merkez noktaları hesaplanarak merkez noktaları kaydırılır.
- Yeni merkez noktalarına göre çeşitli işlemlere devam edilir.
K-Means'in iki büyük sorunu var:
- - Küme sayısı bilinmelidir
- - Aykırı değerleri işlemez
Ama bir çözüm var!
Yoğunluk tabanlı bir kümeleme algoritması olan DBSCAN ile çözülebilir.
Kaynaklar
- https://www.datanovia.com/en/lessons/k-means-clustering-in-r-algorith-and-practical-examples/
- https://dergipark.org.tr/download/article-file/193944
- https://uc-r.github.io/kmeans_clustering
- https://twitter.com/akshay_pachaar/status/1645048847922794502
- https://twitter.com/akshay_pachaar/status/1666422267763650560