Wprowadzenie

Maszyny wektorów nośnych w R

Kailash Awati

Instructor

Informacje wstępne

  • Cel: zrozumienie zasady działania SVM, dostępnych opcji algorytmu i sytuacji, w których sprawdza się najlepiej.
  • Wymagania wstępne: średniozaawansowana znajomość R; podstawowa wizualizacja za pomocą ggplot().
  • Podejście: zaczynamy od przykładu jednowymiarowego, stopniowo przechodząc do bardziej złożonych przypadków.
Maszyny wektorów nośnych w R

Zawartość cukru w napojach bezalkoholowych

  • Producent napojów bezalkoholowych oferuje dwie wersje flagowej marki:
    • Choke – zawartość cukru: 11 g/100 ml.
    • Choke-R – zawartość cukru: 8 g/100 ml.
  • Rzeczywista zawartość cukru może się różnić.
  • Na podstawie 25 losowych próbek należy znaleźć regułę decyzyjną do określania marki.
  • Pierwszy krok: wizualizacja danych!
Maszyny wektorów nośnych w R

Zawartość cukru w napojach – kod wizualizacji

  • Dane w ramce danych 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
Maszyny wektorów nośnych w R

Rozdział 1.1 – klastry zawartości cukru

Maszyny wektorów nośnych w R

Granice decyzyjne

  • Wybierzmy dwa punkty w przedziale jako kandydujące granice:
    • 9,1 g/100 ml
    • 9,7 g/100 ml
  • Reguły klasyfikacji (decyzyjne):
    • if (y < 9.1) then "Choke-R" else "Choke"
    • if (y < 9.7) then "Choke-R" else "Choke"
  • Zwizualizujmy je na wykresie z poprzedniego slajdu.
Maszyny wektorów nośnych w R

Granice decyzyjne – kod wizualizacji

  • Utwórz ramkę danych zawierającą dwie granice decyzyjne.
# Define data frame containing decision boundaries
d_bounds <- data.frame(sep = c(9.1, 9.7))
Maszyny wektorów nośnych w R

Granice decyzyjne – kod wizualizacji

  • Dodaj do wykresu za 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
Maszyny wektorów nośnych w R

Rozdział 1.1 – klastry zawartości cukru z przykładowymi granicami decyzyjnymi

Maszyny wektorów nośnych w R

Separator maksymalnego marginesu

  • Najlepsza granica decyzyjna maksymalizuje margines: separator maksymalnego marginesu
  • Separator maksymalnego marginesu leży w połowie odległości między klastrami.
  • Zwizualizuj separator maksymalnego marginesu.
# 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
Maszyny wektorów nośnych w R

Rozdział 1.1 – separator maksymalnego marginesu

Maszyny wektorów nośnych w R

Czas na ćwiczenia!

Maszyny wektorów nośnych w R

Preparing Video For Download...