Machine Learning —Classification — Support Vector Machine— Kernel Trick— Part 10

Ekrem Hatipoglu
2 min readJul 12, 2018

--

Support Vector Machine Logistic Regression ile benzer bir sınıflandırma algoritmasıdır. Her ikisi de iki sınıfı ayıran en iyi çizgiyi bulmaya çalışırlar. Algoritma çizilecek doğrunun iki sınıfında elemanlarına en uzak yerden geçicek şekilde ayarlanmasını sağlar. Hiçbir parametre almayan ( nonparametric ) bir sınıflayıcıdır. SVM aynı zamanda doğrusal ve doğrusal olmayan verileride sınıflandırabilir ancak genellikle verileri doğrusal olarak sınıflandırmaya çalışır.

Kernel Trick ( Çekirdek Hilesi )

Şekil 1

SVM’ nin verileri doğrusal olarak sınıflandırmaya çalışır ancak bazı durumlarda ( Şekil 1 ) bu mümkün olmaz. Bu durumdan kurtulmak için çekirdek hilesine ( Kernel Trick ) başvururuz. Yeni bir boyut oluşturabilirsek doğrusal olarak sınıflandırmamız mümkün olabilir. Örneğin Şekil 1' deki grafikte kırmızı noktaları biraz yukarı kaldırıp ( z ekseni ) 3. bir boyut oluşturabilirsek SVM ile doğrusal bir çizgi oluşturabiliriz.

2 Boyutlu grafiği kernel trick ile 3 boyutlu hale getirdik

Not : Yapıcağımız örnekteki Voice veri seti kullanılmıştır. Buraya tıklayarak indirebilirsiniz.

Örnek yapağımız uygulamada veri dosyasından Support Vector Machine algoritması kullanılarak bir model oluşturup ses özelliklerine göre cinsiyet tahmini yapılacaktır.

Örneğin sonunda başarı oranını değerlendireceğiz. Confusion Matrix kavramını bilmiyorsanız buraya tıklayarak öğrenebilirsiniz.

Karmaşıklık Matrisi Sonucu

337 + 437 + 159 + 437 = 1046 tane veri içinden 774 tanesini doğru tahmin edilirken 272 tanesi yanlış tahmin edilmiştir.

Başarı oranı 774 / 1046 = 0,73.. ‘ dür.

Not : Eğer kernel değerini ‘rbf’ yerine ‘linear’ yapsaydık başarı oranı 0.92.. yada ‘sigmoid’ yapsaydık 0.36.. başarı oranı elde edecektik. kernel parametresini değiştirerek başarı oranını değiştirebilirsiniz böylece daha uyumlu modeller geliştirebilirsiniz.

Sonuç

Hepsi bu kadar. Bu yazıda Kernel Trick ( Çekirdek Hilesi ) ve Support Vector Machine ( SVM ) algoritmasının ne olduğunu ve Python dili ile nasıl kodlanabileceğini öğrendiniz.

Okuduğunuz için teşekkürler.

--

--