Support Vector Machines; koordinat sistemi üzerinde, 2 sınıfa sahip verimizi yerleştirdiğimizi düşünelim. Eğer özelliklerimiz(feature, eksen) uygunsa verimizi 2 grup olarak görebiliyor olmalıyız. Öyle bir çizgi ile bölelim ki bu veri setini sınıflandırma işlemini yapabiliyor olalım. Bu çizgiyi, tek bir çizgi olmak zorunda değil, bulmamızı sağlayan öğrenme metotlarına Support Vector Machines (SVM) denir. SVM ile sadece sınıflandırma değil, regresyon da yapılabilmektedir.
Supervised yani verimizi etiketlememiz gereken bir algoritmadır. Çünkü yukarıda bahsettiğim ayırma işlemini yaparken hata hesaplamasını veri noktalarının etiketlerine göre yapacak algoritmamız.
Ayırıcı çizgi rastgele çizilir ve ayırdığı bölgedeki hatalı veri noktalarının uzaklıklarına göre bir hata hesaplaması yapılır. İlk çizgiyi öteleyerek ya da eğimini değiştirerek küçük adımlarla yeni bir çizgi çizilir hatadaki değişime göre öğrenme sağlanır ve en uygun ayırma çizgisi oluşturulur. En iyi ayırma çizgisi, sınıfların birbirlerine yakın noktalarını ikiye bölerek bu noktalara uzaklıklarını maksimize eden çizgidir.
Sklearn setinde SVM adında bir modül bulunmakta. Sınıflandırma için bu modül içinde bulunan Support Vector Classifier (SVC) paketini kullanacağız.
from sklearn import svm X = [[0, 0], [1, 1]] y = [0, 1] clf = svm.SVC() clf.fit(X, y) # daha sonra predict metodu ile tahmin alabilirsiniz clf.predict([[0,0]])
Bir cevap yazın