K-En Yakın Komşular (KNN) algoritmasını keşfedin. Bu denetimli öğrenme algoritmasının sınıflandırma ve regresyon için nasıl çalıştığını, görsel aramada nasıl kullanıldığını ve Ultralytics ile entegrasyonunu öğrenin.
K-En Yakın Komşular (KNN), sınıflandırma ve regresyon görevleri için denetimli öğrenme alanında kullanılan sağlam ve sezgisel bir algoritmadır. Basitliği ile öne çıkan KNN, eğitim aşamasında bir model oluşturmadığı veya parametreleri öğrenmediği için genellikle "tembel öğrenen" olarak sınıflandırılır. Bunun yerine, tüm Bunun yerine, tüm eğitim veri setini ezberler ve yalnızca bir tahmin istendiğinde hesaplamalar yapar. Algoritmanın temel prensibi, özellik benzerliğine dayanır: çok boyutlu bir özellik uzayında benzer özelliklere sahip veri noktalarının birbirine çok yakın olduğunu varsayar.
K-En Yakın Komşular mekanizması, mesafe hesaplamalarıyla çalışır. Yeni bir sorgu noktası eklendiğinde, algoritma depolanan veri kümesini tarayarak yeni girişe en yakın 'K' sayıda eğitim örneğini bulur.
'K' için en uygun değeri seçmek, hiperparametre ayarlamada kritik bir adımdır. K seçimi, modelin performansını ve yeni verilere genelleme yeteneğini önemli ölçüde etkiler.
Derin sinir ağlarına kıyasla basit olmasına rağmen, KNN, özellikle gelişmiş özellik çıkarma teknikleriyle birleştirildiğinde, modern yapay zeka alanında büyük önemini korumaktadır.
Etkili olmasına rağmen, KNN boyutsallığın lanetiyle karşı karşıyadır. Özelliklerin sayısı (boyutlar) arttıkça, veri noktaları seyrekleşir ve mesafe ölçütleri etkinliğini yitirir. Ayrıca, tüm eğitim verilerini depoladığı için, KNN bellek yoğun olabilir ve büyük veri kümelerinde yüksek çıkarım gecikmesi yaşayabilir. Bunu çözmek için uygulayıcılar genellikle Başlıca Bileşen Analizi (PCA) gibi boyutsallık azaltma tekniklerini kullanarak verileri önceden işler veya arama hızını artırmak için KD-Ağaçları gibi özel veri yapıları kullanır. Veri kümelerinin ve model eğitiminin kurumsal düzeyde ölçeklendirilmesi için Ultralytics kullanmak, karmaşık verilerin ön işlenmesi için gereken hesaplama kaynaklarının yönetilmesine yardımcı olabilir.
K-En Yakın Komşular ile K-Ortalamalar kümeleme yöntemini birbirinden ayırmak önemlidir, çünkü benzer isimleri genellikle karışıklığa neden olur.
Aşağıdaki kod parçacığı, popüler Scikit-learn kütüphanesini kullanarak basit bir KNN sınıflandırma iş akışını göstermektedir. Bilgisayar görme bağlamında, girdi "özellikleri" genellikle KNN sınıflandırıcısına aktarılmadan önce YOLO26 gibi bir derin öğrenme modeli tarafından çıkarılır.
from sklearn.neighbors import KNeighborsClassifier
# Simulated feature vectors (e.g., extracted from YOLO26) and labels
# Features: [Size, Redness], Labels: 0=Apple, 1=Orange
features = [[0.8, 0.9], [0.9, 0.8], [0.2, 0.3], [0.3, 0.2]]
labels = [0, 0, 1, 1]
# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(features, labels)
# Predict the class of a new object [Size=0.85, Redness=0.85]
prediction = knn.predict([[0.85, 0.85]])
print(f"Predicted Class: {prediction[0]} (0=Apple, 1=Orange)")