saplama KNN (K-En Yakın Komşular) nedir? - Unite.AI
Bizimle iletişime geçin

AI 101

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

mm
Güncellenmiş on

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

K-En Yakın Komşular, bir makine öğrenme tekniği ve algoritmasıdır. hem regresyon hem de sınıflandırma görevleri için kullanılabilir. K-En Yakın Komşular inceler seçilen sayıda veri noktasının etiketleri veri noktasının düştüğü sınıf hakkında bir tahmin yapmak için bir hedef veri noktasını çevreler. K-En Yakın Komşular (KNN), kavramsal olarak basit ama çok güçlü bir algoritmadır ve bu nedenlerle en popüler makine öğrenimi algoritmalarından biridir. KNN algoritmasına derinlemesine bir dalış yapalım ve tam olarak nasıl çalıştığını görelim. KNN'nin nasıl çalıştığına dair iyi bir anlayışa sahip olmak, KNN'nin en iyi ve en kötü kullanım durumlarını takdir etmenizi sağlayacaktır.

K-En Yakın Komşulara (KNN) Genel Bakış

Fotoğraf: Wikimedia Commons aracılığıyla Antti Ajanki AnAj, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

2B düzlemde bir veri kümesini görselleştirelim. Bir grafik üzerinde, grafik boyunca küçük kümeler halinde dağılmış bir grup veri noktasını 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 daha sonra bir etiket atanır. Bir KNN modelinin yaptığı birincil varsayım, birbirine çok yakın olan veri noktalarının/örneklerinin oldukça benzer olduğu, bir veri noktasının başka bir gruptan uzakta olması durumunda ise bu veri noktalarına benzemediğidir.

Bir KNN modeli, bir grafik üzerindeki iki nokta arasındaki mesafeyi kullanarak benzerliği hesaplar. Noktalar arasındaki mesafe ne kadar büyükse, o kadar az benzerdirler. Noktalar arasındaki mesafeyi hesaplamanın birçok yolu vardır, ancak en yaygın mesafe ölçüsü sadece Öklid mesafesidir (düz bir çizgideki iki nokta arasındaki mesafe).

KNN denetimli bir öğrenme algoritmasıdır, yani veri kümesindeki örneklerin kendilerine atanmış etiketleri olmalıdır/sınıfları bilinmelidir. KNN hakkında bilinmesi gereken iki önemli şey daha var. Birincisi, KNN parametrik olmayan bir algoritmadır. Bu, model kullanıldığında veri seti hakkında hiçbir varsayımın yapılmadığı anlamına gelir. Bunun yerine, model tamamen sağlanan verilerden oluşturulur. İkincisi, KNN kullanılırken veri setinin eğitim ve test setlerine bölünmesi yoktur. KNN, bir eğitim ve test seti arasında genelleme yapmaz, bu nedenle modelden tahmin yapması istendiğinde tüm eğitim verileri de kullanılır.

Bir KNN Algoritması Nasıl Çalışır?

Bir KNN algoritması yürütülürken üç ana aşamadan geçer:

  1. K'yi seçilen komşu sayısına ayarlamak.
  2. Sağlanan/test örneği ile veri kümesi örnekleri arasındaki mesafenin hesaplanması.
  3. Hesaplanan mesafeleri sıralama.
  4. En üstteki K girişin etiketlerini alma.
  5. Test örneği hakkında bir tahmin döndürme.

İlk adımda, K kullanıcı tarafından seçilir ve hedef örneğin ait olduğu grup hakkında bir yargıya varılırken algoritmaya kaç komşunun (çevredeki kaç veri noktası) dikkate alınması gerektiğini söyler. İkinci adımda, modelin hedef örnek ile veri kümesindeki her örnek arasındaki mesafeyi kontrol ettiğini unutmayın. Mesafeler daha sonra bir listeye eklenir ve sıralanır. Daha sonra, sıralanan liste kontrol edilir ve en üstteki K öğe için etiketler döndürülür. Başka bir deyişle, K 5 olarak ayarlanırsa, model hedef veri noktasına en yakın ilk 5 veri noktasının etiketlerini kontrol eder. Hedef veri noktası hakkında bir tahmin oluştururken, görevin bir gerileme or sınıflandırma görev. Bir regresyon görevi için, üst K etiketlerinin ortalaması kullanılırken, sınıflandırma durumunda üst K etiketlerinin modu kullanılır.

