Menu
CoddyTech

Destek Vektör Makinesi (SVM)

Coddy'nin Makine Öğrenmesine Giriş kursunda ders 18 / 19.

Destek Vektör Makinesi (SVM), hem sınıflandırma hem de regresyon görevleri için kullanılan güçlü ve çok yönlü bir denetimli makine öğrenimi algoritmasıdır. Ancak, daha yaygın olarak sınıflandırma problemlerinde kullanılır. SVM'ler yüksek doğruluk sunar ve yüksek boyutlu özellik uzayında iyi performans göstererek görüntü tanımadan biyoinformatiğe kadar uzanan uygulamalar için uygun hale gelirler.

Kaynak: wikipedia

SVM algoritmasının temel amacı, özellik uzayındaki sınıfları en iyi ayıran optimal hiper düzlemi (iki boyutlu uzayda bu bir doğrudur) bulmaktır. SVM modeli, örnekleri uzaydaki noktalar olarak temsil eder ve farklı kategorilerdeki örneklerin mümkün olduğunca geniş, net bir boşlukla ayrılacağı şekilde eşler.

 

  • Hiper Düzlem (Hyperplane): Bu temel olarak sınıfları ayıran bir karar sınırıdır. 2D'de bu hiper düzlem bir doğrudur, ancak daha yüksek boyutlarda daha karmaşık olabilir.
  • Destek Vektörleri (Support Vectors): Bunlar, hiper düzlemin konumunu belirlemede kritik olan, hiper düzleme en yakın veri noktalarıdır. SVM sınıflandırıcısı bu noktalardan büyük ölçüde etkilenir, bu nedenle adı Support Vector Machine'dir.
  • Marj (Margin): Farklı sınıfların en yakın veri noktaları üzerindeki iki çizgi arasındaki boşluktur. Sınıflar arasında ayrı bir ölçü olarak düşünülebilir. Marjın mümkün olduğunca geniş olmasını sağlamak, bir SVM eğitiminde temel bir hedeftir.

SVM Türleri:

  • Lineer SVM: Veriler doğrusal olarak ayrılabildiğinde, sınıfları ayırmak için tek bir düz çizgi kullanabiliriz. Bu senaryo lineer SVM kullanır.
  • Lineer Olmayan SVM: Veriler doğrusal olarak ayrılamadığında, SVM, girdi uzayını ayrımın yapılabileceği daha yüksek boyutlu bir uzaya dönüştürmek için çekirdek hilesi (kernel trick) adı verilen yöntemi kullanır. Çekirdek hilesi, verilerin veri sınıfları arasında net bir marjı olan başka bir boyuta dönüştürülmesini içerir. SVM'nin doğrusal olmayan problemleri çözmesine olanak tanır. Yaygın çekirdekler şunları içerir:
    • Lineer Çekirdek (Linear Kernel): Veriler doğrusal olarak ayrılabildiğinde kullanılır.
    • Polinom Çekirdek (Polynomial Kernel): Orijinal özellik uzayını belirtilen dereceden bir polinom özellik uzayına dönüştürür.
    • Gauss Çekirdeği (Gaussian Kernel): Gruplar halinde kümelenen doğrusal olmayan veriler için kullanışlıdır. Özellik uzayını daha yüksek boyutlara eşler.
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

challenge icon

Görev

Kolay

Destek Vektör Makineleri (SVM'ler), verileri sınıflandırmanın daha kolay olduğu daha yüksek boyutlu bir alana dönüştürmek için çekirdek (kernel) fonksiyonlarını kullanır. Bu işlem "çekirdek hilesi" (kernel trick) olarak bilinir. SVM'lerin doğrusal olmayan sınıflandırma ve regresyon problemlerini verimli bir şekilde çözmesine olanak tanır.

Burada, verilerde kavisli sınırlara izin veren polinom çekirdeğini inceleyeceğiz. Verileri belirli bir d derecesine yükseltir. Bu çekirdek, özellikle sınıf etiketleri ile öznitelikler arasındaki ilişki polinomik olduğunda kullanışlıdır.
File:Svm 8 polinomial.JPG

Kaynak: wikipedia

İki liste (x, y), bir derece (d) ve bir katsayı (c) alan ve polinom çekirdeğini döndüren polynomial_kernel adında bir fonksiyon oluşturun.

{\displaystyle K(x,y)=(x^{\mathsf {T}}y+c)^{d}} → (x transpoze nokta çarpım y artı c ) üzeri d.

Kendin dene

import numpy as np
def polynomial_kernel(x, y, d, c):
    x_arr = np.array(x)
    y_arr = np.array(y)
    # Kodunuzu buraya yazın

Makine Öğrenmesine Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi