K-En Yakın Komşu (KNN)
K-En Yakın Komşular (KNN) algoritmasının, sınıflandırma ve regresyon görevleri için sezgisel, parametrik olmayan yaklaşımıyla makine öğrenimini nasıl basitleştirdiğini keşfedin.
K-En Yakın Komşu (KNN), hem sınıflandırma hem de regresyon görevleri için kullanılan temel bir denetimli öğrenme algoritmasıdır. Eğitim verisi aşamasında bir model oluşturmadığı için örnek tabanlı veya "tembel öğrenme" algoritması olarak kabul edilir. Bunun yerine, tüm veri kümesini saklar ve depolanmış verilerdeki 'K' en benzer örneği (komşuyu) bularak tahminlerde bulunur. Temel fikir, benzer veri noktalarının birbirine yakın olmasıdır. Yeni, sınıflandırılmamış bir veri noktası için KNN, en yakın komşularını tanımlar ve kendi sınıflandırmasını veya değerini belirlemek için onların etiketlerini kullanır.
KNN Nasıl Çalışır?
KNN algoritması, tipik olarak bir mesafe metriği ile ölçülen basit bir benzerlik prensibi üzerinde çalışır. En yaygın olanı Öklid mesafesidir, ancak veri kümesine bağlı olarak başka metrikler de kullanılabilir.
Tahmin yapma süreci basittir:
- K değerini seçin: Dikkate alınacak komşu sayısı (K) kritik bir hiperparametredir. K seçimi, modelin performansını önemli ölçüde etkileyebilir.
- Mesafeleri Hesaplama: Yeni bir veri noktası için algoritma, bu nokta ile eğitim veri kümesindeki diğer her nokta arasındaki mesafeyi hesaplar.
- Komşuları Tanımlama (Identify Neighbors): Eğitim setinden yeni noktaya en yakın olan K veri noktasını tanımlar. Bunlar "en yakın komşulardır".
- Tahmin Yap:
- Sınıflandırma görevleri için algoritma, çoğunluk oylaması yapar. Yeni veri noktası, K en yakın komşusu arasında en yaygın olan sınıfa atanır. Örneğin, K=5 ise ve üç komşu A Sınıfı ve iki komşu B Sınıfı ise, yeni nokta A Sınıfı olarak sınıflandırılır.
- Regresyon görevleri için algoritma, K en yakın komşusunun değerlerinin ortalamasını hesaplar. Bu ortalama, yeni veri noktası için tahmin edilen değer olur.
Gerçek Dünya Uygulamaları
KNN'nin basitliği ve sezgisel yapısı, özellikle bir temel model olarak çeşitli uygulamalarda kullanılmasını sağlar.
- Öneri Sistemleri: KNN, öneri motorları oluşturmak için popüler bir seçimdir. Örneğin, bir yayın hizmeti, benzer izleme geçmişlerine sahip diğer kullanıcıları (komşuları) belirleyerek bir kullanıcıya film önerebilir. Bu komşuların keyif aldığı ve hedef kullanıcının henüz görmediği filmler daha sonra önerilir. Bu teknik, bir işbirlikçi filtreleme biçimidir.
- Finansal Hizmetler: Finansta, KNN kredi puanlaması için kullanılabilir. Yeni bir kredi başvuru sahibini, bilinen kredi sonuçlarına sahip geçmiş başvuru sahiplerinin bir veritabanıyla karşılaştırarak, algoritma yeni başvuru sahibinin temerrüde düşme olasılığını tahmin edebilir. Komşular, benzer finansal profillere (örneğin, yaş, gelir, borç düzeyi) sahip geçmiş başvuru sahipleridir ve temerrüt geçmişleri tahmini bilgilendirir. Bu, ilk risk değerlendirmelerini otomatikleştirmeye yardımcı olur.
KNN ve İlgili Kavramlar
KNN'yi diğer yaygın makine öğrenimi algoritmalarından ayırmak önemlidir:
- K-Ortalamalar Kümelemesi (K-Means Clustering): İsimleri benzer olsa da, işlevleri çok farklıdır. K-Ortalamalar, verileri K farklı, örtüşmeyen alt gruplara (kümeler) ayırmak için kullanılan bir denetimsiz öğrenme (unsupervised learning) algoritmasıdır. KNN ise, etiketli verilere dayalı tahmin için kullanılan denetimli bir algoritmadır.
- Destek Vektör Makinesi (SVM): SVM, özellik uzayındaki farklı sınıfları ayıran mümkün olan en iyi hiper düzlemi bulmaya çalışan denetimli bir algoritmadır. KNN kararları yerel komşu benzerliğine göre verirken, SVM küresel bir optimal sınır bulmayı amaçlar, bu da onu yaklaşımında temelde farklı kılar. Daha fazla ayrıntı Scikit-learn SVM sayfasında bulunabilir.
- Karar Ağaçları (Decision Trees): Karar Ağacı, hiyerarşik, kural tabanlı kararların bir modelini oluşturarak verileri sınıflandırır. Bu, ağaç benzeri bir yapıyla sonuçlanırken, KNN açık kurallar öğrenmeden mesafe tabanlı benzerliğe dayanır. Scikit-learn Karar Ağaçları belgelerinde daha fazla bilgi edinebilirsiniz.
KNN, temel makine öğrenimi kavramlarını anlamak ve daha küçük, iyi düzenlenmiş veri kümelerinde kullanmak için değerli bir araç olsa da, büyük veri ile gerçek zamanlı çıkarım için hesaplama açısından yoğun olabilir. Gerçek zamanlı nesne tespiti gibi karmaşık bilgisayarlı görü görevleri için, Ultralytics YOLO gibi daha gelişmiş modeller, üstün hızları ve doğrulukları nedeniyle tercih edilir. Bu modeller, Ultralytics HUB gibi platformlar kullanılarak kolayca eğitilebilir ve dağıtılabilir.