Yapay zeka temelleri
K-Nearest Neighbors (KNN) Nedir?
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ının etrafındaki belirli sayıda veri noktasının etiketlerini inceleyerek, bu veri noktasının hangi sınıfa ait olabileceği hakkında bir tahminde bulunur. K-En Yakın Komşular (KNN) kavramsal olarak basit ancak çok güçlü bir algoritmadır ve bu nedenle en popüler makine öğrenimi algoritmalarından biridir. KNN algoritmasının nasıl çalıştığını derinlemesine inceleyelim. KNN’nin nasıl çalıştığını iyi anlarsanız, KNN için en iyi ve en kötü kullanım durumlarını takdir edebilirsiniz.
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)
Verileri 2D bir düzlemde görselleştirelim. Grafikte dağılmış veri noktalarını düşünün. KNN, veri noktalarının dağılımını inceleyerek, modele verilen argümanlara bağlı olarak veri noktalarını gruplara ayırır. Bu gruplara bir etiket atanır. Bir KNN modelinin temel varsayımı, birbirlerine yakın olan veri noktalarının/örneklerinin birbirlerine çok benzer olduğu, ancak bir veri noktasının başka bir gruptan uzak olması durumunda bu veri noktalarına benzemeyeceğidir.
Bir KNN modeli, iki nokta arasındaki uzaklık menggunakan benzerliği hesaplar. Noktalar arasındaki uzaklık ne kadar büyükse, benzerlik o kadar azdır. Noktalar arasındaki uzaklığı hesaplamak için birden fazla yöntem vardır, ancak en yaygın kullanılan uzaklık metriği Euclidean uzaklıktır (iki nokta arasındaki düz çizgi mesafesi).
KNN, etiketlenmiş örneklerin bulunduğu bir eğitim 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. Model, tamamen verilen verilerden oluşturulur. İkincisi, KNN kullanıldığında veri kümesi eğitim ve test kümelerine bölünmez. KNN, bir eğitim ve test kümesi arasında genellemeler yapmaz, bu nedenle tüm eğitim verileri modelin tahminde bulunması istenildiğinde kullanılır.
KNN Algoritmasının Çalışma Şekli
KNN algoritması üç ana aşamadan oluşur:
- K’nın seçilen komşu sayısına ayarlanması.
- Verilen/test örneği ile veri kümesi örnekleri arasındaki uzaklığın hesaplanması.
- Hesaplanan uzaklıkların sıralanması.
- En üstteki K girişin etiketlerinin alınması.
- Test örneği hakkında bir tahminde bulunulması.
İlk adımda, K kullanıcı tarafından seçilir ve algoritmanın bir tahminde bulunmak için kaç komşuyu dikkate alacağını belirler. İ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 öğenin etiketleri döndürülür. Diğer bir deyişle, K 5 olarak ayarlanırsa, model test veri noktasına en yakın 5 veri noktasının etiketlerini kontrol eder. Bir regresyon görevi veya bir sınıflandırma görevi olup olmadığı, tahminde bulunulurken önemlidir. Regresyon 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 metriğine bağlı olarak değişir. Eğer en yaygın kullanılan uzaklık metrikleri hakkında daha fazla bilgi edinmek istiyorsanız, Euclidean, Manhattan ve Minkowski gibi bazıları hakkında bilgi edinebilirsiniz.
K Değeri Neden Önemlidir
KNN’yi kullanırken ana sınırlama, K’nın (komşu sayısının) yanlış 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ğerinin seçilmesi çok önemlidir. Görünmeyen verilerde modelin tahmin gücünü en üst düzeye çıkaran ve hataları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 düşük değerleri, KNN’nin verdiği tahminlerin daha az稳 ve güvenilir olduğu anlamına gelir. Bunun nedenini anlamak için, 7 komşusu olan bir hedef veri noktası olduğunu varsayalım. KNN modeli, iki en yakın komşuyu dikkate alarak bir tahminde bulunmak için 2 olarak ayarlandı (yani, hedef örneğin hangi gruba ait olabileceği hakkında bir tahminde bulunmak için iki en yakın komşuyu incelemesini istedik). Eğer majority (beş out of yedi) mavi sınıfa ait ise, ancak iki en yakın komşu kırmızı ise, model örneğin kırmızı olduğunu tahmin eder. Ancak bu durumda mavi daha iyi bir tahmin olurdu.
Eğer böyleyse, neden en yüksek K değerini seçmeyelim? Bu, modelin çok fazla komşuyu dikkate almasıyla ilgilidir ve bu da doğruluğu azaltır. KNN modelinin dikkate aldığı yarıçap arttıkça, hedef veri noktasına diğer gruplardan daha yakın olan veri noktalarını dikkate almaya başlar ve yanlış sınıflandırma başlar. Örneğin, ilk olarak seçilen nokta kırmızı bir bölgede olsa bile, K çok yüksek ayarlanırsa, model diğer bölgelere ulaşarak noktaları dikkate alır. KNN modeli kullanıldığında, farklı K değerleri denenir ve hangisinin modelin en iyi performansı gösterdiği belirlenir.
KNN Artıları ve Eksileri
KNN modelinin bazı artıları ve eksilerini inceleyelim.
Artıları:
KNN hem regresyon hem de sınıflandırma görevleri için kullanılabilir, diğer bazı denetimli öğrenme algoritmalarının aksine.
KNN yüksek doğrulukta 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 yelpazesinde kullanılabilir.
Eksileri:
KNN, çoğu veya tüm verileri depolar, bu nedenle modelin çok fazla belleğe ihtiyacı vardır ve hesaplama açısından pahalıdır. Büyük veri kümeleri, tahminlerin uzun sürmesine neden olabilir.
KNN, veri kümesinin ölçeğine karşı çok hassastır ve diğer modellere kıyasla kolayca alakasız özelliklerden etkilenir.
K-En Yakın Komşular (KNN) Özeti
K-En Yakın Komşular, en basit makine öğrenimi algoritmalarından biridir. KNN kavramsal olarak basit olmasına rağmen, aynı zamanda güçlü bir algoritmadır ve çoğu problème 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 ile deney yapmanız önemlidir.