KNN'yi gerçekleştirmek için kullanılan kesin matematiksel işlemler, seçilen mesafe metriğine bağlı olarak farklılık gösterir. Metriklerin nasıl hesaplandığı hakkında daha fazla bilgi edinmek isterseniz, aşağıdakiler gibi en yaygın mesafe metriklerinden bazılarını okuyabilirsiniz. Öklid, Manhattan, ve Minkovski.

K'nin Değeri Neden Önemlidir?

KNN kullanılırken ana sınırlama, uygun olmayan bir K değerinde (dikkate alınması gereken yanlış komşu sayısı) seçilebilmesidir. Bu olursa, döndürülen tahminler önemli ölçüde kapalı olabilir. Bir KNN algoritması kullanırken K için uygun değerin seçilmesi çok önemlidir. Modelin görünmeyen veriler üzerinde tahminlerde bulunma yeteneğini en üst düzeye çıkarırken yaptığı hata sayısını azaltan bir K değeri seçmek istiyorsunuz.

Fotoğraf: Wikimedia Commons aracılığıyla Agor153, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Daha düşük K değerleri, KNN tarafından sağlanan tahminlerin daha az kararlı ve güvenilir olduğu anlamına gelir. Bunun neden böyle olduğuna dair bir fikir edinmek için, bir hedef veri noktası etrafında 7 komşumuzun olduğu bir durumu düşünün. KNN modelinin K değeri 2 ile çalıştığını varsayalım (tahmin yapmak için en yakın iki komşuya bakmasını istiyoruz). Komşuların büyük çoğunluğu (yediden beşi) Blue sınıfına aitse, ancak en yakın iki komşu Red ise, model, sorgu örneğinin Red olduğunu tahmin edecektir. Modelin tahminine rağmen, böyle bir senaryoda Mavi daha iyi bir tahmin olacaktır.

Durum buysa, neden elimizden gelen en yüksek K değerini seçmiyoruz? Bunun nedeni, modele çok fazla komşuyu dikkate almasını söylemenin doğruluğu da azaltmasıdır. KNN modelinin dikkate aldığı yarıçap arttıkça, sonunda diğer gruplara hedef veri noktasından daha yakın olan veri noktalarını dikkate almaya başlayacak ve yanlış sınıflandırma meydana gelmeye başlayacaktır. Örneğin, başlangıçta seçilen nokta yukarıdaki kırmızı bölgelerden birinde olsa bile, K çok yüksek ayarlanmışsa, model noktaları dikkate almak için diğer bölgelere uzanacaktır. Bir KNN modeli kullanılırken, hangi değerin modele en iyi performansı verdiğini görmek için farklı K değerleri denenir.

KNN Artıları ve Eksileri

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

Artıları:

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

KNN son derece hassastır ve kullanımı basittir. Yorumlaması, anlaması ve uygulaması kolaydır.

KNN, veriler hakkında herhangi bir varsayımda bulunmaz, yani çok çeşitli problemler için kullanılabilir.

Eksileri:

KNN, verilerin çoğunu veya tamamını depolar; bu, modelin çok fazla bellek gerektirdiği ve hesaplama açısından pahalı olduğu anlamına gelir. Büyük veri kümeleri de tahminlerin uzun sürmesine neden olabilir.

KNN, veri kümesinin ölçeğine karşı çok duyarlı olduğunu kanıtlıyor ve diğer modellere kıyasla ilgisiz özellikler tarafından oldukça kolay bir şekilde atılabiliyor.

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

K-En Yakın Komşular, en basit makine öğrenimi algoritmalarından biridir. KNN ne kadar basit olsa da, konsept olarak, aynı zamanda çoğu problemde oldukça yüksek doğruluk sağlayan güçlü bir algoritmadır. KNN kullandığınızda, en yüksek doğruluğu sağlayan sayıyı bulmak için çeşitli K değerleri ile deneme yaptığınızdan emin olun.

Uzmanlık alanlarına sahip blogcu ve programcı Makine öğrenme ve Derin Öğrenme konular. Daniel, başkalarının yapay zekanın gücünü toplumsal fayda için kullanmasına yardım etmeyi umuyor.