Iris redux - een robuustere nauwkeurigheid.
In deze oefening bouw je lineaire SVM's voor 100 verschillende training/test-partities van de iris-gegevensset. Vervolgens beoordeel je de prestaties van je model door de gemiddelde nauwkeurigheid en standaarddeviatie te berekenen. Deze werkwijze, die vrij algemeen is, geeft je een veel robuustere maat voor modelprestaties dan de maat die je uit één enkele partitie krijgt.
Deze oefening maakt deel uit van de cursus
Support Vector Machines in R
Oefeninstructies
- Voor elke iteratie:
- Verdeel de gegevensset willekeurig in een training- en testset met een 80/20-split.
- Bouw een lineaire SVM met standaardkosten op de trainingsgegevensset.
- Beoordeel de nauwkeurigheid van je model (
accuracyis al geïnitialiseerd in je omgeving).
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
for (i in 1:___){
#assign 80% of the data to the training set
sample_size <- ___(___ * nrow(iris))
train <- ___(seq_len(nrow(iris)), size = ___)
trainset <- iris[train, ]
testset <- iris[-train, ]
#build model using training data
svm_model <- svm(Species~ ., data = ___,
type = "C-classification", kernel = "linear")
#calculate accuracy on test data
pred_test <- predict(svm_model, ___)
accuracy[i] <- mean(pred_test == ___$Species)
}
mean(___)
sd(___)