K-en yakın komşu (KNN): komşulara bakarak sınıflandırma
KNN'in yeni bir örneği komşularına bakarak nasıl sınıflandırdığını, mesafe ve ağırlık seçiminin neyi değiştirdiğini, k değerinin neden dengeli seçilmesi gerektiğini ve algoritmanın zayıf noktalarını öğrenirsiniz.
Bir bakışta
- KNN, öğrenme aşamasında model kurmaz, eğitim verisini saklar. Bu nedenle örnek tabanlı ya da genelleştirmeyen öğrenme denir.
- Tahmin, en yakın k komşunun oyuyla yapılır. Yeni nokta, komşuları arasında en çok temsil edilen sınıfa atanır.
- k değeri veriye bağlıdır ve bir denge kurar. Büyük k gürültüyü bastırır ama sınıf sınırlarını belirsizleştirir.
- Mesafeye dayandığı için ölçek ve boyut sayısı sonucu etkiler. Çok boyutlu uzayda yakınlık anlamını yitirir; buna boyut laneti denir.
KNN nedir?
K-en yakın komşu (K-Nearest Neighbors, KNN), bir örneği, ona en yakın k eğitim örneğinin sınıfına bakarak sınıflandıran algoritmadır. Fikri günlük hayata çok yakındır: bir şeyin ne olduğunu bilmiyorsanız, en çok benzediği örneklere bakarsınız.
KNN'i öğrenme algoritmalarının çoğundan ayıran şey, öğrenme aşamasında genel bir model kurmamasıdır. Eğitim verisinin kendisi modeldir. Bu yüzden örnek tabanlı öğrenme ya da genelleştirmeyen öğrenme olarak adlandırılır. Eğitim hızlı olur, bedeli ise tahmin sırasında ödenir: her yeni örnek için saklanan verideki komşuların bulunması gerekir.
KNN nasıl çalışır?
Yeni bir örnek geldiğinde algoritma önce onun eğitim örneklerine olan uzaklıklarını hesaplar. Sonra en yakın k örneği seçer ve sınıf etiketlerine bakar. Tahmin, bu komşular arasında en çok temsil edilen sınıftır; buna çoğunluk oyu denir.
Küçük bir örnek verelim: bir müşterinin ürünü alıp almayacağını tahmin etmek istiyorsunuz. Müşteriyi yaş ve gelir gibi özellikleriyle bir noktaya çevirir, geçmiş müşteriler arasında ona en yakın olanlara bakarsınız. Komşuların çoğu almışsa tahmin alacak yönündedir.
Bilmek gereken iki ayrıntı vardır. Varsayılan durumda her komşu eşit ağırlıktadır, ama yakın komşuların daha çok söz sahibi olduğu mesafeyle ters orantılı ağırlıklandırma da seçilebilir. Ayrıca iki komşu eşit uzaklıkta ama farklı etiketliyse sonuç eğitim verisinin sırasına bağlı kalabilir.
Mesafe nasıl ölçülür?
Yakınlık, bir mesafe ölçüsüyle tanımlanır. En yaygın seçim Öklid mesafesidir, yani düz çizgi uzaklığı. Manhattan, Chebyshev, Minkowski ve kosinüs gibi başka ölçüler de kullanılabilir; hangisinin uygun olduğu verinin yapısına bağlıdır.
KNN tamamen mesafeye dayandığı için özelliklerin ölçeği sonucu doğrudan etkiler. Gelir gibi büyük değerli bir özellik, yaş gibi küçük değerli bir özelliği mesafe hesabında bastırabilir. Bu yüzden özellikleri benzer ölçeğe getirmek uygulamada yaygın bir ön adımdır.
k değeri nasıl seçilir?
k değerinin en iyisi veriye bağlıdır; her veri kümesi için geçerli bir kural yoktur. Genel dengeyi şöyle özetlemek mümkündür: k büyüdükçe gürültünün etkisi bastırılır, fakat sınıflar arasındaki sınırlar belirsizleşir. k küçükken sınırlar ayrıntılı olur, ama tek bir gürültülü örnek tahmini bozabilir.
Pratikte k, farklı değerler denenip çapraz doğrulamayla karşılaştırılarak seçilir. Örnekler veri uzayında eşit dağılmıyorsa komşu sayısı yerine sabit bir yarıçap içindeki örneklere bakan sürüm de vardır; seyrek bölgelerde daha az komşuyla karar verilir.
k büyüdükçe gürültü azalır, sınırlar da bulanıklaşır
k seçiminin dengesi
Güçlü yanlar ve zayıf noktalar
KNN'in güçlü yanı sadeliğidir. Anlaşılması kolaydır, eğitim aşaması neredeyse yoktur ve doğrusal olmayan karmaşık sınırlara uyum sağlayabilir. Yeni örnekler eklendikçe model kendiliğinden güncellenir, çünkü model veridir.
Zayıf noktaları üç başlıkta toplanır. Birincisi tahmin maliyetidir: büyük veride her sorgu için komşuları aramak yavaşlayabilir, bunu hızlandırmak için ağaç tabanlı arama yapıları kullanılır. İkincisi boyut lanetidir; özellik sayısı çok arttığında ağaç yapıları da verimsizleşir ve yakınlık güvenilirliğini yitirir. Üçüncüsü, ölçeklemeye ve ilgisiz özelliklere duyarlılığıdır. Bu nedenle KNN genellikle orta boyutlu ve iyi hazırlanmış veride başlangıç referansı olarak kullanılır.
Veri bilimi programlarında yeri
KNN, denetimli öğrenme algoritmalarının ilk öğrenilenlerindendir. Mindset'in Veri Bilimi Sertifika Programı denetimli öğrenim ve model değerlendirmeyi, Data Science Uzmanlığı Sertifika Programı makine öğrenmesi temellerini ve ileri model optimizasyonunu içerir. k gibi hiperparametrelerin çapraz doğrulamayla seçilmesi, bu model değerlendirme başlıklarıyla doğrudan ilişkili bir beceridir.
İlgili Mindset programı
Veri Bilimi Sertifika Programı
Sık sorulan sorular
KNN neden tembel öğrenici olarak adlandırılır?
Çünkü eğitim sırasında genel bir model kurmaz, yalnızca veriyi saklar. Asıl hesap tahmin anında yapılır. Bu nedenle eğitim hızlıdır ama her tahminde komşuları aramak gerekir.
KNN'de komşuların ağırlığı eşit midir?
Varsayılan seçenekte eşit ağırlık verilir. İstenirse komşuların ağırlığı mesafeyle ters orantılı alınabilir; böylece daha yakın komşu karar üzerinde daha etkili olur. Özel bir ağırlık fonksiyonu tanımlamak da mümkündür.
KNN için veriyi ölçeklemek şart mıdır?
Zorunluluk olarak değil ama kuvvetle önerilen bir adımdır. Algoritma mesafeye dayandığı için büyük ölçekli bir özellik küçük ölçekli olanların etkisini bastırabilir. Ölçekleme sonucu sık sık iyileştirir.
Çok sayıda özellik KNN'i nasıl etkiler?
Özellik sayısı arttıkça veri uzayı seyrekleşir, yakın ve uzak ayrımı zayıflar. Bu duruma boyut laneti denir; hem tahmin kalitesini hem de ağaç tabanlı arama hızını düşürür. Gereksiz özellikleri azaltmak çoğu zaman yardımcı olur.
KNN ile SVM arasında nasıl seçim yapılır?
Basit bir referans modeli hızla kurmak için KNN uygun olabilir. Yüksek boyutlu veride ya da tahmin hızının önemli olduğu durumlarda SVM gibi bir karar sınırı öğrenen yöntem daha elverişlidir. Gerçek karar için iki model aynı doğrulama düzeninde karşılaştırılır.