Sosyal Ağlarda Makine Öğrenmesi 9 [ KNN En Yakın Komşu Algoritması]

K-NN En yakın K Komşu ( K-Nearest Neighborhood) algoritması gözetimli öğrenme metodlarından sınıflandırma algoritmalarının içerisinde yer alıyor. KNN değil de K-NN olarak ayrılmasının sebebi K değerinin bir değişken olması. Bu sınıflandırmada bakılacak eleman sayısını ifade ediyor. Örneğin 2,3,4 gibi bir sayı olabiliyor.

Algoritmamızda K değeri belirlendikten sonra, diğer değerlerin hedef değerimize olan uzaklıkları hesaplanıyor ve buradan en yakın komşu kategorisi keşfedilerek seçiliyor.

Uzaklık hesaplama kısmında en çok tercih edilen uzaklık türleri şu şekilde:

  • “Euclidean” Uzaklık
  • “Manhattan” Uzaklık
  • “Minkowski” Uzaklık

 

Aslında burada genel formül yukarıda da görülebileceği üzere Minkowski uzaklığı. Bu uzaklığın özelleşmiş halleri ise Manhattan ve Euclidean bağlantısı. Manhattan’da q=1 , Euclidean’da q=2 alıyoruz. Ardından komşular bulunduktan sonra etiketleme işlemi yapılıyor.

Yukarıdaki görselde KNN algoritmasının çalışması adım adım gösterilmiştir. [ Görsel Kaynak]

Unutma:

KNN algoritmasının eğitiminin olmaması, yerel bilgilere uyarlanabilir olması ve gürültülü eğitim verilerine karşı dirençli olması olumlu tarafları olarak düşünülürken, yüksek miktarda bellek alanına ihtiyaç duyması, veri seti ve öznitelik boyutu arttıkça işlem yükünün ve maliyetinin önemli ölçüde yükselmesi, performansın k parametresi, uzaklık ölçütü gibi parametrelerden etkilenmesi olumsuz yönleridir.

 

KNN algoritmasının çalışma şeklini anlamak için yukarıdaki görsele bakabiliriz. Puzzle parçası acaba güneşe mi ait yoksa gülen yüzlere mi ? Eğer k==4 alırsak kırmızı halka k==11 alırsak mavi halka üzerinden uzaklıklar hesaplanacak ve etiketleme yapılacak. [Görsel Kaynak]

Şimdi projemize geçelim 🙂

İlk olarak kütüphaneleri ve veri setini içe aktarıyoruz. Ardından eğitim ve test kümesi olarak verisetimizi ikiye ayırıyoruz. Knn algoritması feature scaling yapmamızı gerektirdiği için bu işlemi yapıyoruz.

Ardından KNN algoritması için veri setimizi eğitiyoruz.

Test sonuçlarını tahmin edip hata matrisimizi oluşturuyoruz.

Hata matrisi sonuçlarımıza bakalım.

Bu tahminimizde ‘öklid’ uzaklığı kullandık. Bunun için minkowski metriğini seçip p değerini 2 yapmamız gerekiyor. Eğer p değerini 1 yaparsak manhattan uzaklığı oluyor.

Şimdi k değerimizi 5 yerine 4 yazalım ve yeniden matris oluşturalım.

Veri setimizden 1 tanesi daha hatalı tahmin edildi. Şimdi ilk haldeki veri setimizi görselleştirelim. k değerimiz 5 olacak şekilde.

Eğitim kümemizi görselleştiriyoruz.

Son olarak test sonuçlarımızı görselleştiriyoruz.

 

 

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir