Reducerea dimensionalității

Ingineria caracteristicilor în R

Jorge Zazueta

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

Caracteristici cu varianță zero

Unele seturi de date conțin coloane cu valori constante sau varianță zero. Putem elimina aceste caracteristici adăugând step_zv() în recipe().

Tabel ilustrând o caracteristică cu varianță zero.

Ingineria caracteristicilor în R

Caracteristici cu varianță aproape de zero

Caracteristicile cu varianță aproape de zero includ predictori cu o singură valoare și predictori cu ambele caracteristici de mai jos:

  • Foarte puține valori unice față de numărul de observații

  • Raportul dintre frecvența celei mai comune valori și frecvența celei de-a doua valori este mare

Exemplu de varianță aproape de zero:

  • Pentru 100 de observații există două valori diferite, dar una apare o singură dată.

step_nzv() identifică și elimină predictorii cu aceste caracteristici.

Ingineria caracteristicilor în R

Analiza componentelor principale (PCA)

Set de date tridimensional original cu două clase asociate.

Grafic tridimensional cu două clase de date.

Set de date redus reprezentat prin primele două componente principale.

Grafic bidimensional cu două clase de date ca diagramă de dispersie a primelor două componente principale.

Ingineria caracteristicilor în R

Pregătirea unei rețete

Crearea unei rețete pentru PCA și obținerea rezultatelor prin prep().

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

Putem examina informațiile disponibile apelând names() pe 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"
Ingineria caracteristicilor în R

Calculul varianței explicate

Extrageți deviația standard din obiectul pca_output și calculați varianța explicată.

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))

Tabel cu varianța explicată pe 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
Ingineria caracteristicilor în R

Vizualizarea varianței explicate

Putem reprezenta grafic rezultatele sub formă de diagramă cu coloane folosind ggplot2.

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

Varianța explicată pe componente principale.

Diagramă cu coloane reprezentând varianța explicată pe componente principale.

Ingineria caracteristicilor în R

Să exersăm!

Ingineria caracteristicilor în R

Preparing Video For Download...