K-Means Algoritması

k means algoritması teorik ve pritik anlatım

Clustering ( Kümeleme )

Clustering ( Kümeleme ) bir veri setinde benzer özellikler gösteren verilerin gruplara ayrılmasına denir.  Kümelemeyi basitçe “nesneleri benzerliklerine göre belli gruplar halinde düzenleme işi” olarak tanımlayabiliriz. Kümeleme yöntemlerinde, çıktı değerlerinin olmadığı durumlarda sadece girdi değerlerinden hareketle yani denetimsiz öğrenme(unsupervised learning) ile bu girdiler gruplandırılmaktadır.

Unsupervised learning(Denetimsiz öğrenme):

Veri kümesi ile çıktıların olmadığı öğrenme metodudur. Veri kümesindeki verileri yorumlayarak ortak noktaları bulmak ve bunları kümeleştirme işlemi yapılarak anlamlı bir veri elde edebilmektir.

K-Means Algoritması

En eski kümeleme algoritmalarından olan k-means, 1967 yılında J.B. MacQueen  tarafından geliştirilmiştir.

K-Means Kümeleme Algoritması Data Mining Dünyasında En Çok Kullanılan Algoritmaların başında yer almaktadır.

K-Means algoritması bir unsupervised learning(denetimsiz öğrenme) ve kümeleme algoritmasıdır. K-Means’ teki K değeri küme sayısını belirler ve bu değeri parametre olarak alması gerekir.

K adet özgün küme oluşturduğu ve her kümenin merkezi, kümedeki değerlerin ortalaması olduğu için K-Ortalamalar denmektedir.

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.

Bu algoritmada ‘K’ parametresi elimizdeki verinin kaç tane kümeye ayrılacağını belirtiyor. Bu parametrenin seçimi için birkaç analiz yöntemi olsa da en iyisi algoritmayı farklı k değerlerinde yürütüp işimize en çok yarayanı almaktır. Çünkü farklı sayıda gruplar, farklı özellikleri yüz üstüne çıkarabilir.

K değerlerine göre farklılıklar.

Burada en önemli iki amaç şudur;

  1. Küme içindeki değerler birbirlerine en çok benzemeli,
  2. Kümeler birbirine mümkün olduğunca benzememeli

Bu istekleri gerçekleştirmek için algoritma tarafında sırasıyla şu adımlar gerçekleştirilmelidir:

  • Küme merkezlerinin belirlenmesi
  • Merkez dışındaki örneklerin mesafelerine göre sınıflandırılması
  • Yapılan sınıflandırmaya göre yeni merkezlerin belirlenmesi (veya eski merkezlerin yeni merkeze kaydırılması)
  • Kararlı hale (stable state) gelinene kadar 2. ve 3. adımların tekrarlanması

Bu yöntemde K sayısını belirleme önemli bir problemdir. Uygun K sayısını seçmek için çeşitli metotlar bulunmaktadır. Kısaca metotları açıklamak gerekirse;

Elbow metodu; noktaların her K değerine göre küme merkezine uzaklıklarının karesi toplamı hesaplanmaktadır. Bu değerlere göre her K değeri için grafik çizilmektedir. Grafik üzerinde toplamlar arasındaki farkın azalmaya başladığı dirsek noktası en uygun K değeri olarak belirlenmektedir. Dirsek yöntemi olarak da biliniyor.

Elbow için en uygun kümeleme K değeri örneği (K=3)

Silhoutte metodu; her K değeri için kümelerin farklılığına bakmaktadır. Oluşan kümeler için -1 ve 1 arasında değerler üretmektedir. 1’e en yakın K değeri en uygun olarak belirlenmektedir.

Silhoutte yöntemi için en uygun K seçimi (K=5)
Şekil:1
Şekil:2
Şekil:3
Şekil: 4

 

Şekil:1  k başlangıç ​​”Means” (bu durumda k = 3) veri alanında rastgele oluşturulur (renkli olarak gösterilir).

Şekil:2 k kümeler, her gözlemi en yakın ortalama ile ilişkilendirerek oluşturulur. Buradaki bölümler , araçlarla oluşturulan Voronoi diagram   temsil eder .

Şekil: 3  K kümelerinin her birinin  centroid  yeni ortalama haline gelir.

Şekil :4 Adım 2 ve 3 yakınsama sağlanana kadar tekrarlanır.

Şekil 5: orijinal veri ve kümelenmiş veri

