Optimizarea SVM-urilor

Support Vector Machines în R

Kailash Awati

Instructor

Obiectivul optimizării

  • Găsirea manuală a valorilor optime ale parametrilor este dificilă pentru nucleele complexe.
  • Obiectiv: găsirea setului optim de parametri cu funcția tune.svm().
Support Vector Machines în R

Optimizarea pe scurt

  • Cum funcționează:
    • se definește un interval de căutare pentru fiecare parametru. Exemple: cost = 10^(-1:3), gamma = c(0.1,1,10), coef0 = c(0.1,1,10)
    • Se construiește un model SVM pentru fiecare combinație de valori și se evaluează acuratețea.
    • Se returnează combinația care oferă cea mai bună acuratețe.
  • Procedură intensivă din punct de vedere computațional!
Support Vector Machines în R
  • Optimizarea modelului SVM pe setul de date radial separabil creat anterior
    • S-a construit un SVM cu nucleu polinomial în lecția anterioară
    • Acuratețea SVM-ului a fost ~94%.
  • Se poate îmbunătăți prin optimizarea parametrilor gamma, cost și 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
Support Vector Machines în R
  • Construirea modelului SVM cu valorile optime ale parametrilor obținute din 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)
  • evaluarea acurateței pe datele de antrenament și de 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)
Support Vector Machines în R

Capitol 3.4 - set de date radial separabil, nucleu cuadratic optimizat, reprezentare grafică cu svm.plot

Support Vector Machines în R

Timp de practică!

Support Vector Machines în R

Preparing Video For Download...