Ajuster les SVM

Machines à vecteurs de support en R

Kailash Awati

Instructor

Objectif de l'ajustement

  • Difficile de choisir manuellement des paramètres optimaux pour des noyaux complexes.
  • Objectif : trouver l'ensemble optimal de paramètres avec la fonction tune.svm().
Machines à vecteurs de support en R

L'ajustement en bref

  • Fonctionnement :
    • définir une plage de valeurs à tester pour chaque paramètre. Exemples : cost = 10^(-1:3), gamma = c(0.1,1,10), coef0 = c(0.1,1,10)
    • Construire un modèle SVM pour chaque combinaison possible et évaluer la justesse.
    • Retourner la combinaison donnant la meilleure justesse.
  • Procédure coûteuse en calcul !
Machines à vecteurs de support en R
  • Ajuster un SVM pour l'ensemble radialement séparable créé plus tôt
    • Noyau polynomial construit à la leçon précédente
    • Justesse du SVM : ~94 %.
  • Peut-on mieux faire en ajustant gamma, cost et coef0 ?
tune_out <- tune.svm(x = trainset[,-3], y = trainset[,3], 
                     type = "C-classification", kernel = "polynomial", degree = 2,
                     cost = 10^(-1:2), gamma = c(0.1,1,10), coef0 = c(0.1,1,10))

#print out tuned parameters tune_out$best.parameters$cost tune_out$best.parameters$gamma tune_out$best.parameters$coef0
0.1
10
1
Machines à vecteurs de support en R
  • Construire un SVM avec les meilleurs paramètres trouvés par tune.svm().
svm_model <- svm(y ~ ., data = trainset, type = "C-classification", kernel = "polynomial", degree = 2,
        cost = tune_out$best.parameters$cost,
        gamma = tune_out$best.parameters$gamma,
        coef0 = tune_out$best.parameters$coef0)
  • évaluer la justesse en entraînement et en test
pred_train <- predict(svm_model, trainset)
mean(pred_train == trainset$y)
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
1

0.9677419
#plot using svm plot
plot(svm_model, trainset)
Machines à vecteurs de support en R

Chapitre 3.4 - ensemble radialement séparable, noyau quadratique ajusté, tracé avec svm.plot

Machines à vecteurs de support en R

Passons à la pratique !

Machines à vecteurs de support en R

Preparing Video For Download...