Retrouver la fonction de calcul d'un SVM
Bonjour,
J'ai exécuté avec succès le SVM sur mes données. Mais maintenant j'aimerais reconstituer la formule litterale pour pouvoir l'utiliser par la suite dans un programme dans un autre langage. Je dois donc retomber sur les valeur de predict avec ma fonction calculSVM mais je n'y parviens pas et je ne comprend pas pourquoi
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| library(e1071)
model <- svm(cote ~ .,data,kernel='radial')
predict(model, subset(data, select = - c(cote))) #première valeur 7.859053
alpha=model$coefs
SV=model$SV
gamma=model$gamma
calculSVM <- function(alphaI,gammaI,SVI,X,rho){
ret=0
for(i in 1:length(alphaI))
{
ret=ret+ alphaI[i] * exp(-gammaI*norm(as.matrix(SVI[i,]-X))^2)
}
ret-rho
}
calculSVM(alpha,gamma,SV,data[1,1:13],model$rho) #renvoit 0.8267699 (!=7.859053) |