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?
- 'K' Seçin: Algoritmaya kaç küme (grup) bulmak istediğinizi söylersiniz..
- Merkez Noktaları Başlatın: Model, veri haritanıza rastgele "K" merkez noktası yerleştirir.
- Noktaları Atayın: Her bir veri noktası etrafına bakar ve kendisini en yakın merkez noktasına bağlar.
- Güncelleyin ve Tekrarlayın: Merkez noktaları, yeni gruplarının tam merkezinde olacak şekilde konumlarını yeniden hesaplar.
- Algoritma, merkez noktaları hareket etmeyi bırakana kadar (yakınsama) 3. ve 4. adımları tekrarlar.
Peki ya dezavantajı?
K-Means hızlı ve ölçeklenebilirdir, ancak aykırı değerlerden nefret eder ve küme sayısını önceden tahmin etmeniz gerekir (genellikle "Dirsek Yöntemi"-Elbow Method kullanılarak).
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
- https://www.instagram.com/reels/DXkHdVlkToQ/
- https://www.instagram.com/reel/Dcjoli6gnv5/?igsi=MTR6ems4eGZrMnVodg%3D%3D

