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şular (KNN) parametrik olmayan bir yöntemdir,
için yaygın olarak kullanılan denetimli öğrenme algoritması
hem sınıflandırma hem de regresyon görevleri. Genellikle şu şekilde anılır
"tembel öğrenen" veya örnek tabanlı bir öğrenme yöntemi olarak KNN, aşağıdakilerden ayırt edici bir fonksiyon üretmez
bir eğitim aşaması sırasında eğitim verileri. Bunun yerine,
tüm veri kümesini hafızaya alır ve yalnızca yeni örnekler üzerinde tahminler yaparken hesaplamalar yapar. Bu yaklaşım
benzer veri noktalarının özellik uzayında birbirine yakın olduğunu varsayar ve algoritmanın aşağıdakileri classify
olanak tanır
çoğunluk sınıfına veya en yakın komşularının ortalama değerine dayalı yeni girdiler.
KNN Nasıl Çalışır?
K-En Yakın Komşular'ın çalışma mekanizması, veriler arasındaki benzerliği ölçmek için mesafe metriklerine dayanır
noktalar. En yaygın metrik şudur
Öklid mesafesi, gibi diğerleri olsa da
Manhattan uzaklığı veya Minkowski uzaklığı kullanılabilir
problem alanına bağlı olarak değişir. Tahmin süreci birkaç farklı adım içerir:
-
K'yı seçin: Kullanıcı, 'K' olarak gösterilen komşu sayısını tanımlar. Bu, aşağıdakiler için çok önemli bir adımdır
hiperparametre ayarı, K değeri olarak
modelin performansını doğrudan etkiler.
önyargı-varyans ödünleşimi. Küçük bir K, aşağıdakilere yol açabilir
büyük bir K belirgin sınırları yumuşatabilirken, gürültüye duyarlılık.
-
Uzaklıkları Hesaplayın: Yeni bir sorgu noktası tanıtıldığında, algoritma mesafeyi hesaplar
Bu nokta ile depolanan veri kümesindeki her örnek arasında.
-
Komşuları Belirle: Algoritma mesafeleri sıralar ve en iyi K girdiyi en iyi komşu ile seçer.
en küçük değerler.
-
Toplanmış Çıktı:
-
Sınıflandırma: Algoritma, K sınıfları arasında en sık görünen sınıf etiketini atar.
komşular (oy çokluğu).
-
Regresyon: Tahmin, K değerlerinin hedef değerlerinin ortalaması olarak hesaplanır.
Komşular.
KNN'nin basitliği, onu birçok kişi için etkili bir temel haline getirir
makine öğrenimi problemleri. Aşağıda kısa bir
için popüler Scikit-learn kütüphanesini kullanan örnek
Temel bir sınıflandırma iş akışı gösterebilir.
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
# distinct classes: 0 and 1
X_train = np.array([[1, 1], [1, 2], [2, 2], [5, 5], [5, 6], [6, 5]])
y_train = np.array([0, 0, 0, 1, 1, 1])
# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# Predict class for a new point [4, 4]
prediction = knn.predict([[4, 4]])
print(f"Predicted Class: {prediction[0]}")
# Output: 1 (Closer to the cluster at [5,5])
Gerçek Dünya Uygulamaları
Basitliğine rağmen, K-En Yakın Komşular, yorumlanabilirlik ve güvenilirliğin ön planda olduğu çeşitli karmaşık alanlarda kullanılmaktadır.
örnek tabanlı muhakeme değerlidir.
-
Tavsiye Motorları: KNN şunları kolaylaştırır
işbirlikçi filtreleme
tavsiye sistemlerinde. Akış
platformları, benzer görüntüleme geçmişine sahip kullanıcıları (komşular) bularak içerik önermek için kullanır.
beğendikleri öğeler. Bu yöntem kişiselleştirilmiş kullanıcı deneyimleri için etkilidir.
-
Tıbbi Teşhis: İçinde
tıbbi görüntü analizi, KNN aşağıdakilerde yardımcı olabilir
Hasta ölçümlerini veya görüntü özelliklerini geçmiş vakalardan oluşan bir veri tabanıyla karşılaştırarak durumları teşhis etme. İçin
örneğin, classify
yardımcı olabilir
meme kanseri tümörleri olarak
Hücre özelliklerinin doğrulanmış vakalarla benzerliğine dayanarak kötü huylu veya iyi huylu.
-
Anomali Tespiti: Finansal kuruluşlar KNN'yi
dolandırıcılığı tespit etmek için anomali tespiti. Tarafından
İşlem kalıplarını analiz eden sistem, bir kullanıcının standart işlemlerinden önemli ölçüde sapan faaliyetleri işaretleyebilir.
davranışı-esasen "en yakın komşularından" uzak olan noktalar.
KNN'yi İlgili Algoritmalardan Ayırmak
KNN ve diğer algoritmalar arasındaki farkları anlamak, bir algoritma için doğru aracı seçmek açısından hayati önem taşır.
bilgisayarla görme veya veri analizi projesi.
-
K-Means Kümeleme: KNN ile karıştırmak kolaydır
Benzer isimler nedeniyle K-Means Kümeleme.
Bununla birlikte, K-Means bir
gruplayan denetimsiz öğrenme tekniği
etiketlenmemiş verileri kümelere ayırırken, KNN tahmin için etiketli verilere ihtiyaç duyan denetimli bir tekniktir.
-
Destek Vektör Makinesi (SVM): Her ikisi de sınıflandırma için kullanılırken
Destek Vektör Makinesi (SVM) odakları
sınıflar arasındaki marjı maksimize eden global bir karar sınırı (hiper düzlem) bulmaya odaklanır. KNN, tersine, şunları yapar
Küresel bir model oluşturmadan yerel veri yoğunluğuna dayalı kararlar. Bu farklılıklar hakkında daha fazla bilgi için
SVM belgeleri.
-
Karar Ağaçları: A
Karar Ağacı, verileri açık bir şekilde öğrenerek sınıflandırır,
özellik uzayını bölen hiyerarşik kurallar. KNN, özellik uzayında tamamen mesafe metriklerine dayanır ve
düzensiz karar sınırlarına karşı daha esnektir ancak çıkarım sırasında hesaplama açısından daha ağırdır.
KNN daha küçük veri kümeleri için güçlü olsa da, aşağıdaki durumlarda ölçeklenebilirlik sorunlarıyla karşılaşır
hesaplama maliyeti nedeniyle büyük veri
her sorgu için mesafeler. Yüksek performans için,
gibi görevlerde gerçek zamanlı çıkarım
nesne algılama, modern derin öğrenme
gibi mimariler YOLO11 için genellikle tercih edilmektedir.
üstün hız ve doğruluk.