Iris redux – en mer robust noggrannhet.
I den här övningen bygger du linjära SVM:er för 100 olika tränings- och testpartitioner av iris-datamängden. Du utvärderar sedan modellens prestanda genom att beräkna medelnoggranhet och standardavvikelse. Det här förfarandet, som är helt generellt, ger dig ett mycket mer robust mått på modellens prestanda än vad en enskild partition kan ge.
Den här övningen är en del av kursen
Support Vector Machines i R
Övningsinstruktioner
- För varje försök:
- Dela upp datamängden i tränings- och testmängder med en slumpmässig 80/20-uppdelning.
- Bygg en linjär SVM med standardkostnad på träningsdatamängden.
- Utvärdera noggrannheten hos din modell (
accuracyhar initierats i din miljö).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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(___)