Estou precisando de um pacote que possa me dar a equação para um modelo SVM linear. Atualmente estou usando o e1071 assim:
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
No entanto, não tenho certeza de como e1071::svm()
seleciona classes positivas e negativas, por isso acho que isso pode estragar outros conjuntos de dados. Alguém pode confirmar como essa função decide qual classe é positiva e qual é negativa?
Além disso, existe um pacote melhor para isso?
Respostas:
Para o ponto de dados seu SVM calcula o valor da decisão da seguinte maneira:x d
Se , o rótulo de é , caso contrário, é . Você também pode obter rótulos ou valores de decisão para a matriz de dados dizendod> 0 x + 1 - 1
newdata
ou
Seja cauteloso ao usar o SVM do pacote e1071, consulte Problema com o e1071 libsvm? questão. Vários outros pacotes SVM para R são kernlab, klaR e svmpath, consulte esta visão geral: Support Vector Machines in R por A. Karatzoglou e D. Meyer.
fonte