Úvod

Support Vector Machines v R

Kailash Awati

Instructor

Úvodní informace

  • Cíl: porozumět principu fungování SVM, dostupným možnostem algoritmu a situacím, kdy funguje nejlépe.
  • Předpoklady: středně pokročilá znalost R; základní vizualizace pomocí ggplot().
  • Přístup: začínáme jednorozměrným příkladem a postupně přecházíme ke složitějším případům.
Support Vector Machines v R

Obsah cukru v nealkoholických nápojích

  • Výrobce nealkoholických nápojů má dvě verze své vlajkové značky:
    • Choke – obsah cukru 11 g/100 ml.
    • Choke-R – obsah cukru 8 g/100 ml.
  • Skutečný obsah cukru se v praxi liší.
  • Na základě 25 náhodně vybraných vzorků nalezněte pravidlo pro určení značky.
  • První krok: vizualizace dat!
Support Vector Machines v R

Obsah cukru v nápojích – vizualizační kód

  • Data jsou v datovém rámci drink_samples.
# Specify dataframe, set plot aesthetics in geom_point (note y = 0)
p <- ggplot(drink_samples) +
  geom_point(aes(sugar_content, 0))

# Label each point with sugar content value, adjust text size and location p <- p + geom_text(aes(sugar_content, 0, label = sugar_content), size = 2.5, vjust = 2, hjust = 0.5) # Display plot p
Support Vector Machines v R

Shluky obsahu cukru

Support Vector Machines v R

Rozhodovací hranice

  • Zvolíme dva body v intervalu jako kandidátní hranice:
    • 9,1 g/100 ml
    • 9,7 g/100 ml
  • Klasifikační (rozhodovací) pravidla:
    • if (y < 9.1) then "Choke-R" else "Choke"
    • if (y < 9.7) then "Choke-R" else "Choke"
  • Zobrazíme je v grafu z předchozího snímku.
Support Vector Machines v R

Rozhodovací hranice – vizualizační kód

  • Vytvoříme datový rámec obsahující dvě rozhodovací hranice.
# Define data frame containing decision boundaries
d_bounds <- data.frame(sep = c(9.1, 9.7))
Support Vector Machines v R

Rozhodovací hranice – vizualizační kód

  • Přidáme do grafu pomocí geom_point()
# Add decision boundaries to previous plot
p <- p + 
  geom_point(data = d_bounds,
             aes(sep, 0),
             color = "red",
             size = 3) +
  geom_text(data = d_bounds,
            aes(sep, 0, label = sep),
            size = 2.5,
            vjust = 2,
            hjust = 0.5,
            color = "red") 
# Display plot
p
Support Vector Machines v R

Shluky obsahu cukru s příklady rozhodovacích hranic

Support Vector Machines v R

Separátor s maximálním okrajem

  • Nejlepší rozhodovací hranice maximalizuje okraj: separátor s maximálním okrajem
  • Separátor s maximálním okrajem leží uprostřed mezi dvěma shluky.
  • Vizualizujeme separátor s maximálním okrajem.
# Create data frame with maximal margin separator
mm_sep <- data.frame(sep = c((8.8 + 10) / 2))

# Add mm boundary to previous plot p <- p + geom_point(data = mm_sep, aes(sep, 0), color = "blue", size = 4) # Display plot p
Support Vector Machines v R

Separátor s maximálním okrajem

Support Vector Machines v R

Čas na procvičení!

Support Vector Machines v R

Preparing Video For Download...