Noyaux RBF : générer un ensemble de données complexe

Machines à vecteurs de support en R

Kailash Awati

Instructor

Quelques mots sur les noyaux RBF

  • Noyau très flexible.
    • Peut épouser des frontières de décision complexes.
  • Couramment utilisé en pratique.
Machines à vecteurs de support en R

Générer un ensemble de données complexe

  • 600 points (x1, x2)
  • x1 et x2 distribués différemment
n <- 600
set.seed(42)

df <- data.frame(x1 = rnorm(n, mean = -0.5, sd = 1),
                 x2 = runif(n, min = -1, max = 1))
Machines à vecteurs de support en R

Générer la frontière

  • La frontière est formée de deux cercles de même rayon avec un seul point commun.
# Set radius and centers
radius <- 0.7
radius_squared <- radius ^ 2
center_1 <- c(-0.7, 0)
center_2 <- c(0.7, 0)

# Classify points df$y <- factor(ifelse( (df$x1 - center_1[1]) ^ 2 + (df$x2 - center_1[2]) ^ 2 < radius_squared | (df$x1 - center_2[1]) ^ 2 + (df$x2 - center_2[2]) ^ 2 < radius_squared, -1, 1), levels = c(-1, 1))
Machines à vecteurs de support en R

Visualiser l'ensemble de données

  • Visualiser l'ensemble de données avec ggplot ; distinguer les classes par couleur
library(ggplot2)

p <- ggplot(data = df, aes(x = x1, y = x2, color = y)) + 
     geom_point() + 
     guides(color = "none") +
     scale_color_manual(values = c("red", "blue"))

p
Machines à vecteurs de support en R

Chapitre 4.1 - ensemble de données complexe

Machines à vecteurs de support en R
# Function to generate points on a circle
circle <- function(x1_center, x2_center, r, npoint = 100) {
   theta <- seq(0, 2 * pi, length.out = npoint)
   x1_circ <- x1_center + r * cos(theta)
   x2_circ <- x2_center + r * sin(theta)
   data.frame(x1c = x1_circ, x2c = x2_circ)
}

# Generate boundary and plot it boundary_1 <- circle(x1_center = center_1[1], x2_center = center_1[2], r = radius) p <- p + geom_path(data = boundary_1, aes(x = x1c, y = x2c), inherit.aes = FALSE) boundary_2 <- circle(x1_center = center_2[1], x2_center = center_2[2], r = radius) p <- p + geom_path(data = boundary_2, aes(x = x1c, y = x2c), inherit.aes = FALSE) p
Machines à vecteurs de support en R

Chapitre 4.1 - ensemble complexe avec frontière de décision

Machines à vecteurs de support en R

Passons à la pratique !

Machines à vecteurs de support en R

Preparing Video For Download...