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

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ım - 15-05-2020 00:42

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.

Günün Diğer Haberleri