Makine Öğrenimi için Yakın Komşu (KNN) Algoritması

Emre Yıldız
3 min readSep 15, 2020

--

  • K-Nearest Neighbor, Denetimli Öğrenme tekniğine dayanan en basit Makine Öğrenimi algoritmalarından biridir.
  • K-NN algoritması, mevcut tüm verileri depolar ve benzerliğe göre yeni bir veri noktasını sınıflandırır. Bu, yeni veriler ortaya çıktığında K-NN algoritması kullanılarak kolayca sınıflandırılabileceği anlamına gelir.
  • K-NN algoritması, Regresyon için olduğu kadar sınıflandırma için de kullanılabilir, ancak daha çok sınıflandırma problemleri için kullanılır.
  • K-NN veriler üzerinde herhangi bir varsayımda bulunmaz.
  • Aynı zamanda eğitim setinden hemen öğrenmez, bunun yerine veri setini depolar ve sınıflandırma sırasında veri seti üzerinde bir eylem gerçekleştirir.

KNN Algoritmasının Çalışması

K-en yakın komşular (KNN) algoritması, yeni veri noktalarının değerlerini tahmin etmek için özellik benzerliğini kullanır; bu, yeni veri noktasına eğitim setindeki noktalarla ne kadar yakından eşleştiğine bağlı olarak bir değer atanacağı anlamına gelir. Çalışmasını aşağıdaki adımlarla bakalım.

1.Herhangi bir algoritmayı uygulamak için veri setine ihtiyacımız var. Bu nedenle KNN’nin ilk adımı sırasında eğitimi ve test verilerini yüklemeliyiz.

2.Sonra, K’nin değerini, yani en yakın veri noktalarını seçmemiz gerekiyor. K herhangi bir tam sayı olabilir.

3.Test verilerindeki her nokta için ;

  • 3.1 — Euclidean, Manhattan veya Hamming distance gibi yöntemlerden herhangi birinin yardımıyla test verileri ile her eğitim verisi arasındaki mesafeyi hesaplayın. Mesafeyi hesaplamak için en yaygın kullanılan yöntem Öklid’dir.
  • 3.2 — Şimdi, mesafe değerine göre, bunları artan düzende sıralayın.
  • 3.3 — Daha sonra, sıralanan diziden en üstteki K satırı seçecektir.
  • 3.4 — Şimdi, bu satırların en sık kullanılan sınıfına göre test noktasına bir sınıf atayacaktır.

4.Sonuç

Aşağıdaki şekil gibi çizilebilen bir veri kümemiz olduğunu varsayalım.

Şimdi, siyah noktalı yeni veri noktasını mavi veya kırmızı olarak sınıflandırmamız gerekiyor. K = 3 varsayıyoruz, yani en yakın üç veri noktası bulacaktır.

Yukarıdaki diyagramda siyah noktalı veri noktasının en yakın üç komşusunu görebiliriz. Bu üçü arasında ikisi kırmızı sınıfındadır, dolayısıyla siyah nokta da kırmızı sınıfta yer alacaktır.

KNN’nin Arkasındaki Matematik

Hemen hemen her şey gibi, KNN de kullandığı köklü matematiksel teoriler nedeniyle çalışır. KNN’yi uygularken ilk adım, veri noktalarını özellik vektörlerine veya matematiksel değerlerine dönüştürmektir. Algoritma daha sonra bu noktaların matematiksel değerleri arasındaki mesafeyi bularak çalışır. Bu mesafeyi bulmanın en yaygın yolu Öklid mesafesidir.

KNN, her veri noktası ile test verileri arasındaki mesafeyi hesaplamak için bu formülleri çalıştırır. Daha sonra bu noktaların test verilerine benzer olma olasılığını bulur ve en yüksek olasılıkları hangi noktaların paylaştığına göre sınıflandırır.

KNN’nin Artıları ve Eksileri

Artıları

  • Anlaması ve yorumlaması çok basit bir algoritmadır.
  • Doğrusal olmayan veriler için çok kullanışlıdır çünkü bu algoritmada veriler hakkında herhangi bir varsayım yoktur.
  • Sınıflandırma ve regresyon için kullanabildiğimiz için çok yönlü bir algoritmadır.
  • Oldukça yüksek doğruluğa sahiptir..

Eksileri

  • Diğer denetimli öğrenme algoritmalarına kıyasla yüksek bellek depolaması gerekir.
  • Büyük N durumunda tahmin yavaştır.
  • Verilerin ölçeğine ve ilgisiz özelliklere çok duyarlıdır.

________ ________ ________ ________ ________ ________ _______

Konuyla ilgili diyabet data seti üzerinde çalışan güzel bir notebook bırakıyorum.Buradan ulaşabilirsiniz.

--

--

Emre Yıldız

Jr. ML Engineer & Data Scientist, Computer Vision , Deep Learning Linkedln:www.linkedin.com/in/iamemreyildiz