K-En Yakın Komşu

KNN, veri noktalarının komşularına dayalı olarak sınıflandırılmasını veya tahmin edilmesini sağlayan bir algoritmadır. Temel fikir, bir veri noktasının sınıfını veya değerini belirlemek için, bu noktanın en yakın komşularının sınıfını veya değerlerini kullanmaktır.

K-en yakın komşu algoritmasının avantajları;

  • Hızlı eğitim süresi.
  • Hem sınıflandırma hem regresyon problemlerinde kullanılabilir.

K-en yakın komşu algoritmasının dezavantajları;

  • Yüksek boyutlu verilerde sorun yaşayabilir çünkü uzaklık hesaplamaları artar.
  • “k” sayısı yanlış seçilirse sonuçlar değişebilir.
  • Eşit uzaklığa sahip birden fazla komşu olması durumunda sınıflandırma sonuçları belirsiz olabilir.

Çalışma Adımları

Tahmin yapılacak yeni veri noktası ile eğitim verilerindeki diğer noktalar arasındaki uzaklığı hesaplanır. Genellikle kullanılan uzaklık ölçüleri;

  • Euclidean (Öklidyen): İki nokta arasındaki doğru mesafeyi ölçer.
  • Manhattan: İki nokta arasındaki yolların toplam uzunluğunu ölçer.
  • Chebyshev: Vektörler arasındaki mutlak farkın maksimumunu alır. Daha sonra en yakın “k” komşusu seçilir. k, bir hiperparametredir ve kullanıcı tarafından belirlenmelidir.

Sınıflandırma problemi, eğer KNN sınıflandırma amaçlı kullanılıyorsa, en yakın k komşunun sınıfları incelenir ve yeni veri noktasının sınıfı, bu k komşunun sınıfının çoğunluğu (modu) olarak tahmin edilir. Örneğin, eğer 3 en yakın komşu sınıfları “A”, “A”, ve “B” ise, yeni veri noktasının tahmini sınıfı “A” olur.

Regresyon problemi, eğer KNN regresyon amaçlı kullanılıyorsa, en yakın k komşunun hedef değerleri kullanılarak yeni veri noktasının hedef değeri tahmin edilir. Genellikle bu değerlerin ortalaması veya ağırlıklı ortalaması kullanılır.

Hiperparametreler

ParametreTypeDefaultAçıklama
n_neighborsint100Komşu sayısını belirtir. Çok büyük k overfit’e çok küçük k underfit’e sebep olabilir.
weightsfloat0.1Komşuların etkisinin hesaplanma yöntemini belirtir. “uniform”, tüm komşular eşit ağırlığa sahiptir. “distance” komşuların uzaklıklarına göre ağırlık verilir.
pint3Uzaklık ölçümüü için kullanılacak metriği seçer. P=1 Manhattan uzaklık, P=2 Euclidean uzaklık olarak kullanılır.