Problemi multiclasse

Support Vector Machines in R

Kailash Awati

Instructor

Il dataset iris: introduzione

  • 150 misurazioni di 5 attributi
    • Larghezza e lunghezza dei petali - numeriche (variabili predittori)
    • Larghezza e lunghezza dei sepali - numeriche (variabili predittori)
    • Specie - categoria: setosa, virginica o versicolor (variabile predetta)
  • Insieme di dati dal UCI ML repository
Support Vector Machines in R

Visualizzare il dataset iris

  • Traccia lunghezza vs larghezza dei petali.
library(ggplot2)

# Traccia lunghezza vs larghezza dei petali, distingui le specie per colore
p <- ggplot(data = iris,
            aes(x = Petal.Width,
                y = Petal.Length,
                color = Species)) +
     geom_point()

# Mostra il grafico
p
Support Vector Machines in R

Capitolo 2.4 - dataset iris: lunghezza vs larghezza dei petali, specie distinte per colore

Support Vector Machines in R

Come gestisce le classi multiple l'algoritmo SVM?

  • Le SVM sono essenzialmente classificatori binari.
  • Si applicano ai problemi multiclasse con la seguente strategia a voto:
    • Suddividi i dati in sottoinsiemi con due classi ciascuno.
    • Risolvi il problema di classificazione binaria per ogni sottoinsieme.
    • Usa il voto di maggioranza per assegnare una classe a ogni punto.
  • Detta strategia one-against-one.
Support Vector Machines in R

Costruire una SVM lineare multiclasse

  • Crea una SVM lineare per il dataset iris
    • Suddivisione training/test 80/20 (seed 10), costo predefinito
library(e1071)

# Costruisci il modello
svm_model <- svm(Species ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear")
  • Calcola l'accuratezza
pred_train <- predict(svm_model, trainset)
mean(pred_train == trainset$Species)
0.9756098
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$Species)
0.962963
Support Vector Machines in R

Esercitiamoci!

Support Vector Machines in R

Preparing Video For Download...