Destek vektör makineleri (SVM): sınıfları en geniş marjinle ayıran algoritma
Sözlük

Destek vektör makineleri (SVM): sınıfları en geniş marjinle ayıran algoritma

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 3 dk okuma

SVM'in sınıfları nasıl ayırdığını, destek vektörlerinin ve marjinin ne olduğunu, kernel seçiminin neyi değiştirdiğini ve C ile gamma ayarının neden belirleyici olduğunu öğrenirsiniz.

Bir bakışta

  1. SVM, sınıfları ayıran en geniş marjinli sınırı arar. Denetimli bir yöntemdir; sınıflandırma, regresyon ve aykırı değer tespiti için kullanılır.
  2. Karar yalnız destek vektörlerine bağlıdır. Sınıf sınırına en yakın örnekler sınırı belirler; diğer noktalar karar fonksiyonunu etkilemez.
  3. Kernel, doğrusal olmayan ayrımı mümkün kılar. Doğrusal, polinom, RBF ve sigmoid gibi çekirdekler veriyi farklı biçimde ilişkilendirir.
  4. Ölçekleme ve C ile gamma ayarı sonucu belirler. SVM özellik ölçeğine duyarlıdır; ayar parametreleri de çapraz doğrulamayla seçilir.

SVM nedir?

Destek vektör makineleri (Support Vector Machine, SVM), denetimli öğrenmede kullanılan bir yöntem ailesidir. Sınıflandırma, regresyon ve aykırı değer tespiti için uygulanabilir; en çok sınıflandırma görevleriyle anılır.

Temel fikir şudur: iki sınıfı ayıran sonsuz sayıda sınır çizilebilir, ama bunlardan biri her iki sınıfa da en uzak olandır. SVM bu sınırı bulmaya çalışır. Genel olarak marjin ne kadar genişse genelleme hatasının o kadar düşük olacağı beklenir; yani yeni verilerde daha sağlam bir sınıflandırıcı elde edilir.

Marjin ve destek vektörleri

Doğrusal olarak ayrılabilen bir veri kümesinde SVM, her sınıfın en yakın örneğine uzaklığı en büyük olan karar sınırını (hiper düzlem) seçer. Sınıf sınırına en yakın bu örneklere destek vektörleri denir.

Ayrılamayan veride destek vektörleri, marjin sınırları içinde kalan örnekler olur. Karar fonksiyonu yalnız bu alt kümeye bağlı olduğu için diğer örneklerin sonuca etkisi yoktur. Bu özellik, SVM'i bellek açısından verimli kılar: tüm eğitim kümesini değil, yalnız destek vektörlerini saklamak yeter.

Kernel ne işe yarar?

Gerçek veri çoğu zaman düz bir çizgiyle ayrılamaz. Kernel (çekirdek) fonksiyonu, noktalar arasındaki ilişkiyi farklı bir uzayda hesaplayarak doğrusal olmayan karar sınırları elde etmeyi sağlar. Kernel, algoritmanın içindeki benzerlik ölçüsünü değiştirir; verinin kendisini elle dönüştürmeniz gerekmez.

scikit-learn kütüphanesinde seçilebilen başlıca çekirdekler şunlardır:

  • Doğrusal: sınıflar düz bir sınırla ayrılabiliyorsa yeterlidir.
  • Polinom: derece parametresiyle eğrisel sınırlar sunar.
  • RBF: uzaklığa dayalı, en sık denenen genel amaçlı çekirdektir; gamma parametresiyle çalışır.
  • Sigmoid: ayrı bir benzerlik biçimi tanımlar.

Özel çekirdek yazmak ya da önceden hesaplanmış benzerlik matrisi vermek de mümkündür.

C ve gamma ayarı

C parametresi tüm çekirdeklerde ortaktır ve iki hedef arasında denge kurar: eğitim örneklerinin yanlış sınıflandırılması ile karar yüzeyinin sadeliği. Düşük C yüzeyi düzgün tutar, yüksek C ise tüm eğitim örneklerini doğru sınıflandırmaya çalışır. Gürültülü gözlem çoktur diye C azaltılırsa model daha fazla düzenlileştirilmiş olur. Kütüphanenin varsayılan C değeri makul bir başlangıç olarak sunulur.

