Connect with us

Yapay Zekâ 101

KNN (K-En Yakın Komşular) Nedir?

mm

K-En Yakın Komşular (KNN) Nedir?

K-En Yakın Komşular, hem regresyon hem de sınıflandırma görevleri için kullanılabilecek bir makine öğrenimi tekniği ve algoritmasıdır . K-En Yakın Komşular, bir hedef veri noktasına ait sınıfı tahmin etmek için, seçilen sayıda veri noktasının etiketlerini inceler. K-En Yakın Komşular (KNN), kavramsal olarak basit ancak çok güçlü bir algoritmadır ve bu nedenlerle, en popüler makine öğrenimi algoritmalarından biridir. KNN algoritmasına derinlemesine bakalım ve nasıl çalıştığını görelim. KNN’nin nasıl çalıştığını iyi anlamak, KNN için en iyi ve en kötü kullanım durumlarını takdir etmenize olanak tanır.

K-En Yakın Komşular (KNN) Hakkında Genel Bilgi

Foto: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

2B bir düzlemde bir veri kümesini görselleştirelim. Grafikte dağılmış küçük kümeler halinde bir dizi veri noktası hayal edin. KNN, veri noktalarının dağılımını inceler ve modele verilen argümanlara bağlı olarak, veri noktalarını gruplara ayırır. Bu gruplara bir etiket atanır. Bir KNN modelinin yaptığı temel varsayım, birbirlerine yakın olan veri noktalarının/niteliklerinin yüksek oranda benzer olduğudur, ancak bir veri noktası başka bir gruptan uzaklaştıkça, o veri noktalarına benzerliği azalır.

Bir KNN modeli, iki grafik noktası arasındaki uzaklık menggunakan benzerliği hesaplar. Noktalar arasındaki uzaklık arttıkça, benzerlik azalır. Puanlar arasındaki uzaklığı hesaplamak için birden fazla yöntem vardır, ancak en yaygın uzaklık metriği basitçe Euclid uzaklığıdır (iki nokta arasındaki doğrusal uzaklık).

KNN, etiketlerinin atanmış olduğu/etiketlerinin bilindiği bir veri kümesi gerektiren bir denetimli öğrenme algoritmasıdır. KNN hakkında bilinmesi gereken iki önemli şey daha vardır. İlk olarak, KNN bir parametresiz algoritmadır. Bu, model kullanıldığında veri kümesi hakkında hiçbir varsayım yapılmadığı anlamına gelir. Bunun yerine, model tamamen sağlanan verilerden oluşturulur. İkincisi, KNN kullanıldığında veri kümesinin eğitim ve test kümelerine bölünmesi yoktur. KNN, bir eğitim ve test kümesi arasında genellemeler yapmaz, bu nedenle tüm eğitim verileri modelin tahminlerde bulunması istendiğinde kullanılır.

KNN Algoritmasının Çalışma Şekli

KNN algoritması yürütülürken üç ana aşama geçirir:

  1. K, seçilen komşu sayısına ayarlanır.
  2. Verilen/test örneği ile veri kümesi örnekleri arasındaki uzaklık hesaplanır.
  3. Hesaplanan uzaklıklar sıralanır.
  4. En üstteki K girişin etiketleri alınır.
  5. Test örneği hakkında bir tahmin döndürülür.

İlk adımda, K kullanıcı tarafından seçilir ve algoritmanın bir yargıya varmak için kaç komşunun (kaç çevre veri noktasının) dikkate alınacağını belirtir. İkinci adımda, modelin test örneği ile veri kümesindeki her örnek arasındaki uzaklığı kontrol ettiği unutulmamalıdır. Uzaklıklar bir listeye eklenir ve sıralanır. Daha sonra sıralanmış liste kontrol edilir ve en üstteki K öğelerin etiketleri döndürülür. Diğer bir deyişle, K 5’e ayarlandıysa, model test veri noktasına en yakın 5 veri noktasının etiketlerini kontrol eder. Test veri noktası hakkında bir tahmin yapılırken, görevin bir regresyon görevi olup olmadığı önemlidir. Sınıflandırma görevi için, en üstteki K etiketin ortalaması kullanılır, sınıflandırma görevi için ise en üstteki K etiketin modu kullanılır.

