KNN algoritması sınıflandırılmak istenen bir veriyi daha önceki verilerle olan yakınlık ilişkisine göre sınıflandıran bir algoritmadır.

Görsel

Örneğin; k = 3 olarak alırsak, yeni gelen verinin eski verilere olan uzaklıkları ölçülür ve en yakın 3 tanesi belirlenir. Aşağıdaki şekilde görüldüğü gibi en yakın verilerden 2'si A sınıfında ve 1'i B sınıfındadır. Bu durumda algoritma yeni gelen verinin A sınıfında olduğuna karar verir.

Görsel

Şimdi bunu bir sayısal örnekle inceleyelim. Aşağıdaki tablodaki verilerin daha önceden elimizde olduğunu varsayalım. Eğer bu durumda elimize yeni bir veri geçerse KNN algoritmasını kullanarak yeni gelen veriyi sınıflandırabiliriz. Örnek olarak yeni gelen verinin (5,5) noktası (şekildeki kırmızı nokta) olduğunu varsayalım. (5,5) noktasına en yakın 3 verinin sınıfları sıralıysa B, A, A'dır. Bu durumda (5,5) noktasının sınıfı A olur.

x y Uzaklık Sınıf Sıra
4 5 1 B 1
7 5 2 A 2
4 7 2.24 A 3
5 2 3 B 5
7 7 2.83 B 4

Şimdiye kadar uzaklık ölçümü için Öklid Uzaklığı (Euclidean Distance) kullanılmıştır. Bunun yanı sıra Manhattan ve Minkowski uzaklıklarıda kullanılabilir. Fakat biz bu yazımızda bu uzaklıkların nasıl ölçüldüğüne değinmeyeceğiz. İsteyenler linklerde daha fazla bilgi alabilirler.

K Değişkeninin Seçilmesi

K değişkeni için sabit bir değer yoktur. Bu yüzden farklı k değerleri deneyip optimal bir k değerinin bulunması daha iyi sonuç verecektir. Şimdi buna örnek olarak yukarıda verdiğimiz k değerini 5 yapalım ve sınıflandırmada farkeden bir şey olup olmadığına bakalım.

Görsel

K'yı 5 olarak seçtiğimizde bu sefer en yakın 5 komşuyu değerlendirmeye alacağız. Yukarıdaki tablodan sırasıyla en yakın 5 komşunun sınıfları B, A, A, B, B'dir. 2 tane A sınıfı ve 3 tane B sınıfı. Bu durumda (5,5) noktası B sınıfına aittir.

Görüldüğü gibi k değerinin değişmesi sınıflandırmayı etkilemiştir. Bu yüzden farklı k değerleriyle sınıflandırma yapıp en iyi sonucu veren değeri seçmemiz gerekir.

Sonuç

Sonuç olarak KNN algoritmasını temel olarak anlamaya çalıştık. Herhangi bir kod paylaşmadım çünkü yukarıda gördüğünüz gibi algoritma oldukça basit.

Kaynaklar

Veri Madenciği Yöntemleri - Dr. Yalçın Özkan