Yazılımda knn Algoritması - En Yakın K Komşu

3 ay önce , Okuma süresi 1 dakika.

Kısaca sınıflandırmayı açıklamak gerekirse elimizde giriş ve çıkış bilgileri olan bir datayı, daha önce karşılaşılmamış verilerle sonucunun ne olacağını “tahmin etmek” demektir.
Yazılımda knn Algoritması - En Yakın K Komşu

Bu algoritma mevcut durumları depolayan ve bu depolanan verileri mesafe fonksiyonuna göre sınıflandıran bir algoritmadır. Burada k şekilde devreye girmektedir. Sınıflandırılmak istenen yeni bir bireyin daha önce ki bireylerin k tanesinin yakınlığına bakılmasıdır.

k değeri 5 olarak belirlenirse, daha önce sınıflandırılmış olan elemanlardan en yakın 5 tanesini alınır. Bu eleman hangi sınıfa dahil olursa yeni eleman da o sınıfa dahil edilir. Mesafe hesabı için yani en yakın bireylerin hangileri olduğunu görmek için öklid hesabı kullanılır.

İki boyutlu bir doğru düşünelim veriler buraya gruplar halinde bulunuyor. Ve diyelim ki k değerini 3 olarak verdik. Hesapladığımız öklid uzunluğuna göre seçtiğimiz verinin en yakın olduğu 3 değeri aldık. Bunların içinden oylama yaptığımızı da farz edebiliriz mesela 3 doğrudan bir tanesi A grubuna iki tanesi B grubuna ait ise bu durumda yeni elemanımız B grubuna ait olur.

Bu örneğe de göz atarsak, elimiz de ki X değeri verdiğimiz k değeri kadar ki bu örnekte k değerimiz 5’dir. Elemanımızın etrafında ki komşulara olan uzaklığını öklid kullanarak belirledik. Örnekten de görebildiğimiz gibi eşit sayıda uzaklığa sahip olduğu 1 adet yeşil 4 adet de turuncu gruptan eleman var. Bu durumda yapmamız gereken oylamadır. Hangi gruptan daha fazla yakın olduğu elemanı varsa bu gruba ait olacaktır. Örnekte de 4 adet turuncu 1 adet de yeşile yakınlığı bulunmakta X elemanımız turuncu gruba ait olacaktır.

Algoritmayı tam olarak anladıktan sonra K değerinin bu algoritmaya ne gibi bir etkisinin olduğuna bakabiliriz. K değeri büyüdükçe topluluk bir arada kalmaları büyüyor. Daha doğru ve daha uzak bir şekilde birbirlerinden ayrılmaya başlıyor değerlerimiz.

Algoritmayı Pseudo koda dökmemiz gerekirse, adımlarımız şu şekilde ilerlemektedir.

  • Veriyi yükle
  • K değerini belirle
  • Öngörülen sınıfı almak için 1’den toplam eğitim değerine kadar tekrarlayalım
  • Test verileri ile her egzersiz verisi satırı arasındaki mesafeyi hesaplayın. Burada, en popüler yöntem olduğundan, mesafe ölçütü olarak Öklid mesafesini kullanacağız. Kullanılabilecek diğer metrikler Chebyshev, kosinüs vb.
  • Hesaplanan mesafeleri, mesafe değerlerine göre artan sırada sıralayın
  • Sıralanan diziden ilk k satırını alın
  • Bu satırların en sık kullanılan sınıfını alın
  • Tahmini sınıfa geri ekleyin

KNN algoritması en basit sınıflandırma algoritmasından biridir. Böyle basitlikte bile, oldukça rekabetçi sonuçlar verebilir.

#Yazılım