Saya membutuhkan paket yang dapat memberi saya persamaan untuk model SVM linier. Saat ini saya menggunakan e1071 seperti:
library(e1071)
m = svm(data, labels, type='C', kernel='linear', cost=cost, probability=FALSE, scale=scale)
w = t(m$coefs) %*% data[m$index,] #Weight vector
b = -model$rho #Offset
Namun, saya tidak yakin bagaimana e1071::svm()
memilih kelas positif dan negatif, jadi saya pikir ini mungkin mengacaukan dengan set data yang berbeda. Adakah yang bisa mengkonfirmasi bagaimana fungsi ini memutuskan kelas mana yang positif dan mana yang negatif?
Juga, apakah ada paket yang lebih baik untuk ini?
Jawaban:
Untuk titik data SVM Anda menghitung nilai keputusan dengan cara berikut:dx d
Jika maka label adalah , selain itu . Anda juga bisa mendapatkan label atau nilai keputusan untuk matriks data dengan mengatakanx + 1 - 1d> 0 x +1 −1
newdata
atau
Berhati-hatilah saat menggunakan SVM dari paket e1071, lihat Masalah dengan e1071 libsvm? pertanyaan. Beberapa paket SVM lain untuk R adalah kernlab, klaR dan svmpath, lihat tinjauan umum ini: Support Vector Machines in R oleh A. Karatzoglou dan D. Meyer.
sumber