Destek Vektör Makineleri (SVM), sınıflandırma ve regresyon problemlerinde yüksek başarı gösteren denetimli bir makine öğrenmesi algoritmasıdır. Özellikle küçük ve orta ölçekli veri kümelerinde, doğrusal olmayan sınırları öğrenme yeteneği sayesinde popülerliğini korur. SVM'nin temel amacı, sınıfları en iyi ayıran hiperdüzlemi bulmak ve bu hiperdüzleme en yakın veri noktaları (destek vektörleri) arasındaki marjı maksimize etmektir.
SVM'in Çalışma Prensibi
SVM, sınıflar arasında bir karar sınırı (hiperdüzlem) oluşturarak çalışır. Doğrusal olarak ayrılabilen verilerde, bu hiperdüzlem iki sınıfı hatasız ayırır. Ancak gerçek dünyada veriler çoğunlukla doğrusal değildir. İşte bu noktada çekirdek (kernel) fonksiyonları devreye girer. Çekirdek fonksiyonları, verileri daha yüksek boyutlu bir uzaya taşıyarak doğrusal ayırıcı bulmayı sağlar.
Marj ve Destek Vektörleri
Marj, hiperdüzlem ile en yakın veri noktaları arasındaki mesafedir. SVM, marjı maksimize eden hiperdüzlemi seçer. Bu sayede model, yeni verilere karşı daha dayanıklı hale gelir. Destek vektörleri ise marjın belirlenmesinde kritik rol oynayan veri noktalarıdır. Sadece bu noktalar hiperdüzlemin konumunu etkiler; diğer noktaların etkisi yoktur.
Önemli: Destek vektörlerinin sayısı, modelin karmaşıklığını doğrudan etkiler. Çok fazla destek vektörü aşırı öğrenmeye işaret edebilir; çok azı ise yetersiz öğrenmeye. Bu nedenle hiperparametre ayarları (C ve gamma) dikkatle seçilmelidir.
Çekirdek Fonksiyonları (Kernel Trick)
Çekirdek fonksiyonları, verileri dönüştürmeden, yüksek boyutlu uzayda iç çarpım hesaplamasına izin verir. Bu, SVM'in doğrusal olmayan sınırları öğrenmesini sağlar. En yaygın kullanılan çekirdek fonksiyonları şunlardır:
| Çekirdek | Formül | Kullanım Alanı |
|---|---|---|
| Lineer | K(x,y)=x·y | Doğrusal ayrılabilen veriler, yüksek boyutlu seyrek veri |
| Polinomial | K(x,y)=(x·y+r)^d | Polinom derecesi d ile kontrol edilen kavisli sınırlar |
| RBF (Gaussian) | K(x,y)=exp(-γ||x-y||^2) | Çoğu problemde iyi sonuç verir, esnek |
| Sigmoid | K(x,y)=tanh(α x·y + c) | Sinir ağları benzeri davranış, dikkatli kullanılmalı |
RBF Çekirdeği Neden Bu Kadar Popüler?
RBF (Radial Basis Function), doğrusal olmayan dönüşümleri esnek bir şekilde modelleyebildiği için sıklıkla tercih edilir. Tek bir hiperparametre (γ) ile sınırların karmaşıklığı ayarlanabilir. Ancak γ çok büyük olursa aşırı öğrenme, çok küçük olursa yetersiz öğrenme riski artar. Bu nedenle bir dizi γ değeri denenmelidir.
SVM Hiperparametreleri: C ve Gamma
Hiperparametre ayarları SVM başarısını belirleyen en önemli faktörlerdir. İki temel parametre şunlardır:
Düzenlileştirme Parametresi C
C, hatalı sınıflandırmanın cezasını kontrol eder. Düşük C değeri daha geniş bir marj sağlar ancak hatalı sınıflandırmaya izin verir (yumuşak marj). Yüksek C, marjı daraltır ve eğitim verisini tam doğru sınıflandırmaya zorlar, bu da aşırı öğrenmeye yol açabilir. C değeri seçimi, L1 ve L2 düzenlileştirmedeki lambda parametresine benzer bir denge kurar.
Kernel Katsayısı Gamma
γ (gamma), RBF ve polinomial çekirdeklerde kullanılır. γ değeri, bir veri noktasının etki alanını belirler. Düşük γ geniş bir etki alanı (daha düzgün sınırlar), yüksek γ dar bir etki alanı (karmaşık sınırlar) demektir. Genellikle γ = 1/(özellik sayısı * veri varyansı) başlangıç değeri önerilir.
SVM ile Boyut İndirgeme
SVM, yüksek boyutlu verilerde iyi çalışsa da, özellik sayısı çok fazlaysa performans düşebilir. Bu durumda boyut indirgeme yöntemleri (PCA gibi) ile özellik sayısı azaltılabilir. PCA, verinin varyansını koruyarak düşük boyutlu bir temsil oluşturur ve SVM'in daha hızlı eğitilmesini sağlar.
Pratik Uygulama Adımları
SVM kullanırken izlenmesi gereken adımlar şunlardır:
- Veri Ön İşleme: Özellikleri ölçeklendirin (standartlaştırma veya normalizasyon). SVM, mesafe tabanlı bir algoritma olduğu için ölçek farklılıklarından etkilenir.
- Çekirdek Seçimi: Veri yapısını keşfedin. Doğrusal ise lineer çekirdek; değilse RBF başlangıç için iyidir.
- Hiperparametre Arama: GridSearchCV veya RandomSearchCV ile C ve gamma değerlerini optimize edin.
- Model Eğitimi: Seçilen parametrelerle modeli eğitin ve çapraz doğrulama ile değerlendirin.
- Yorumlama: Destek vektörlerinin sayısını ve sınırların karmaşıklığını kontrol edin.
Sık Yapılan Hatalar
- Ölçeklendirme yapmamak: Özelliklerin büyüklükleri farklıysa SVM yanlış yönlendirilir.
- Yanlış kernel seçimi: Veri doğrusal değilken lineer çekirdek kullanmak düşük performansa yol açar.
- C ve gamma'yı birlikte ayarlamamak: Bu iki parametre birbirini etkiler; beraber optimize edilmelidir.
- Büyük veri kümelerinde SVM kullanmak: SVM, eğitim süresi örnek sayısıyla karesel olarak arttığı için büyük verilerde (100.000+ örnek) yavaşlayabilir. Alternatif olarak SGDClassifier veya sinir ağları düşünülebilir.
Sonuç
Destek Vektör Makineleri, özellikle orta ölçekli ve karmaşık sınıflandırma problemlerinde güçlü bir araçtır. Doğru çekirdek ve hiperparametre seçimi ile yüksek doğruluk elde etmek mümkündür. Ancak aşırı öğrenmeye karşı dikkatli olunmalı ve düzenlileştirme parametresi C iyi ayarlanmalıdır. SVM'i öğrenmek, makine öğrenmesi yolculuğunuzda sağlam bir temel oluşturacaktır.
Sık Sorulan Sorular
SVM'de çekirdek fonksiyonu (kernel trick) nedir ve neden önemlidir?
Çekirdek fonksiyonu, verileri daha yüksek boyutlu bir uzaya dönüştürmeden iç çarpım hesaplamasına izin verir. Bu sayede SVM, doğrusal olmayan sınırları öğrenebilir. Doğru çekirdek seçimi, modelin veri yapısına uygun karar sınırları çizmesini sağlar.
SVM'de C ve gamma hiperparametreleri nasıl seçilmelidir?
C, hatalı sınıflandırma cezasını kontrol eder; düşük C daha geniş marj ama hata toleransı sağlar. Gamma, RBF çekirdeğinde bir veri noktasının etki alanını belirler. Genellikle bir ızgara araması (GridSearchCV) ile bu iki parametre birlikte optimize edilir.
SVM ile sinir ağları arasında ne zaman SVM tercih edilmelidir?
SVM, küçük ve orta ölçekli veri kümelerinde (birkaç bin örnek), özellikle yorumlanabilirlik istendiğinde iyi sonuç verir. Sinir ağları ise çok büyük veri kümelerinde ve görüntü işleme gibi karmaşık görevlerde daha başarılıdır.






