K-En Yakın Komşular (KNN): Nedir ve Makine Öğreniminde Nasıl Kullanılır?
Yayınlanan: 2024-12-18K-en yakın komşular (KNN), makine öğreniminde (ML) temel bir tekniktir. Bu kılavuz KNN'i, nasıl çalıştığını, uygulamalarını, faydalarını ve zorluklarını anlamanıza yardımcı olacaktır.
İçindekiler
k-en yakın komşu algoritması nedir?
KNN nasıl çalışır?
K-en yakın komşular ile diğer algoritmalar arasındaki fark
KNN makine öğreniminde nasıl kullanılır?
KNN uygulamaları
KNN'nin Avantajları
k-en yakın komşu algoritması nedir?
K-en yakın komşular (KNN) algoritması, hem sınıflandırma hem de regresyon için kullanılan denetimli bir öğrenme tekniğidir. KNN, veri kümesindeki yakındaki veri noktalarını değerlendirerek belirli bir veri noktasının etiketini (sınıflandırma) veya tahmin edilen değerini (regresyon) belirler.
KNN nasıl çalışır?
KNN, bir veri kümesinde mekansal olarak birbirine yakın olan veri noktalarının benzer değerlere sahip olma veya benzer kategorilere ait olma eğiliminde olduğu önermesine dayanmaktadır. KNN, bu basit ama güçlü fikri, etiketli eğitim veri kümesi içindeki komşu veri noktalarının önceden ayarlanmış sayısını (hiperparametre k) bularak yeni bir veri noktasını sınıflandırmak için kullanır. Bu değer (k), ML uygulayıcılarının algoritmanın nasıl öğrendiğini kontrol etmek için kullandıkları önceden ayarlanmış yapılandırma değişkenleri olan KNN hiperparametrelerinden biridir.
Daha sonra algoritma, komşu değerlerden hangisinin yeni veri noktasına en yakın olduğunu belirler ve ona komşularıyla aynı etiketi veya kategoriyi atar. Seçilen k değeri model performansını etkiler. Daha küçük değerler gürültü hassasiyetini artırırken, daha büyük değerler sağlamlığı artırır ancak KNN'nin yerel kalıpları kaçırmasına neden olabilir.
Veri noktaları arasındaki yakınlık veya mesafe, başlangıçta matematiksel uzaydaki noktaların benzerliğini ölçmek için geliştirilen metrikler kullanılarak hesaplanır. Yaygın ölçümler Öklid mesafesi, Manhattan mesafesi ve Minkowski mesafesini içerir. KNN performansı seçilen metrikten etkilenir ve farklı metrikler, farklı tür ve boyutlardaki verilerle daha iyi performans gösterir.
Örneğin, her bir veri noktasını açıklayan bireysel özellikler olan verilerdeki boyutların sayısı, metrik performansını etkileyebilir. Seçilen mesafe ölçüsünden bağımsız olarak amaç, yeni bir veri noktasını diğer veri noktalarına olan mesafesine göre kategorize etmek veya tahmin etmektir.
- Öklid mesafesi,uzaydaki iki nokta arasındaki düz bir çizgi boyunca olan mesafedir ve en yaygın kullanılan ölçümdür. Daha az boyuta sahip olan ve önemli aykırı değerleri olmayan veriler için kullanılması en iyisidir.
- Manhattan mesafesi,ölçülen veri noktalarının koordinatları arasındaki mutlak farkların toplamıdır. Bu ölçüm, veriler yüksek boyutlu olduğunda veya veri noktaları ızgara benzeri bir yapı oluşturduğunda kullanışlıdır.
- Minkowski mesafesi,ayarlanabilir bir parametrenin değerine bağlı olarak Öklid veya Manhattan mesafesi gibi davranabilen ayarlanabilir bir ölçümdür. Bu parametrenin ayarlanması mesafenin nasıl hesaplandığını kontrol eder; bu, KNN'nin farklı veri türlerine uyarlanması için faydalıdır.
Daha az yaygın olan diğer ölçümler arasında Chebyshev, Hamming ve Mahalanobis mesafeleri bulunur. Bu ölçümler daha uzmanlaşmıştır ve belirli veri türleri ve dağıtımları için uygundur. Örneğin Mahalanobis mesafesi, değişkenler arasındaki ilişkileri dikkate alarak bir noktanın noktaların dağılımından uzaklığını ölçer. Bu nedenle Mahalanobis mesafesi, özelliklerin farklı ölçekler kullandığı verilerle çalışmak için çok uygundur.
KNN'ye genellikle "tembel" öğrenme algoritması denir çünkü diğer birçok algoritmanın aksine eğitime ihtiyaç duymaz. Bunun yerine KNN, verileri depolar ve yalnızca yeni veri noktalarının regresyona veya sınıflandırmaya ihtiyaç duyduğu durumlarda karar vermek için kullanır. Ancak bu, her tahmin için veri kümesinin tamamı değerlendirildiğinden tahminlerin genellikle yüksek hesaplama gereksinimlerine sahip olduğu anlamına gelir. ∫
K-en yakın komşular ile diğer algoritmalar arasındaki fark
KNN, karar ağaçları / rastgele ormanlar, lojistik regresyon ve destek vektör makinelerini (SVM'ler) içeren, sınıflandırma ve regresyona yönelik daha geniş bir denetimli makine öğrenimi teknikleri ailesinin bir parçasıdır. Ancak KNN, diğer faktörlerin yanı sıra basitliği ve veri işlemeye doğrudan yaklaşımı nedeniyle bu tekniklerden farklıdır.
Karar ağaçları ve rastgele ormanlar
KNN gibi, sınıflandırma ve regresyon için karar ağaçları ve rastgele ormanlar kullanılır. Ancak bu algoritmalar, KNN'nin mesafeye dayalı yaklaşımının aksine, eğitim sırasında verilerden öğrenilen açık kuralları kullanır. Karar ağaçları ve rastgele ormanlar, önceden eğitilmiş kurallara sahip oldukları için daha hızlı tahmin hızlarına sahip olma eğilimindedirler. Bu, gerçek zamanlı tahmin görevleri ve büyük veri kümelerini işlemek için KNN'den daha uygun oldukları anlamına gelir.
Lojistik regresyon
Lojistik regresyon, verilerin doğrusal olarak dağıtıldığını varsayar ve verileri kategorilere ayırmak için düz bir çizgi veya hiperdüzlem (yüksek boyutlu alanlardaki veri noktalarını ayıran bir sınır) kullanarak verileri sınıflandırır. Öte yandan KNN, belirli bir veri dağılımını varsaymaz. Bu nedenle KNN, karmaşık veya doğrusal olmayan verilere daha kolay uyum sağlayabilirken, lojistik regresyon en iyi şekilde doğrusal verilerle kullanılır.
Destek vektör makineleri
Destek vektör makineleri (SVM), KNN gibi noktalar arasındaki mesafelere bakmak yerine, genellikle aralarındaki boşluğu olabildiğince genişletme hedefiyle veri noktası grupları arasında net bir ayrım çizgisi oluşturmaya odaklanır. SVM, birçok özelliğe sahip karmaşık veri kümelerinin işlenmesinde veya veri noktası grupları arasında net bir ayrımın gerekli olduğu durumlarda mükemmeldir. Karşılaştırıldığında, KNN'nin kullanımı ve anlaşılması daha kolaydır ancak büyük veri kümelerinde o kadar iyi performans göstermez.

KNN makine öğreniminde nasıl kullanılır?
Birçok makine öğrenimi algoritması yalnızca tek bir görev türünü işleyebilir. KNN, bir değil iki yaygın kullanım durumunu ele alma becerisiyle öne çıkıyor: sınıflandırma ve regresyon.
sınıflandırma
KNN, k-en yakın komşuları belirlemek için bir mesafe ölçüsü kullanarak ve komşuların etiketlerine dayalı olarak yeni veri noktasına bir etiket atayarak veri noktalarını sınıflandırır. Yaygın KNN sınıflandırması kullanım örnekleri arasında e-posta spam sınıflandırması, müşterilerin satın alma geçmişine göre kategorilere ayrılması ve el yazısı numara tanıma yer alır.
Regresyon
KNN, k-en yakın komşularının ortalamasına (veya ağırlıklı ortalamasına) dayanarak bir veri noktasının değerini tahmin ederek regresyon gerçekleştirir. Örneğin KNN, mahalledeki benzer mülklere dayalı ev fiyatlarını, benzer hisse senetlerinin geçmiş verilerine dayalı hisse senedi fiyatlarını veya benzer konumlardaki geçmiş hava durumu verilerine dayalı sıcaklıkları tahmin edebilir.
KNN algoritmasının ML'deki uygulamaları
Göreceli basitliği ve hem sınıflandırma hem de regresyon yapabilme yeteneği nedeniyle KNN'nin geniş bir uygulama yelpazesi vardır. Bunlara görüntü tanıma, öneri sistemleri ve metin sınıflandırması dahildir.
Görüntü tanıma
Görüntü tanıma, sınıflandırma yetenekleri nedeniyle KNN'nin en yaygın uygulamalarından biridir. KNN, bilinmeyen görüntüdeki renkler ve şekiller gibi özellikleri etiketli görüntü veri kümesindeki özelliklerle karşılaştırarak görüntü tanıma işlemini gerçekleştirir. Bu, KNN'yi bilgisayar görüşü gibi alanlarda faydalı kılar.
Öneri sistemleri
KNN, kullanıcıların tercih verilerini benzer kullanıcıların verileriyle karşılaştırarak kullanıcılara ürün veya içerik önerebilir. Örneğin, bir kullanıcı birden fazla klasik caz şarkısı dinlemişse KNN, benzer tercihlere sahip kullanıcıları bulabilir ve bu kullanıcıların hoşuna giden şarkıları önerebilir. Bu nedenle KNN, benzer verilere dayalı olarak ürün veya içerik önererek kullanıcı deneyiminin kişiselleştirilmesine yardımcı olabilir.
Metin sınıflandırması
Metin sınıflandırma, kategorize edilmemiş metni, önceden kategorize edilmiş metinle benzerliğine göre sınıflandırmayı amaçlar. KNN'in kelime kalıplarının yakınlığını değerlendirme yeteneği, onu bu kullanım durumu için etkili bir araç haline getiriyor. Metin sınıflandırma, metinlerin olumlu, olumsuz veya nötr olarak sınıflandırıldığı duygu analizi veya bir haber makalesinin kategorisini belirleme gibi görevler için özellikle kullanışlıdır.
ML'de KNN algoritmasının avantajları
KNN'in basitliği, çok yönlülüğü ve eğitim aşamasının olmaması gibi birçok önemli avantajı vardır.
Sadelik
Diğer birçok makine öğrenimi algoritmasıyla karşılaştırıldığında KNN'nin anlaşılması ve kullanılması kolaydır. KNN'nin arkasındaki mantık sezgiseldir; yakındaki veri noktalarının değerlerine dayalı olarak yeni veri noktalarını sınıflandırır veya tahmin eder (regresyon) ve bu da onu makine öğrenimi uygulayıcıları, özellikle de yeni başlayanlar için popüler bir seçim haline getirir. Ek olarak, k için bir değer seçmenin dışında, KNN'yi kullanmak için minimum düzeyde hiperparametre ayarlaması gerekir.
Çok yönlülük
KNN, hem sınıflandırma hem de regresyon görevleri için kullanılabilir; bu, görüntü tanımadan sayısal değer tahminine kadar çok çeşitli problemlere ve veri türlerine uygulanabileceği anlamına gelir. Tek bir görev türüyle sınırlı özel algoritmaların aksine KNN, uygun şekilde yapılandırılmış herhangi bir etiketli veri kümesine uygulanabilir.
Açık eğitim aşaması
Çoğu makine öğrenimi modeli, kullanışlı hale gelmeden önce zaman ve kaynak açısından yoğun bir eğitim aşaması gerektirir. Öte yandan KNN, eğitim verilerini basitçe saklar ve tahmin zamanında doğrudan kullanır. Bu sayede KNN, tahminde hemen kullanıma hazır olan yeni verilerle güncellenebilir. Bu, KNN'yi özellikle küçük veri kümeleri için çekici kılmaktadır.
ML'de KNN algoritmasının dezavantajları
KNN, güçlü yönlerine rağmen birçok zorluğu da beraberinde getiriyor. Bunlar arasında yüksek hesaplama ve bellek maliyetleri, gürültüye ve alakasız özelliklere karşı hassasiyet ve "boyutsallığın laneti" yer alıyor.
Hesaplamalı tahmin maliyeti
KNN, her tahmin yaptığında yeni bir veri noktası ile genel eğitim veri kümesindeki her veri noktası arasındaki mesafeyi hesapladığından, tahminin hesaplama maliyeti, veri kümesi büyüdükçe hızla artar. Bu, veri kümesi büyük olduğunda veya KNN'nin yetersiz donanımda çalıştırılması durumunda tahminlerin yavaşlamasına neden olabilir.
Boyutsallığın laneti
KNN, yüksek boyutlu verileri işleme yeteneğini sınırlayan sözde "boyutsallık laneti"nden muzdariptir. Bir veri kümesindeki özelliklerin sayısı arttıkça çoğu veri noktası seyrekleşir ve birbirine neredeyse eşit uzaklıkta olur. Bu nedenle mesafe ölçümleri daha az kullanışlı hale geliyor ve bu da KNN'nin yüksek boyutlu veri kümelerinde gerçekten yakın olan komşuları bulmasını zorlaştırıyor.
Bellek yoğun
KNN'nin benzersiz bir özelliği, tahmin zamanında kullanılmak üzere tüm eğitim veri setini hafızada saklamasıdır. Sınırlı bellek veya büyük veri kümeleriyle uğraşırken bu sorunlu olabilir ve pratik olmayabilir. Diğer makine öğrenimi algoritmaları, model eğitimi ve parametre optimizasyonu yoluyla eğitim verilerini yoğunlaştırıp öğrenilen özelliklere ayrıştırarak bu zorluğun üstesinden gelir. Öte yandan KNN'nin her veri noktasını koruması gerekir; bu, belleğin eğitim veri kümesi boyutuyla doğrusal olarak büyüdüğü anlamına gelir.
Gürültüye ve alakasız özelliklere karşı hassasiyet
KNN'nin gücü basit, sezgisel mesafe hesaplamasında yatmaktadır. Ancak bu aynı zamanda önemsiz özelliklerin veya gürültünün yanıltıcı mesafe hesaplamalarına neden olabileceği ve tahmin doğruluğunu olumsuz yönde etkileyebileceği anlamına da gelir. Bu nedenle, temel bileşen analizi (PCA) gibi özellik seçimi veya boyut azaltma teknikleri, önemli özelliklerin tahmin üzerinde en fazla etkiye sahip olmasını sağlamak için sıklıkla KNN ile birlikte kullanılır.