Mengurangi dimensi

Rekayasa Fitur di R

Jorge Zazueta

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

Fitur dengan ragam nol

Beberapa dataset memiliki kolom dengan nilai konstan atau ragam nol. Kita dapat menyaring fitur tersebut dengan menambahkan step_zv() ke recipe() kita.

Tabel yang mengilustrasikan fitur dengan ragam nol.

Rekayasa Fitur di R

Fitur dengan ragam hampir nol

Fitur dengan ragam hampir nol mencakup prediktor bernilai tunggal, serta prediktor dengan kedua ciri berikut:

  • Sangat sedikit nilai unik dibanding jumlah sampel

  • Rasio frekuensi nilai paling umum terhadap nilai terbanyak kedua sangat besar

Contoh ragam hampir nol:

  • Dari 100 observasi ada dua nilai, namun satu hanya muncul sekali.

step_nzv() mengidentifikasi dan menghapus prediktor dengan ciri tersebut.

Rekayasa Fitur di R

Principal Component Analysis (PCA)

Dataset tiga dimensi asli dengan dua kelas terkait.

Grafik tiga dimensi dengan dua kelas data.

Dataset tereduksi yang merepresentasikan data menggunakan dua komponen utama pertama.

Grafik dua dimensi yang menampilkan dua kelas data sebagai sebar komponen utama pertama dan kedua.

Rekayasa Fitur di R

Mari siapkan recipe

Membuat recipe untuk melakukan PCA dan mengambil keluarannya lewat prep().

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

Kita dapat melihat informasi yang tersedia dengan memanggil names() pada 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"
Rekayasa Fitur di R

Mengungkap ragam yang dijelaskan

Ekstrak simpangan baku dari objek pca_output dan hitung proporsi ragam yang dijelaskan.

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 yang menampilkan proporsi ragam yang dijelaskan per komponen utama.

# 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
Rekayasa Fitur di R

Memvisualisasikan ragam yang dijelaskan

Kita dapat membuat grafiknya sebagai diagram kolom dengan ggplot2.

PCA %>% 
ggplot(aes(x = PC, 
           y = var_explained)) +
  geom_col(fill = "steelblue") +
  xlab("Komponen utama") +
  ylab("Ragam yang dijelaskan")

Ragam yang dijelaskan per komponen utama.

Diagram kolom yang menunjukkan ragam yang dijelaskan per komponen utama.

Rekayasa Fitur di R

Ayo berlatih!

Rekayasa Fitur di R

Preparing Video For Download...