Redukcja wymiarowości

Inżynieria cech w R

Jorge Zazueta

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

Cechy o zerowej wariancji

Niektóre zbiory danych zawierają kolumny o stałych wartościach lub zerowej wariancji. Takie cechy można wykluczyć, dodając step_zv() do recipe().

Tabela ilustrująca cechę o zerowej wariancji.

Inżynieria cech w R

Cechy o bliskiej zeru wariancji

Cechy o bliskiej zeru wariancji obejmują predyktory z pojedynczą wartością oraz predyktory spełniające oba poniższe kryteria:

  • Bardzo mała liczba unikalnych wartości względem liczby próbek

  • Wysoki stosunek częstości najczęstszej wartości do częstości drugiej najczęstszej wartości

Przykład bliskiej zeru wariancji:

  • Dla 100 obserwacji istnieją dwie różne wartości, lecz jedna występuje tylko raz.

step_nzv() identyfikuje i usuwa predyktory o tych cechach.

Inżynieria cech w R

Analiza składowych głównych (PCA)

Oryginalny trójwymiarowy zbiór danych z dwiema klasami.

Trójwymiarowy wykres z dwiema klasami danych.

Zredukowany zbiór danych reprezentowany przez dwie pierwsze składowe główne.

Dwuwymiarowy wykres punktowy przedstawiający dwie klasy danych według dwóch pierwszych składowych głównych.

Inżynieria cech w R

Przygotowanie przepisu

Tworzenie przepisu do wykonania PCA i pobieranie jego wyników za pomocą prep().

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

Dostępne informacje można sprawdzić, wywołując names() na obiekcie 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"
Inżynieria cech w R

Obliczanie wyjaśnionej wariancji

Wyodrębnienie odchylenia standardowego z obiektu pca_output i obliczenie wyjaśnionej wariancji.

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

Tabela przedstawiająca wyjaśnioną wariancję według składowej głównej.

# 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
Inżynieria cech w R

Wizualizacja wyjaśnionej wariancji

Wyniki można przedstawić jako wykres słupkowy za pomocą ggplot2.

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

Wyjaśniona wariancja według składowej głównej.

Wykres słupkowy przedstawiający wyjaśnioną wariancję według składowej głównej.

Inżynieria cech w R

Czas na ćwiczenia!

Inżynieria cech w R

Preparing Video For Download...