Makine Öğrenimi Bölüm-4 (Destek Vektör Makineleri)

E. Kaan Ulgen
3 min readOct 29, 2017

--

Makine öğrenimi algoritmalarına tam gaz devam ediyoruz :) Bu haftaki yazımızda gözetimli öğrenme algoritmalarından “Destek Vektör Makineleri” (Support Vector Machine — SVM) konusunu ele alacağız.

1963 yılında Vladimir Vapnik ve Alexey Chervonenkis tarafından temelleri atılan “Destek Vektör Makineleri (DVM)” istatiksel öğrenme teorisine dayalı bir gözetimli öğrenme algoritmasıdır. Her ne kadar temelleri 60'lı yıllara dayansada 1995 yılında Vladir Vapnik, Berhard Boser ve Isabelle Guyon tarafından geliştirilmiştir (Akpınar, H., 2017).

Destek Vektör Makineleri, temel olarak iki sınıfa ait verileri birbirinden en uygun şekilde ayırmak için kullanılır. Bunun için karar sınırları yada diğer bir ifadeyle hiper düzlemler belirlenir.

DVM’ler günümüzde yüz tanıma sistemlerinden, ses analizine kadar birçok sınıflandırma probleminde kullanılmaktadırlar.

Avantajları:

  • Yüksek boyutlu uzaylarda etkilidirler.
  • Boyut sayısının, örnemlem sayısından fazla olduğu durumlarda etkilidirler.
  • Karar fonksiyonunda bir takım eğitim noktaları kullanılır (“support vectors”). Dolayısıyla bellek verimli bir şekilde kullanılmış olur.
  • Çok yönlü: Karar fonksiyonu için çok farklı çekirdek fonksiyonları (“kernel functions”) kullanılabilmektedir.

Destek Vektör Makineleri, veri setinin doğrusal olarak ayrılabilme ve ayrılamama durumuna göre ikiye ayrılmaktadır.

1- Doğrusal Destek Vektör Makineleri

Destek vektör makineleriyle sınıflandırmada, iki sınıfa ait örneklerin doğrusal olarak dağıldığını varsayalım. Bu durumda bu iki sınıfın, eğitim verisi kullanılarak elde edilen bir karar fonksiyonu yardımıyla birbirinden ayrılması amaçlanır.

Veri setini ikiye ayıran doğru karar doğrusu olarak isimlendirilmektedir. Sonsuz tane karar doğrusu çizebilme imkanı mevcut olsada önemli olan optimal yani en uygun karar doğrusunu belirlemektir.

Şekil-1: Destek vektörleri

Karar doğrusunun yeni katılacak olan veriye karşı dayanıklı olabilmesi için sınır çizgisinin, iki sınıfın sınır çizgisilerine en yakın uzaklıkta olması gerekmektedir. Bu sınır çizgisine en yakın noktalar, destek noktaları olarak adlandırılmaktadır.

Destek vektör makineleriyle sınıflandırmada genellikle (-1,+1) şeklinde sınıf etiketleri kullanılmaktadır.

Şekil-2: Doğrusal DVM

Destek vektörlerinin (Şekil-3'de kısım “e”) üzerinde bulunduğu ve kesikli çizgilerle gösterilmiş düzlemlere sınır düzlemleri denir. Sınır düzlemlerinin tam ortasından geçen ve her iki düzleme de eşit uzaklıkta bulunan düzlem ise hiper düzlem olarak ifade edilir. Şekil-3'de (-1, +1) sınıf etiketlerini, w ağırlık vektörünü (hiper-düzlemin normali) ve b ise eğilim değerini göstermektedir (Osuna ve ark., 1997; Kavzoğlu, T., ve Çölkesen, İ., 2010).

Bu şekilde doğrusal olarak dağılan veri setimiz DVM’ler yardımıyla sınıflandırılır.

1.1 Python ile Uygulama

Doğrusal SVM için basit bir python uygulaması yaparak aşağıdaki sonuçlar elde edilmiştir. Bu uygulama için “iris” verisinden yararlanılmıştır.

Şekil-3: Python ile Doğrusal DVM Örneği

2- Doğrusal Olmayan Destek Vektör Makineleri

Doğrusal olarak dağılan örneklerde Destek Vektör Makineleri’nin nasıl çalıştığını ve bunları Python’da nasıl uygulayabileceğimizi konuştuktan sonra sıra doğrusal olmayanlara geldi. Doğrusal olmayan bir veri kümesinde DVM’ler doğrusal bir hiper-düzlem çizemez. Bu nedenle çekirdek numarası olarak adlandırılan kernel trick’ler kullanılır. Çekirdek yöntemi, doğrusal olmayan verilerde makine öğrenimini yüksek oranda arttırmaktadır.

En çok kullanılan çekirdek yöntemleri:

  • Polynomial Kernel
  • Gaussian RBF (Radial Basis Function) Kernel
Şekil-4: Doğrusal olmayan DVM

Bu yazıda temel seviyede “Destek Vektör Makineleri” konusu ele alınmıştır. Gelecek yazının konusu ise“Karar Ağaçları” olacaktır.

Gelecek yazıda görüşmek üzere :)

Kaynaklar:

  1. http://scikit-learn.org/stable/modules/svm.html
  2. DATA -Veri Madenciliği Veri Analizi (Haldun Akpınar), Papatya Bilim, 2014
  3. Kavzoğlu, T., ve Çölkesen, İ., 2010, “Destek Vektör Makineleri ile Uydu Görüntülerinin Sınıflandırılmasında Kernel Fonksiyonlarının Etkilerinin İncelenmesi”
  4. Osuna, E.E., Freund, R., Girosi, F., 1997, “Support Vector Machines: Training and Applications, A.I. Massachusetts Institute of Technology and Artificial Intelligence Laboratory, Massachusetts”.

--

--