Feature Engineering in R
Jorge Zazueta
Research Professor and Head of the Modeling Group at the School of Economics, UASLP
Alcuni dataset hanno colonne con valori costanti o varianza zero. Possiamo filtrare queste feature aggiungendo step_zv() alla nostra recipe().

Le feature a quasi zero varianza includono predittori con un solo valore E predittori con entrambe le seguenti caratteristiche:
Pochi valori unici rispetto al numero di campioni
Rapporto alto tra la frequenza del valore più comune e quella del secondo più comune
Esempio di quasi zero varianza:
step_nzv() identifica e rimuove i predittori con queste caratteristiche.
Dataset originale tridimensionale con due classi associate.

Dataset ridotto che rappresenta i dati usando le prime due componenti principali.

Crea una recipe per eseguire la PCA e recuperane l’output con prep().
pc_recipe <-
recipe(~., data = loans_num) %>%
step_nzv(all_numeric()) %>%
step_normalize(all_numeric()) %>%
step_pca(all_numeric())
pca_output <- prep(pc_recipe)
Possiamo vedere le info disponibili chiamando names() su 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"
Estrai la deviazione standard da pca_output e calcola la varianza spiegata.
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))
Tabella con la varianza spiegata per componente 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
Possiamo graficare l’output come istogramma con ggplot2.
PCA %>%
ggplot(aes(x = PC,
y = var_explained)) +
geom_col(fill = "steelblue") +
xlab("Componenti principali") +
ylab("Varianza spiegata")
Varianza spiegata per componente principale.

Feature Engineering in R