Problemy wieloklasowe

Maszyny wektorów nośnych w R

Kailash Awati

Instructor

Zbiór danych iris – wprowadzenie

  • 150 pomiarów 5 atrybutów
    • Szerokość i długość płatka – liczba (zmienne predykcyjne)
    • Szerokość i długość działki kielicha – liczba (zmienne predykcyjne)
    • Gatunek – kategoria: setosa, virginica lub versicolor (zmienna przewidywana)
  • Zbiór dostępny w repozytorium UCI ML
Maszyny wektorów nośnych w R

Wizualizacja zbioru danych iris

  • Wykres długości płatka względem jego szerokości.
library(ggplot2)

# Plot petal length vs width for dataset, distinguish species by color
p <- ggplot(data = iris,
            aes(x = Petal.Width,
                y = Petal.Length,
                color = Species)) +
     geom_point()

# Display plot
p
Maszyny wektorów nośnych w R

Rozdział 2.4 – zbiór iris: długość płatka względem szerokości, gatunki rozróżnione kolorem

Maszyny wektorów nośnych w R

Jak SVM radzi sobie z problemami wieloklasowymi?

  • SVM to w istocie klasyfikatory binarne.
  • Można je stosować do problemów wieloklasowych przy użyciu strategii głosowania:
    • Podziel dane na podzbiory zawierające dwie klasy.
    • Rozwiąż problem klasyfikacji binarnej dla każdego podzbioru.
    • Przypisz klasę każdemu punktowi danych metodą głosowania większościowego.
  • Strategia ta nosi nazwę jeden-przeciw-jednemu.
Maszyny wektorów nośnych w R

Budowa wieloklasowego liniowego SVM

  • Zbuduj liniowy SVM dla zbioru iris
    • Podział 80/20 na zbiór treningowy/testowy (ziarno 10), domyślny koszt
library(e1071)

# Build model
svm_model <- svm(Species ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear")
  • Oblicz dokładność
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
Maszyny wektorów nośnych w R

Czas na ćwiczenia!

Maszyny wektorów nośnych w R

Preparing Video For Download...