Destek Vektör Makineleri(Support Vector Machine -SVM)

Şule Akçay
3 min readMay 23, 2021

--

Herkese merhaba sizlere kullanımı oldukça yaygın olan Destek Vektör Makinelerinden bahsedeceğim. Hazırsanız kemerleri takın!

Giriş

Vapnik tarafından geliştirilen ve kısaltılmışı SVM olan Destek Vektör Makineleri birçok veri bilimci tarafından kullanılan hesaplamanın daha kolay olduğu algoritmadır. Bir diğer avantajı ise hem regresyon hem de sınıflandırma problemi için kullanılıyor olması. Bakıldığında yaygın olarak sınıflandırma problemleri için kullanılır.

Destek Vektör Makinelerinin ilk kullanım alanı optik karakter kullanımıdır. Şu anda nesne tanıma ve veri bilimi alanlarında sıklıkla kullanılmaktadır.

Destek Vektör Makinelerinde problemler verilerin doğrusal olarak ayrılabilmesi ve ayrılamamasına ve çoklu sınıf problemleri başlıkları altında incelenir.

Destek Vektör Makinelerinin Çalışması

Destek Vektör Makinelerinin amacı X boyutlu bir uzayda veri noktalarını belirli düzlemde sınıflandıran belirli noktayı bulmaktır. Amacımız birçok düzlem arasında marjı maksimum olan doğruyu seçerek sınıflandırmayı gerçekleştirmektir.

Destek Vektörlerinin Temel Kavramları

Destek Vektörleri : Düzleme en yakın olan veri noktalarına destek vektörleri denir. Bu veri noktaları yardımıyla ayırma çizgisi tanımlanacaktır.

Margin : Farklı sınıfların en yakın veri noktalarında iki satır arasındaki boşluk olarak tanımlanabilir. Hattan destek vektörlerine dikey mesafe olarak hesaplanabilir. Büyük marj, iyi bir marj olarak kabul edilir ve küçük marj, kötü bir marj olarak kabul edilir.

Alt düzlem :Aşağıdaki diyagramda görebileceğimiz gibi, farklı sınıflara sahip bir dizi nesne arasında bölünmüş bir karar düzlemi veya uzaydır.

Destek Vektör Makinesinin temel amacı, maksimum marjinal hiper düzlem bulmak için veri setlerini sınıflara bölmektir ve aşağıdaki gibi iki adımda yapılabilir .

  1. Destek Vektör Makinesinin sınıfları en iyi şekilde ayıran hiper düzlem oluştur.
  2. Sınıfları doğru şekilde ayıran alt düzlemi seçecektir.

Destek Vektör Makinesinin Avantajları

-Birden fazla bağımsız değişkenle çalışabilirler.

-Uyum sorunu diğer yöntemlere göre daha azdır.

-Karmaşık karar sınıflarını modelleyebilmektedir.

-Doğrusal olan ve doğrusal olmayan verilere uyarlanabilir.

Örnek basit bir kod

from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
# n_samples içeren X veri kümesi oluşturma
# İki sınıf içeren Y
X, Y = make_blobs(n_samples=500, centers=2,
random_state=0, cluster_std=0.40)
import matplotlib.pyplot as plt

plt.scatter(X[:, 0], X[:, 1], c=Y, s=50, cmap='spring');
plt.show()
#-1 ile 3.5 arasında satır boşluğu oluşturma
xfit = np.linspace(-1, 3.5)

#çiziö
plt.scatter(X[:, 0], X[:, 1], c=Y, s=50, cmap='spring')

# farklı kümeler arasında çizgi çizme
for a, b, c in [(1, 0.65, 0.33), (0.5, 1.6, 0.55), (-0.2, 2.9, 0.2)]:
yfit = a * xfit + b
plt.plot(xfit, yfit, '-k')
plt.fill_between(xfit, yfit - c, yfit + c, edgecolor='none',
color='#AAAAAA', alpha=0.4)

plt.xlim(-1, 3.5);
plt.show()

Bir sonraki yazımda görüşmek üzere…

Kaynakça:

veribilimiokulu.com

https://www.geeksforgeeks.org/classifying-data-using-support-vector-machinessvms-in-python/.

https://scikit-learn.org/stable/modules/svm.html.

https://scikit-learn.org/stable/modules/svm.html.

https://analyticsindiamag.com/understanding-the-basics-of-svm-with-example-and-python-implementation/.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Şule Akçay
Şule Akçay

Written by Şule Akçay

Bilgisayar Mühendisi | Veri Aşığı

No responses yet

Write a response