RBF çekirdeğinde C ile gamma birlikte belirleyicidir. Kütüphane belgeleri, ikisinin üstel aralıklarla ızgara aramasıyla denenmesini önerir. Seçimi eğitim doğruluğuyla değil, çapraz doğrulama gibi ayrı bir sınamayla yapmak gerekir; aksi halde model eğitim verisine aşırı uyar.

Şekil 1

SVM'de iyi sonuç ölçeklemeyle başlar, sınamayla biter

Uygulama sırası

  1. ÖlçekleÖzellikleri aynı ölçeğe getir
  2. Çekirdek seçDoğrusal ile başla, gerekirse RBF dene
  3. C ve gamma ayarlaGeniş bir aralıkta ızgara ara
  4. Çapraz doğrulaSeçimi ayrı veriyle sına
Kaynak: scikit-learn, Support Vector MachinesMindset Institute

Güçlü yanlar ve sınırlar

SVM yüksek boyutlu uzaylarda etkilidir ve boyut sayısı örnek sayısından fazla olsa bile işe yarayabilir. Karar fonksiyonu destek vektörlerine dayandığı için bellek kullanımı verimlidir. Çekirdeğin esnek seçilebilmesi de onu farklı problemlere uyarlanabilir kılar.

Sınırları da açıktır. Özellik sayısı örnek sayısından çok fazlaysa çekirdek ve düzenlileştirme seçimini aşırı uyuma karşı dikkatle yapmak gerekir. SVM doğrudan olasılık tahmini vermez; olasılıklar ek ve pahalı bir çapraz doğrulamayla hesaplanır. Eğitim süresi örnek sayısıyla hızla büyür, bu yüzden çok büyük veri kümelerinde doğrusal biçimler tercih edilir. Son olarak SVM ölçek değişmez değildir; veriyi ölçeklemek önerilir ve aynı ölçekleme test verisine de uygulanmalıdır. Bu iş için ölçekleyici ile sınıflandırıcıyı tek bir boru hattında birleştirmek yaygın bir yoldur.

Veri bilimi programlarında yeri

SVM, makine öğrenmesinin klasik algoritmaları arasında, modelin nasıl sınırlar çizdiğini anlamak için iyi bir örnektir. Mindset'in Veri Bilimi Sertifika Programı denetimli öğrenme ve model değerlendirmeyi, Data Science Uzmanlığı Sertifika Programı ise makine öğrenmesi temelleri ile ileri makine öğrenmesi ve model optimizasyonunu içerir. Hiperparametre ayarı ve doğrulama gibi konular, SVM'de C ve gamma seçimiyle doğrudan ilişkilidir.

İlgili Mindset programı

Veri Bilimi Sertifika Programı

Sık sorulanlar

Sık sorulan sorular

SVM sınıflandırma dışında da kullanılır mı?

Evet. Aynı fikir regresyon için ve aykırı değer tespiti için de uygulanır. Bu amaçlar ayrı model sınıflarıyla sunulur ama temel mantık, destek vektörlerine dayalı bir karar fonksiyonu kurmaktır.

Kernel olmadan SVM çalışır mı?

Çalışır. Doğrusal çekirdek, sınıflar düz bir sınırla ayrılabildiğinde yeterlidir ve kernel hilesi gerektirmez. Doğrusal olmayan ayrım gerektiğinde RBF veya polinom gibi çekirdekler denenir.

SVM için veriyi neden ölçeklemek gerekir?

Çünkü SVM mesafe ve çarpım benzeri hesaplara dayanır; büyük ölçekli bir özellik küçük ölçekli olanları bastırabilir. Ölçekleme parametreleri eğitim verisinden öğrenilip aynen test verisine uygulanmazsa sonuçlar anlamsız olur.

C değerini artırmak modeli iyileştirir mi?

Her zaman değil. Yüksek C modeli eğitim örneklerini hatasız ayırmaya zorlar; veri gürültülüyse bu aşırı uyuma yol açabilir. Düşük C daha sade bir sınır verir. Doğru değer, ayrı bir doğrulama kümesinde sınanarak bulunur.

SVM ile KNN arasındaki temel fark nedir?

SVM, eğitimde bir karar sınırı öğrenir ve tahmini yalnız destek vektörlerine dayandırır. K-en yakın komşu ise öğrenme aşamasında bir model kurmaz, eğitim örneklerini saklar ve tahmin sırasında en yakın komşulara bakar.

Destek Vektör Makineleri (SVM) Nedir? Kernel ve C