K-Means ile işlenmiş data ile işlem yapmamız daha kolay yoksa daha çok uğraşırız veri ile istenmeyen sonuçlar çıkabilir.Bu durumu ufak verilerde gözlemleyemeyiz ama büyük ve kritik verilerde can sıkıcı olabilir .

Şekilde 5 ‘de görüldüğü gibi Original data ve Clustered data arasında ki farkı;

Bundan dolayı veriyi işlememiz lazım ki problemler için uygun çözümü bulalım değil mi?

Veriyi işledikten sonra şekil 6’deki gibi probleme çözüm olsun isteriz .

Şekil:6

K-Means’ı Uygulama Örnekleri

  1. Belge Sınıflandırması: Belgeleri etiketlere, konulara ve belgenin içeriğine göre birden fazla kategoride kümeleyin. Bu çok standart bir sınıflandırma problemidir ve k-means aracı bu amaç için oldukça uygun bir algoritmadır.
  2. Suç Yerlerinin Belirlenmesi: Bir şehirdeki belirli bölgelerde mevcut olan suçlarla ilgili veriler, suç kategorisi, suç alanı ve ikisi arasındaki ilişki, bir şehirdeki ya da bölgedeki suça eğilimli alanlara ilişkin kaliteli bilgiler verebilir.
  3. Oyuncu Analizi: Oyuncu istatistiklerini analiz etmek, spor dünyasının her zaman kritik bir unsuru olmuştur ve artan rekabetle birlikte, makine öğrenmenin burada oynayacağı kritik bir rol vardır.
  4. Müşteri Segmentasyonu: Kümeleme, pazarlamacıların müşteri tabanını geliştirmelerine, hedef alanlarda çalışmasına ve müşterileri satın alma geçmişine, ilgi alanlarına veya etkinlik izlemeye göre segmentlere ayırmasına yardımcı olur. Sınıflandırma, şirketin belirli kampanyalar için belirli müşteri kümelerini hedeflemesine yardımcı olur.
  5. Sigortacılık: motor sigorta poliçe sahiplerinin ortalama maliyetlerinin hesaplanması için, sahtekârlıkların belirlenmesi için gruplandırılması
  6. Şehir plancılığı: tiplerine, değerlerine ve coğrafik konumlarında göre evlerin gruplandırılması
  7. Deprem araştırmaları: gözlenen deprem merkezlerinin gruplanarak tehlikeli bölgelerin belirlenmesi
  8. Biyoloji: bitkilerin ve hayvanların verilen ¨özelliklerine göre sınıflandırılması Kütüphaneler: kitapların düzenlenmesi
  9. Sigorta Dolandırıcılığı Tespiti:Hileli iddialarla ilgili geçmiş verileri kullanarak, sahte iddiaları gösteren kümelere olan yakınlığına dayanarak yeni iddiaları izole etmek mümkündür. Sigorta sahtekarlığının bir şirket üzerinde potansiyel olarak milyonlarca dolarlık bir etkisi olabileceğinden, sahtekarlıkları tespit etme yeteneği çok önemlidir. 
  10. Pazar Segmentasyonu: müşteri özelliklerini ve geçmiş alışverişlerini barındıran geniş bir veritabanından benzer davranışları sergileyen müşterilerin gruplandırılması

Şimdi K-Means üzerinde ufak bir örnek proje yapacam . İris veri seti üzerinden kümele yapıcam kodları Jupyter notebook üzerinden göstericem her koda açıklama satırı ekledim.

 

 

Şekil:7

 

 

 

 

 

 

 

Şekil:7 ve Şekil:8 de görüldüğü gibi “K” seçimini önemlidir.Çünkü  kümeleme yaparken yanlış veri etiketleme kritik projelerde çok etkili olabilir.

Kodlara buradan ulaşabilirsiniz. https://bit.ly/2BKiAZx

Sağlıcakla kalın 🙂

 

Kaynaklar:

https://en.wikipedia.org/wiki/K-means_clustering

https://dzone.com/articles/10-interesting-use-cases-for-the-k-means-algorithm

https://medium.com/@ekrem.hatipoglu/machine-learning-clustering-kümeleme-k-means-algorithm-part-13-be33aeef4fc8

http://mustafaakca.com/k-means-kumeleme-algoritmasi/

https://medium.com/deep-learning-turkiye/k-means-algoritması-b460620dd02a

http://bilgisayarkavramlari.sadievrenseker.com/2008/12/15/k-ortalama-algoritmasi-k-means-algorithm/

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.