Introduktion

Support Vector Machines i R

Kailash Awati

Instructor

Förutsättningar

  • Mål: förstå hur SVM:er fungerar, vilka alternativ som finns och när de passar bäst.
  • Förkunskaper: Grundläggande R-kunskaper på mellannivå; enkel visualisering med ggplot().
  • Upplägg: Börja med ett endimensionellt exempel och gå gradvis vidare till mer komplexa fall.
Support Vector Machines i R

Sockerinnehåll i läskedrycker

  • En läskedryckstillverkare har två versioner av sin flaggskepsprodukt:
    • Choke – sockerinnehåll 11 g/100 ml.
    • Choke-R – sockerinnehåll 8 g/100 ml.
  • Det faktiska sockerinnehållet varierar i praktiken.
  • Givet 25 slumpmässigt valda prover, hitta en beslutsregel för att avgöra vilket märke det är.
  • Första steget: visualisera data!
Support Vector Machines i R

Sockerinnehåll i läskedrycker – visualiseringskod

  • Data finns i dataframe:n 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 i R

Kapitel 1.1 – kluster för sockerinnehåll

Support Vector Machines i R

Beslutsgränser

  • Vi väljer två punkter i intervallet som kandidatgränser:
    • 9,1 g/100 ml
    • 9,7 g/100 ml
  • Klassificeringsregler (beslutsregler):
    • if (y < 9.1) then "Choke-R" else "Choke"
    • if (y < 9.7) then "Choke-R" else "Choke"
  • Vi visualiserar dem i grafen från föregående bild.
Support Vector Machines i R

Beslutsgränser – visualiseringskod

  • Skapa en dataframe med de två beslutsgränserna.
# Define data frame containing decision boundaries
d_bounds <- data.frame(sep = c(9.1, 9.7))
Support Vector Machines i R

Beslutsgränser – visualiseringskod

  • Lägg till i grafen med 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 i R

Kapitel 1.1 – kluster för sockerinnehåll med exempelgränser

Support Vector Machines i R

Maximal marginseparator

  • Den bästa beslutsgränsen maximerar marginalen: maximal marginseparator
  • Den maximala marginseparatorn ligger mitt emellan de två klustren.
  • Visualisera den maximala marginseparatorn.
# 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 i R

Kapitel 1.1 – maximal marginseparator

Support Vector Machines i R

Nu kör vi en övning!

Support Vector Machines i R

Preparing Video For Download...