Sınıflandırma (Classification) — Destek Vektör Makineleri (Support Vector Machine-SVM)

Kübra Özden
5 min readJan 1, 2024

--

Destek vektör makineleri (SVM), makine öğrenimi alanında kullanılan bir sınıflandırma yöntemidir. SVM, verileri belirli bir sınıfa ait olarak sınıflandırmak için kullanılır.

SVM, verileri bir doğru veya hiper düzlem ile ayırmak için çalışır. Bu doğru veya hiper düzlem, verileri mümkün olduğunca iyi ayıracak şekilde seçilir. SVM, bu doğru veya hiper düzlemin iki sınıf arasındaki uzaklığı maksimize ederek çalışır.

SVM, hem doğrusal hem de doğrusal olmayan verileri sınıflandırmak için kullanılabilir. Doğrusal veriler, bir doğru ile ayrılabilir verilerdir. Doğrusal olmayan veriler, bir doğru ile ayrılamayan verilerdir. SVM, doğrusal olmayan verileri de sınıflandırmak için farklı çekirdek fonksiyonları kullanır.

SVM, çeşitli alanlarda kullanılan etkili bir sınıflandırma yöntemidir. SVM, aşağıdaki alanlarda yaygın olarak kullanılır:

  • Görsel tanıma: SVM, görüntülerdeki nesneleri tanımak için kullanılır. Örneğin, SVM, yüz tanıma, insan vücudu tanıma ve araç tanıma için kullanılabilir.
  • Doğal dil işleme: SVM, metinleri sınıflandırmak için kullanılır. Örneğin, SVM, e-postaları spam olarak sınıflandırmak, metinleri duygularına göre sınıflandırmak ve metinleri dillere göre sınıflandırmak için kullanılabilir.
  • Maliyet-etkin sınıflandırma: SVM, maliyet-etkin sınıflandırma için kullanılabilir. Örneğin, SVM, sahte kredi kartlarını gerçek kredi kartlarından ayırmak için kullanılabilir.

SVM’in avantajları şunlardır:

  • Etkili bir sınıflandırma yöntemidir.
  • Doğrusal ve doğrusal olmayan verileri sınıflandırmak için kullanılabilir.
  • Karmaşık verileri sınıflandırmak için kullanılabilir.

SVM’in dezavantajları şunlardır:

  • Eğitim aşaması karmaşık olabilir.
  • Veri setinin büyüklüğüne duyarlıdır.

SVM, çeşitli alanlarda kullanılan etkili bir sınıflandırma yöntemidir. SVM, doğrusal ve doğrusal olmayan verileri sınıflandırmak için kullanılabilir. SVM, karmaşık verileri sınıflandırmak için de kullanılabilir.

Destek vektörleri regresyon olarak kullanılmadan önce sınıflandırma problemlerinden birisi, ilk kullanımı bu şekilde çıkıyor.

  • Çıkmasındaki mantık, doğrusal olarak birbirinden ayırılabilecek 2 tane sınıfı birbirinden ayırmak için çıkıyorlar.
  • Burada bir margin aralığı var yani görmüş olduğumuz doğru sınıflandırma için kullanılacak olan doğru, bu doğrunun altındakiler ve üstündekiler diye 2 sınıfa bölüp burada amaç maksimum margini elde edebilmek yani otoyol gibi düşünürsek en geniş otoyolu elde edebilmek
  • Normalde 2 tane sınıfı ayırmak için bir doğru çizecek olsak farklı farklı doğrular çizebiliriz. Buradaki bütün doğrular 2 sınıfı ayırmaya yarıyor. Ama hangisini kullanacağım hangi doğru daha iyi ayırır bunları sorusunun cevabı support vektör makinaları kavramında aslında maksimum margini sağlayan doğruyu seç olarak cevaplanıyor.
  • Burada görülen örneklerde birden fazla çözüm mutlaka vardır. Ama doğru margin aralığı yani 2 sınıftaki en yakın komşular arasındaki aralığı, çizilen doğruya olan uzaklığı bunların daha yakın olacağı için max marjin değerine sahip olan değeri almak
  • Regresyonda bu kavram bu aralığa düşen maksimum noktayı alabilen marjin aralığını, yani bu doğrularda maksimum noktayı marjin aralığı içine alabilen doğruyu seçmekti . Sınıflandırma da ise bu aralığa hiçbir noktanın düşmemesini istiyoruz.
  • Amacımız sınıflandırma için bu sınıflar arasındaki ayrımı sağlayabilmek
  • Support Vector Machine kullandıktan sonra çıkan sistemin geri kalan tüm örnekleri unutarak bir margin oluşturması söz konusu dolayısıyla aslında bir ilkellemeden de söz edebiliriz. Buradaki sınır ayrım çizgisinin bir fonksiyon ile ifade edilebilmesinden de bahsedebiliriz
  • K-nn algoritması her noktanın çevresinde bir sınır öğreniyordu dolayısıyla çok komplike bir model öğrenebilir. Destek vektör makineleri ise yukarıdaki fonksiyonlar cinsinde bu sınırın yazılabileceği ihtimali üzerinde duruyor.
  • Yani knn, neural network, decision tree bunlar değişik durumlar için sınıflandırmalar oluşturuyor ve bir bölgenin içinde çok farklı alt bölgeleri farklı sınıflara dahil edebilirken destek vektor makineleri sınır ayrımlarının bir fonksiyon ile ifade edilebileceği kabulü üzerinden gidiyor. Yani diyor ki 2 tane sınıf var bu sınıfları ayıran bir fonksiyon yazılabilir. 2 sınıfın birbirinden net ayrıldığı durumun da ilkellenmesi, basitleştirilmesi, bir fonksiyona indirgenebilmesi demektir.
  • Destek vektör makinelerinin sıkıntılarından bir tanesi paralelleştirme ile ilgilidir. Özellikle büyük veri çalışmalarından sonra bu algoritmaların çok büyük bir kısmını paralel dünyaya geçirdik destek vektör makineleri çoğu makine öğrenme algoritmasında yer almıyor. Paralelleştirme ile ilgili dejavantajları olduğu için
  • İris veri kümesi üzerinde SVC’nin Linear Kernel kullanıldığında çıkan sonuc :
  • Burada birden fazla sınıf ayrılmış, iris veri kümesinde 3 tane sınıfı birbirinden ayırırken bu algoritmanın “one-against-one” yöntemi yani bire bir eşleştirmektir.
  • Buradaki bir tane sınıfı alır diğer bir sınıfla olan çizgisini çizmeye çalışır, sonra diğer sınıflar ile aynı şekilde devam eder.
  • Burada 3 tane sınıf olduğu için 3 tane farklı sınıflandırma problemi gibi bunu ele alıp 3 kere bunları sınıflandıracak yani 3 tane sınıf varsa üçgen gibi her birini bir diğeri ile sınıflandıracak
  • Eğer 4 tane sınıf olsaydı 6 tane farklı sınıflandırma problemi çözülmesi gerekiyordu. Her sınıfın diğer sınıflarla olan sınıflandırma problemini çözebilmek için

Kaynakça

--

--