KNN’yi gerçekleştirmek için kullanılan kesin matematiksel işlemler, seçilen uzaklık ölçütüne bağlı olarak değişir. Eğer uzaklık ölçütlerinin nasıl hesaplandığı hakkında daha fazla bilgi edinmek istiyorsanız, Euclid, Manhattan ve Minkowski gibi en yaygın uzaklık ölçütleri hakkında okuyabilirsiniz.

K Değeri Neden Önemlidir

KNN’yi kullanırken ana sınırlama, K’nın (dikkate alınacak komşu sayısının) yanlış bir değerinin seçilmesidir. Eğer bu olursa, döndürülen tahminler önemli ölçüde yanlış olabilir. KNN algoritması kullanıldığında, K’nın doğru değeri seçilmesi çok önemlidir. Modelin görülmeyen verilerde tahmin yapma yeteneğini en üst düzeye çıkaran ve hata sayısını azaltan bir K değeri seçmek istersiniz.

Foto: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

K’nın daha düşük değerleri, KNN tarafından verilen tahminlerin daha az ổn định ve güvenilir olduğu anlamına gelir. Bunun nedenini anlamak için, 7 komşu veri noktası bulunan bir hedef veri noktası durumu düşünün. KNN modeli K değerini 2’ye (en yakın iki komşuyu dikkate alarak bir tahminde bulunmasını istiyoruz) ayarladıysa ve çoğunlukla (beş out of yedi) komşular Mavi sınıfa ait olsalar da, en yakın iki komşu Kırmızı ise, model test örneğinin Kırmızı olduğunu tahmin edecektir. Bu durumda, Mavi daha iyi bir tahmin olurdu.

Eğer böyleyse, neden K’nın en yüksek değerini seçmeyelim? Bunun nedeni, modele çok fazla komşunun dikkate alınmasını söylemenin de doğruluğu azaltmasıdır. KNN modelinin dikkate aldığı yarıçap arttıkça, sonunda diğer gruplara daha yakın olan veri noktalarını dikkate almaya başlayacaktır ve yanlış sınıflandırma meydana gelecektir. Örneğin, başlangıçta seçilen nokta kırmızı bölgelerden birinde olsa bile, K çok yüksek ayarlanırsa, model diğer bölgelerdeki noktaları dikkate almaya başlayacaktır. KNN modeli kullanıldığında, farklı K değerleri denendiği görülmektedir.

KNN Artıları ve Eksileri

KNN modelinin bazı artılarını ve eksilerini inceleyelim.

Artıları:

KNN, regresyon ve sınıflandırma görevleri için kullanılabilecek diğer bazı denetimli öğrenme algoritmalarının aksine, her iki görev için de kullanılabilir.

KNN, yüksek oranda doğru ve kullanımı kolaydır. Anlaşılması, yorumlanması ve uygulanması kolaydır.

KNN, veri hakkında hiçbir varsayım yapmadığından, geniş bir sorun yelpazesi için kullanılabilir.

Eksileri:

KNN, çoğu veya tüm verileri depolar, bu nedenle modelin büyük miktarda belleğe ihtiyacı vardır ve hesaplama açısından pahalıdır. Büyük veri kümeleri ayrıca tahminlerin uzun sürmesine neden olabilir.

KNN, veri kümesinin ölçeğine karşı çok duyarlıdır ve diğer modellere kıyasla alakasız özelliklerden kolayca etkilenir.

K-En Yakın Komşular (KNN) Özeti

K-En Yakın Komşular, en basit makine öğrenimi algoritmalarından biridir. KNN’nin kavramsal olarak basit olmasına rağmen, aynı zamanda güçlü bir algoritmadır ve çoğu sorunda oldukça yüksek doğruluk sağlar. KNN’yi kullandığınızda, en yüksek doğruluğu sağlayan K değerini bulmak için çeşitli K değerleri denediğinizden emin olun.

Blog yazarı ve programcı, Machine Learning ve Deep Learning konularında uzmanlık sahibi. Daniel, başkalarının AI'nin gücünü sosyal fayda için kullanmasına yardımcı olmak umudu taşıyor.