Réduire la dimensionnalité

Ingénierie des caractéristiques en R

Jorge Zazueta

Research Professor and Head of the Modeling Group at the School of Economics, UASLP

Variables à variance nulle

Certains ensembles de données contiennent des colonnes constantes ou à variance nulle. On peut filtrer ces variables avec step_zv() dans notre recipe().

Tableau illustrant une variable à variance nulle.

Ingénierie des caractéristiques en R

Variables à quasi variance nulle

Les variables à quasi variance nulle comprennent les prédicteurs à valeur unique et ceux présentant les deux caractéristiques suivantes :

  • Très peu de valeurs uniques par rapport au nombre d'échantillons

  • Rapport élevé entre la fréquence de la valeur la plus courante et celle de la deuxième plus courante

Exemple de quasi variance nulle :

  • Pour 100 observations, il y a deux valeurs différentes, mais l'une n'apparaît qu'une seule fois.

step_nzv() repère et retire les prédicteurs présentant ces caractéristiques.

Ingénierie des caractéristiques en R

Analyse en composantes principales (ACP)

Ensemble de données d'origine en trois dimensions avec deux classes associées.

Graphique tridimensionnel avec deux classes de données.

Ensemble réduit représentant les données par les deux premières composantes principales.

Graphique bidimensionnel montrant deux classes en nuage de points des deux premières composantes principales.

Ingénierie des caractéristiques en R

Préparons une recette

Créer une recette pour exécuter l'ACP et récupérer sa sortie avec prep().

pc_recipe <- 
recipe(~., data = loans_num) %>%
  step_nzv(all_numeric()) %>%
  step_normalize(all_numeric()) %>%
  step_pca(all_numeric())
pca_output <- prep(pc_recipe)

On peut consulter l'information disponible en appelant names() sur pca_output.

names(pca_output)
 [1] "var_info"       "term_info"     
 [3] "steps"          "template"      
 [5] "levels"         "retained"      
 [7] "requirements"   "tr_info"       
 [9] "orig_lvls"      "last_term_info"
Ingénierie des caractéristiques en R

Mettre au jour la variance expliquée

Extraire l'écart-type de l'objet pca_output et calculer la variance expliquée.

stdv <- pca_output$steps[[3]]$res$sdev
var_explained <- stdv^2/sum(stdv^2)
PCA = tibble(PC = 1:length(stdv),
          var_explained = var_explained, 
          cumulative = cumsum(var_explained))

Un tableau montrant la variance expliquée par composante principale.

# A tibble: 5 × 3
     PC var_explained cumulative
  <int>         <dbl>      <dbl>
1     1        0.315       0.315
2     2        0.214       0.529
3     3        0.202       0.730
4     4        0.198       0.928
5     5        0.0722      1
Ingénierie des caractéristiques en R

Visualiser la variance expliquée

On peut tracer la sortie sous forme d'histogramme avec ggplot2.

PCA %>% 
ggplot(aes(x = PC, 
           y = var_explained)) +
  geom_col(fill = "steelblue") +
  xlab("Principal components") +
  ylab("Variance explained")

Variance expliquée par composante principale.

Histogramme montrant la variance expliquée par composante principale.

Ingénierie des caractéristiques en R

Passons à la pratique !

Ingénierie des caractéristiques en R

Preparing Video For Download...