Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

K-En Yakın Komşu (KNN)

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.

Algoritma Nasıl Çalışır?

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.

  1. Mesafe Ölçümü: Sistem, sorgu noktası ile veritabanındaki diğer tüm noktalar arasındaki mesafeyi hesaplar. En yaygın ölçü, noktalar arasındaki düz çizgi mesafesini ölçen Öklid mesafesidir. Veri türüne bağlı olarak, Manhattan mesafesi (Taksi geometrisi) veya Minkowski mesafesi gibi diğer ölçüler de kullanılabilir. .
  2. Komşu Seçimi: Mesafeleri hesapladıktan sonra, algoritma bunları sıralar ve en yakın 'K' girişi belirler.
  3. Karar Verme:
    • Sınıflandırma için: Algoritma "çoğunluk oyu" sistemini kullanır. K komşular arasında en sık görülen sınıf etiketi sorgu noktasına atanır. Bu, temel görüntü sınıflandırma görevlerinde yaygın olarak kullanılır.
    • Regresyon için: Tahmin, sürekli bir değişkeni tahmin etmek için K en yakın komşunun değerlerinin ortalaması alınarak hesaplanır. .

Doğru 'K'yi Seçmek

'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.

  • Düşük K Değeri: Küçük bir K (örneğin, K=1) modeli verilerdeki gürültü ve aykırı değerlere karşı oldukça duyarlı hale getirir ve bu da aşırı uyuma yol açabilir.
  • Yüksek K Değeri: Büyük bir K, karar sınırlarını yumuşatarak gürültünün etkisini azaltır, ancak belirgin kalıpları bulanıklaştırarak uygun olmayan sonuçlara yol açabilir.

Gerçek Dünya Uygulamaları

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.

  • Öneri Sistemleri: KNN, medya akışı ve e-ticarette işbirliğine dayalı filtrelemeyi kolaylaştırır. Benzer izleme geçmişlerine veya satın alma davranışlarına sahip kullanıcıları (komşular) belirleyerek, platformlar kullanıcının "en yakın komşularının" tercihlerine göre hoşuna gidebilecek ürünler önerebilir.
  • Anormallik Tespiti: Siber güvenlik ve finans alanında KNN, anormallik tespiti için kullanılır. İşlemler veya ağ faaliyetleri bir özellik alanında haritalanır; "normal" faaliyetlerin yoğun kümelerinden uzak olan herhangi bir yeni veri noktası, potansiyel dolandırıcılık veya güvenlik ihlali olarak işaretlenir.
  • Görsel Arama: Modern vektör arama motorları, genellikle Yakın Komşu (ANN) algoritmalarına (KNN'nin optimize edilmiş bir varyasyonu) dayanarak, YOLO26 gibi modeller tarafından üretilen yüksek boyutlu gömülü verilere dayalı olarak benzer görüntüleri hızlı bir şekilde bulur.

Zorluklar ve Dikkat Edilmesi Gerekenler

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.

KNN ile K-Means'ı ayırt etme

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.

  • KNN, etiketli verileri kullanarak tahminlerde bulunan denetimli bir öğrenme algoritmasıdır.
  • K-Means, denetimsiz öğrenme algoritmasıdır ve etiketlenmemiş verileri yapısal benzerliklere göre kümeler halinde gruplandırmak için kullanılır.

Uygulama Örneği

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)")

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın