K-Nearest Neighbors (KNN): Basit ve Etkili Bir Sınıflandırma Yöntemi
Giriş
Makine öğrenmesinde, K-Nearest Neighbors (KNN), hem sınıflandırma hem de regresyon problemleri için yaygın olarak kullanılan, basit ama güçlü bir algoritmadır. Bu algoritma, Instance-Based Learning (IBL) sınıfına aittir ve öğrenme süreci, yalnızca eğitim verilerini depolamak ve yeni verilerle karşılaştırmalar yapmakla ilgilidir. KNN, bir örneği sınıflandırmak veya değerini tahmin etmek için en yakın komşularının etiketlerine dayanır.
Bu makalede, KNN algoritmasının temel prensipleri, nasıl çalıştığı, avantajları, dezavantajları, parametreleri ve kullanım alanları üzerinde duracağız.
K-Nearest Neighbors (KNN) Nedir?
K-Nearest Neighbors, bir örneği sınıflandırmak için, eğitim verilerindeki en yakın k komşusunun sınıflarına bakarak tahminde bulunan bir algoritmadır. Yani, bir veri noktasının sınıfını veya değerini belirlemek için, o veri noktasının etrafındaki k sayıda en yakın örneği bulur ve bu komşuların çoğunluk sınıfı veya ortalama değeri kullanılır.
- Sınıflandırma: Yeni bir örnek geldiğinde, KNN algoritması, en yakın k komşunun sınıflarına bakar ve sınıfların çoğunluğunu esas alarak yeni örneğin sınıfını tahmin eder.
- Regresyon: Regresyon problemlerinde ise, KNN, k en yakın komşunun değerlerinin ortalamasını alarak, yeni örneğin değerini tahmin eder.
KNN Algoritmasının Temel Prensipleri
KNN algoritmasının temel prensibi, benzer verilerin benzer sınıflara veya değerlere sahip olacağı varsayımına dayanır. Bu varsayım, “yakınlık” ilkesine dayalıdır ve genellikle mesafe ölçütleri kullanılarak benzerlik hesaplanır.
1. Mesafe Ölçütleri
KNN’de benzerlik, veri noktaları arasındaki mesafeyi ölçerek hesaplanır. En yaygın kullanılan mesafe ölçütleri şunlardır:
- Öklidyen Mesafe (Euclidean Distance): İki nokta arasındaki düz mesafeyi ölçen standart mesafe ölçütüdür. D(x,y)=(x1−y1)2+(x2−y2)2+⋯+(xn−yn)2\text{D}(x, y) = \sqrt{(x_1 – y_1)^2 + (x_2 – y_2)^2 + \dots + (x_n – y_n)^2}
- Manhattan Mesafe (Manhattan Distance): Öklidyen mesafenin bir varyantıdır ve her bir özelliğin farkının toplamını alır. D(x,y)=∣x1−y1∣+∣x2−y2∣+⋯+∣xn−yn∣\text{D}(x, y) = |x_1 – y_1| + |x_2 – y_2| + \dots + |x_n – y_n|
- Minkowski Mesafesi: Öklidyen ve Manhattan mesafelerini kapsayan daha genel bir mesafe ölçütüdür.
- Cosine Similarity: İki vektör arasındaki açıyı ölçer. Özellikle metin madenciliği gibi yüksek boyutlu verilerde kullanılır.
2. k Parametresi
KNN’nin en önemli parametresi, k değeridir. k, bir örneği sınıflandırırken dikkate alınacak en yakın komşu sayısını belirtir. k değeri genellikle tek bir sayı olarak seçilir. Farklı k değerleri, modelin doğruluğunu ve genelleme yeteneğini etkileyebilir.
- K küçükse: Model, daha az komşuya bakar, bu da modelin daha hassas ancak aşırı uyum (overfitting) yapmasına yol açabilir.
- K büyükse: Model, daha fazla komşuya bakar, bu da daha genel bir karar almasını sağlar ancak aşırı genelleme (underfitting) riski yaratabilir.
3. Sınıflandırma veya Regresyon
- Sınıflandırma: Yeni örneğin sınıfı, en yakın k komşunun çoğunluk sınıfına göre belirlenir.
- Örneğin, k=3 ve komşuların sınıfları [A, A, B] ise, yeni örnek A sınıfına ait olacaktır.
- Regresyon: Yeni örneğin değeri, en yakın k komşunun değerlerinin ortalaması alınarak tahmin edilir.
- Örneğin, k=3 ve komşuların değerleri [3, 5, 7] ise, yeni örneğin tahmin edilen değeri 5 olacaktır.
KNN Algoritması Nasıl Çalışır?
- Eğitim Aşaması: KNN, öğrenme aşamasında hiçbir parametreyi öğrenmez. Sadece eğitim verilerini hafızasında saklar. Bu, modelin “bellek tabanlı” bir öğrenme yaklaşımına sahip olduğunu gösterir.
- Test Aşaması:
- Yeni bir örnek verildiğinde, algoritma, eğitim verilerindeki tüm örneklerle mesafe hesaplar.
- En yakın k komşu seçilir ve bu komşuların sınıfları veya değerleri dikkate alınarak tahmin yapılır.
Örnek: KNN sınıflandırmasında, test örneği (X) verildiğinde, algoritma bu örneğin, eğitim veri kümesindeki en yakın k komşusunu bulur. Eğer k=3 ve en yakın 3 komşu [A, A, B] ise, test örneği A sınıfına atanır.
KNN Algoritmasının Avantajları
- Basit ve Kolay Anlaşılır: KNN, öğrenmesi ve uygulaması son derece basit bir algoritmadır. Parametre öğrenimi yapmadığı için doğrudan veri setine dayalı olarak çalışır.
- Esnek ve Güçlü: Hem sınıflandırma hem de regresyon problemleri için kullanılabilir. Ayrıca, çok sayıda özelliğe sahip veri setlerinde de etkili olabilir.
- Eğitim Süresi Yok: KNN’nin eğitim aşaması yoktur; çünkü eğitim verileri yalnızca saklanır. Model, test aşamasında çalıştırıldığında tüm hesaplamalar yapılır.
- Dinamik Güncelleme: Yeni veriler geldiğinde, modelin yeniden eğitilmesine gerek yoktur. Yeni veriler, doğrudan mevcut eğitim setine eklenebilir.
KNN Algoritmasının Dezavantajları
- Yüksek Bellek İhtiyacı: KNN algoritması, eğitim setindeki tüm verileri bellekte tutar. Bu durum, büyük veri setlerinde ciddi bellek problemlerine yol açabilir.
- Yavaş Tahmin Süresi: KNN algoritması, her test örneği için tüm eğitim setiyle karşılaştırma yapar, bu da tahmin süresini yavaşlatabilir. Özellikle büyük veri setlerinde bu önemli bir dezavantajdır.
- Özellik Ölçeklendirme: KNN, mesafe hesaplama üzerine kurulu olduğu için, farklı ölçeklere sahip özellikler, modelin performansını etkileyebilir. Özellikler, aynı ölçekteki verilere dönüştürülmelidir (örneğin, standartlaştırma veya normalizasyon yapılmalıdır).
- Ağır Hesaplamalar: Özellikle yüksek boyutlu verilerle çalışırken, KNN’nin hesaplamaları pahalı hale gelebilir. Bu, büyük veri setlerinde verimliliği düşürür.
KNN’nin Parametreleri
- k: En yakın komşu sayısı, modelin doğruluğunu etkileyen en kritik parametredir.
- Mesafe Ölçütü: Mesafeyi hesaplamak için kullanılan metrik. Öklidyen mesafe en yaygın olanıdır, ancak Manhattan, Minkowski gibi diğer mesafe ölçütleri de kullanılabilir.
- Ağırlıklandırma: KNN algoritmasında, komşuların sınıf etiketlerine göre ağırlıklandırma yapılabilir. Örneğin, daha yakın komşuların daha fazla ağırlık taşıması sağlanabilir.
KNN’nin Kullanım Alanları
- Sınıflandırma Problemleri: KNN, metin sınıflandırma, spam tespiti ve biyolojik sınıflandırmalar gibi birçok alanda yaygın olarak kullanılır.
- Regresyon Problemleri: KNN, fiyat tahminleri, hava durumu tahminleri ve diğer sürekli veri problemleri için de kullanılabilir.
- Öneri Sistemleri: KNN, benzer kullanıcılar veya ürünler arasında benzerlik hesaplamaları yaparak, öneri sistemlerinin oluşturulmasında kullanılabilir.
- Anomali Tespiti: KNN, normal veri noktalarından önemli ölçüde farklı olan anomali (outlier) verilerini tespit etmek için kullanılabilir.
Sonuç
K-Nearest Neighbors (KNN), basit ama güçlü bir algoritmadır. Eğitimi genellikle hızlı
ve hafızaya dayalıdır, ancak tahmin yapmak için büyük veri setlerinde zaman ve bellek kullanımı açısından verimsiz olabilir. Yine de esnekliği ve uygulanabilirliği sayesinde, birçok farklı problemde etkili bir şekilde kullanılabilir. KNN, özellikle eğitim veri seti küçük olan veya sınıflandırma ve regresyon görevlerinin hızlıca yapılması gereken durumlarda tercih edilen bir yöntemdir.