K-En Yakın Komşular (KNN)
K-En Yakın Komşular'ın (KNN) 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şular (KNN) hem sınıflandırma hem de regresyon görevleri için kullanılan temel bir denetimli öğrenme algoritmasıdır. Örnek tabanlı veya "tembel öğrenme" algoritması olarak kabul edilir çünkü eğitim verisi aşamasında bir model oluşturmaz. Bunun yerine, tüm veri kümesini depolar ve depolanan verilerdeki en benzer 'K' örneği (komşuları) bularak tahminlerde bulunur. Temel fikir, benzer veri noktalarının yakın mesafede bulunmasıdır. Yeni, sınıflandırılmamış bir veri noktası için KNN en yakın komşularını belirler ve kendi sınıflandırmasını veya değerini belirlemek için bunların etiketlerini kullanır.
KNN Nasıl Çalışır?
KNN algoritması, tipik olarak bir mesafe metriği ile ölçülen basit bir benzerlik prensibine göre çalışır. En yaygın olanı Öklid uzaklığıdır, ancak veri kümesine bağlı olarak başka metrikler de kullanılabilir.
Bir tahminde bulunma 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.
- Uzaklıkları Hesaplayın: Yeni bir veri noktası için algoritma, bu nokta ile eğitim veri kümesindeki diğer tüm noktalar arasındaki mesafeyi hesaplar.
- Komşuları Belirle: Eğitim setinden yeni noktaya en yakın K veri noktasını tanımlar. Bunlar "en yakın komşular "dır.
- Bir Tahmin Yapın:
- Sınıflandırma görevleri için algoritma çoğunluk oylaması gerçekleştirir. Yeni veri noktası, en yakın K komşusu arasında en yaygın olan sınıfa atanır. Örneğin, K=5 ise ve üç komşusu A Sınıfı ve iki komşusu 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şularının değerlerinin ortalamasını hesaplar. Bu ortalama, yeni veri noktası için öngörülen değer haline gelir.
Gerçek Dünya Uygulamaları
KNN'nin basitliği ve sezgisel yapısı, onu çeşitli uygulamalarda, özellikle de bir temel model olarak kullanışlı kılmaktadır.
- Öneri Sistemleri: KNN, tavsiye motorları oluşturmak için popüler bir seçimdir. Örneğin, bir yayın hizmeti, benzer izleme geçmişine sahip diğer kullanıcıları (komşular) tanımlayarak bir kullanıcıya film önerebilir. Bu komşular tarafından beğenilen ve hedef kullanıcının izlemediği filmler daha sonra tavsiye edilir. Bu teknik bir tür işbirlikçi filtreleme yöntemidir.
- Finansal Hizmetler: Finans alanında KNN kredi puanlaması için kullanılabilir. Algoritma, yeni bir kredi başvuru sahibini, kredi sonuçları bilinen geçmiş başvuru sahiplerinden oluşan bir veri tabanıyla karşılaştırarak, yeni başvuru sahibinin temerrüde düşme olasılığının olup olmadığını tahmin edebilir. Komşular, benzer finansal profillere (örneğin, yaş, gelir, borç seviyesi) sahip geçmiş başvuru sahipleridir ve temerrüt geçmişleri tahmini bilgilendirir. Bu, ilk risk değerlendirmelerinin otomatikleştirilmesine yardımcı olur.
KNN ve İlgili Kavramlar
KNN'yi diğer yaygın makine öğrenimi algoritmalarından ayırmak önemlidir:
- K-Means Kümeleme: İsimleri benzer olsa da işlevleri çok farklıdır. K-Means, verileri K farklı, örtüşmeyen alt gruplara (kümelere) ayırmak için kullanılan denetimsiz bir öğrenme algoritmasıdır. Buna karşılık KNN, etiketli verilere dayalı tahmin için kullanılan denetimli bir algoritmadır.
- Destek Vektör Makinesi (SVM): DVM, özellik uzayında farklı sınıfları ayıran mümkün olan en iyi hiper düzlemi bulmaya çalışan denetimli bir algoritmadır. KNN yerel komşu benzerliğine dayalı kararlar verirken, SVM küresel bir optimum sınır bulmayı amaçlar ve bu da onu yaklaşımında temelde farklı kılar. Daha fazla ayrıntı Scikit-learn SVM sayfasında bulunabilir.
- Karar Ağaçları: Bir Karar Ağacı, hiyerarşik, kural tabanlı kararlardan oluşan bir model oluşturarak verileri sınıflandırır. Bu, ağaç benzeri bir yapıyla sonuçlanırken, KNN açık kuralları öğrenmeden mesafeye dayalı benzerliğe dayanır. Scikit-learn Decision Trees dokümantasyonunda 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 verilerle gerçek zamanlı çıkarım için hesaplama açısından yoğun olabilir. Gerçek zamanlı nesne algılama gibi karmaşık bilgisayarla görme 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.