Support Vector Machines (SVM) (Destek Vektör Makineleri)

İki sınıf arasındaki en geniş marjı bulan hiperdüzlem tabanlı denetimli öğrenme algoritması.

Destek Vektör Makineleri (Support Vector Machines — SVM), sınıflandırma ve regresyon görevleri için geliştirilmiş, teorik temeli sağlam bir denetimli makine öğrenimi algoritmasıdır. Temel fikir basittir: iki sınıfa ait veri noktalarını birbirinden ayıran en geniş kenar boşluğunu (marjı) tanımlayan hiperdüzlemi bulmak. Hiperdüzlem, iki boyutlu uzayda bir doğru, üç boyutlu uzayda bir düzlem ve daha yüksek boyutlarda genel olarak hiperdüzlem adını alır. SVM, bu hiperdüzlemi belirlerken yalnızca sınıra en yakın veri noktalarına — destek vektörlerine — odaklanır; diğer noktalar modeli etkilemez. Geniş marj ilkesi, modelin yeni ve görülmemiş örnekleri daha iyi genelleştireceği güvencesini verir. Gerçek dünyadaki veriler çoğu zaman doğrusal olarak ayrılamaz. SVM bu durumu kernel hilesi (kernel trick) ile aşar: veriyi daha yüksek boyutlu bir uzaya taşıyarak doğrusal ayrım imkânı yaratır. Hesaplama, yüksek boyutta açıkça çalışmadan iç çarpım formülü üzerinden yapılır; bu sayede polinom, RBF (Radial Basis Function) ve sigmoid kernel seçenekleri sunulur. C düzenlileştirme parametresi, marj genişliği ile eğitim hatası arasındaki dengeyi belirler. Küçük C geniş ve hata toleranslı marj üretirken, büyük C dar ama hata açısından titiz bir sınır çizer. RBF kernelde ek olarak gamma parametresi, her veri noktasının etkisi ne kadar uzağa yayıldığını kontrol eder. SVM'nin avantajları arasında yüksek boyutlu uzayda etkili çalışması, küçük-orta ölçekli veri setlerinde güçlü performans sergilemesi ve global optimuma yakınsama garantisi öne çıkar. Öte yandan 100.000 örnekten büyük veri setlerinde eğitim yavaşlar; doğrudan olasılık çıktısı üretmez; çok sınıflı görevler one-vs-rest veya one-vs-one stratejileri gerektirir. Türk makine öğrenimi mühendisleri için SVM, metin sınıflandırmada TF-IDF + LinearSVC kombinasyonu olarak hâlâ geçerli bir baseline sunar. Küçük etiketli veri setlerinde derin öğrenme modelleriyle rekabet edebilir; biyoinformatik ve tıp gibi alanlarda yorumlanabilirlik gereken durumlarda tercih edilir.

Sık Sorulan Sorular

  • check_circle SVM ile lojistik regresyon arasındaki fark nedir? Lojistik r: SVM ile lojistik regresyon arasındaki fark nedir? Lojistik regresyon log-loss minimize eder ve olasılık çıktısı üretir; SVM hinge-loss ile marjı maksimize eder ve doğrudan olasılık vermez. Lineer görevlerde performans genellikle benzerdir.
  • check_circle Python'da SVM nasıl kullanılır? sklearn.svm.SVC(kernel='rbf': Python'da SVM nasıl kullanılır? sklearn.svm.SVC(kernel='rbf', C=1.0) genel amaçlı kullanım için; büyük metin veri setinde sklearn.svm.LinearSVC daha hızlıdır. Hiperparametreler için GridSearchCV önerilir.
  • check_circle SVM çok sınıflı problemi nasıl çözer? Scikit-learn varsayıla: SVM çok sınıflı problemi nasıl çözer? Scikit-learn varsayılan olarak one-vs-rest (OvR) stratejisi kullanır; her sınıf için ayrı ikili sınıflandırıcı eğitilir. decision_function_shape='ovo' ile one-vs-one de seçilebilir.
  • check_circle Kernel seçimi nasıl yapılır? Varsayılan olarak RBF ile başla: Kernel seçimi nasıl yapılır? Varsayılan olarak RBF ile başlayın. Veri doğrusal ayrılabilirse LinearSVC daha hızlıdır. Polinom kernel, belirli yapısal ilişkileri olan verilerde (görüntü, NLP bazı alt görevler) denenebilir.
  • check_circle SVM'nin bellek kullanımı nasıldır? Karar sınırı yalnızca des: SVM'nin bellek kullanımı nasıldır? Karar sınırı yalnızca destek vektörlerine bağlı olduğundan model kompakttır; ancak büyük veri setlerinde SVM eğitimi O(n²)–O(n³) karmaşıklık nedeniyle yavaştır.
  • check_circle SVR (Support Vector Regression) nedir? SVM'nin regresyon ver: SVR (Support Vector Regression) nedir? SVM'nin regresyon versiyonu; hedef değerleri epsilon-tüp içinde tutmaya çalışır. sklearn.svm.SVR ile kullanılabilir; küçük veri setlerinde güçlü bir regression baseline sunar.