Ladění SVM

Support Vector Machines v R

Kailash Awati

Instructor

Cíl ladění

  • Ruční hledání optimálních hodnot parametrů je u složitých jader obtížné.
  • Cíl: najít optimální sadu parametrů pomocí funkce tune.svm().
Support Vector Machines v R

Ladění stručně

  • Jak to funguje:
    • Nastavte rozsah hodnot pro každý parametr. Příklady: cost = 10^(-1:3), gamma = c(0.1,1,10), coef0 = c(0.1,1,10)
    • Pro každou kombinaci hodnot parametrů sestavte model SVM a vyhodnoťte přesnost.
    • Vrátí kombinaci parametrů s nejlepší přesností.
  • Výpočetně náročný postup!
Support Vector Machines v R
  • Naladění modelu SVM pro radiálně separovatelnou datovou sadu
    • V předchozí lekci byl sestaven SVM s polynomiálním jádrem
    • Přesnost SVM byla ~94 %.
  • Lze ji zlepšit laděním gamma, cost a 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 v R
  • Sestavení modelu SVM s nejlepšími hodnotami parametrů z 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)
  • vyhodnocení přesnosti na trénovacích a testovacích datech
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 v R

Kapitola 3.4 – radiálně separovatelná datová sada, laděné kvadratické jádro, graf pomocí svm.plot

Support Vector Machines v R

Čas na procvičení!

Support Vector Machines v R

Preparing Video For Download...