Rekayasa fitur

Pemodelan dengan tidymodels di R

David Svancer

Data Scientist

Rekayasa fitur dengan paket recipes

Alur kerja rekayasa fitur dengan recipes

Pemodelan dengan tidymodels di R

Menentukan tipe dan peran variabel

 

Tentukan peran kolom

  • Tetapkan peran outcome atau predictor untuk semua variabel

Tentukan tipe variabel

  • Data numerik
  • Data kategorikal

 

Dilakukan dengan fungsi recipe()

 

Menentukan recipe dengan fungsi recipe

Pemodelan dengan tidymodels di R

Langkah praproses data

Tambahkan langkah praproses yang diperlukan

  • Imputasi data hilang
  • Transformasi data
    • Centering dan scaling variabel numerik
  • Membuat variabel baru
    • Menghitung rasio variabel
  • Dan banyak lagi...

Setiap langkah ditambahkan dengan fungsi step_*() unik

 

Menambahkan transformasi data dengan fungsi step

1 https://recipes.tidymodels.org/reference/index.html
Pemodelan dengan tidymodels di R

Melatih langkah praproses

Objek recipe dilatih pada sumber data, biasanya data latih

  • Transformasi data diestimasi
    • Mean dan simpangan baku kolom numerik untuk centering dan scaling
    • Rumus pembuatan kolom baru disimpan untuk diterapkan ke data baru

 

Resep dilatih dengan fungsi prep()

 

Fungsi prep akan melatih langkah rekayasa fitur menggunakan data latih

Pemodelan dengan tidymodels di R

Menerapkan resep ke data baru

Terapkan semua transformasi praproses yang sudah dilatih

  • Ke data latih dan uji untuk pemodelan
  • Ke sumber data baru untuk prediksi ke depan
    • Algoritme machine learning memerlukan format data yang sama seperti saat pelatihan untuk memprediksi nilai baru

 

Resep diterapkan dengan fungsi bake()

 

Fungsi bake akan menerapkan recipe terlatih ke sumber data baru

Pemodelan dengan tidymodels di R

Pipa rekayasa fitur sederhana

Transformasi log pada total_time di data lead scoring

  • Transformasi umum untuk nilai besar
  • Memampatkan rentang nilai dan mengurangi variabilitas
leads_training
# A tibble: 996 x 7
   purchased  total_visits  total_time  pages_per_visit  total_clicks  lead_source    us_location
   <fct>          <dbl>       <dbl>           <dbl>          <dbl>         <fct>          <fct>      
 1 yes             7          1148            7              59        direct_traffic     west       
 2 no              5           228            2.5            25        email              southeast  
 3 no              7           481            2.33           21        organic_search     west       
 4 no              4           177            4              37        direct_traffic     west       
 5 no              2          1273            2              26        email              midwest         
# ... with 991 more rows
Pemodelan dengan tidymodels di R

Membangun objek recipe

Fungsi recipe()

  • Formula model
    • Menetapkan peran variabel
  • Argumen data
    • Menentukan tipe data variabel

 

Teruskan objek recipe ke step_log() untuk menambah langkah transformasi logaritma

  • Pilih variabel yang ditransformasi, total_time, dan tentukan basis logaritma
leads_log_rec <- recipe(purchased ~ ., 
                       data = leads_training) %>% 

step_log(total_time, base = 10)
leads_log_rec
Data Recipe
Inputs:
      role #variables
   outcome          1
 predictor          6

Operations:

Log transformation on total_time
Pemodelan dengan tidymodels di R

Jelajahi peran dan tipe variabel

Memberikan objek recipe ke fungsi summary()

  • Membuat tibble berisi info variabel
  • Kolom type
    • Menangkap tipe data variabel
    • 'nominal' mewakili variabel kategorikal
  • Kolom role
    • Menangkap peran variabel untuk pemodelan
    • Ditentukan dari formula model input
leads_log_rec %>% 
  summary()
# A tibble: 7 x 4
  variable        type     role       source  
  <chr>           <chr>    <chr>      <chr>   
1 total_visits    numeric  predictor  original
2 total_time      numeric  predictor  original
3 pages_per_visit numeric  predictor  original
4 total_clicks    numeric  predictor  original
5 lead_source     nominal  predictor  original
6 us_location     nominal  predictor  original
7 purchased       nominal  outcome    original
Pemodelan dengan tidymodels di R

Melatih objek recipe

Fungsi prep()

  • Menerima objek recipe sebagai argumen pertama
  • Argumen training
    • Menentukan data untuk melatih langkah praproses

 

Mencetak objek recipe yang telah dilatih

  • Langkah terlatih ditandai dengan [trained]
leads_log_rec_prep <- leads_log_rec %>% 
  prep(training = leads_training)
leads_log_rec_prep
Data Recipe
Inputs:
      role #variables
   outcome          1
 predictor          6

Training data contained 996 data points and 
no missing data.

Operations:
Log transformation on total_time [trained]
Pemodelan dengan tidymodels di R

Mentransformasi data latih

Fungsi bake()

  • Argumen pertama adalah objek recipe terlatih
  • Argumen new_data
    • Data tempat menerapkan recipe terlatih
  • Data pelatihan
    • leads_training digunakan untuk melatih recipe
    • Secara default, data yang ditransformasi disimpan oleh fungsi prep()
    • Berikan NULL ke new_data untuk mengekstrak
  • Mengembalikan tibble berisi data yang ditransformasi
leads_log_rec_prep %>% 
  bake(new_data = NULL)
# A tibble: 996 x 7
  total_visits total_time ... us_location  purchased
    <dbl>       <dbl>     ...   <fct>       <fct>
 1     7        3.06      ...   west         yes
 2     5        2.36      ...   southeast    no
 3     7        2.68      ...   west         no
 4     4        2.25      ...   west         no
 5     2        3.10      ...   midwest      no
# ... with 991 more rows
Pemodelan dengan tidymodels di R

Mentransformasi data baru

Mentransformasi dataset yang tidak dipakai saat pelatihan recipe

  • Berikan dataset ke argumen new_data
  • recipe terlatih akan menerapkan semua langkah ke data baru
leads_log_rec_prep %>% 
  bake(new_data = leads_test)
# A tibble: 332 x 7
 total_visits  total_time ... us_location  purchased
     <dbl>       <dbl>    ...  <fct>       <fct>
 1     8          2       ...  west         no
 2     4          3.13    ...  northeast    yes
 3     3          2.25    ...  west         no
 4     2          1.20    ...  midwest      no
 5     9          3.01    ...  west         yes
# ... with 327 more rows
Pemodelan dengan tidymodels di R

Saatnya memanggang!

Pemodelan dengan tidymodels di R

Preparing Video For Download...