Predictori nominali

Modelare cu tidymodels în R

David Svancer

Data Scientist

Date nominale

Date care codifică caracteristici sau grupuri

  • Fără ordine semnificativă

Exemple

  • Departament dintr-o companie

    • Marketing, Finanțe, Tehnologie
  • Limbă maternă

    • Engleză, Cehă, Spaniolă ...
  • Tip de mașină

    • SUV, sedan, compact ...
Modelare cu tidymodels în R

Transformarea predictorilor nominali

Datele nominale trebuie transformate în date numerice pentru modelare

Codificare One-Hot

  • Mapează valorile categoriale la o secvență de variabile indicatoare [0/1]
  • Câte o variabilă indicatoare pentru fiecare valoare unică din datele originale

 

Codificare one-hot

Modelare cu tidymodels în R

Transformarea predictorilor nominali

Codificare cu Variabile Dummy

  • Exclude o valoare din setul original de valori
    • n valori distincte produc ( n - 1 ) variabile indicatoare
  • Metoda preferată pentru modelare
    • Implicită în pachetul recipes

 

Codificare dummy

Modelare cu tidymodels în R

Date pentru scorul de lead-uri

Variabile predictoare nominale - lead_source și us_location

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
Modelare cu tidymodels în R

Crearea variabilelor dummy

Funcția step_dummy()

  • Creează variabile dummy din variabile predictoare nominale
recipe(purchased ~ ., data = leads_training) %>%

step_dummy(lead_source, us_location) %>%
prep(training = leads_training) %>%
bake(new_data = leads_test)
# A tibble: 332 x 12
   total_visits ... lead_source_email  lead_source_organic_search  lead_source_direct_traffic  us_location_southeast ... us_location_west
       <dbl>    ...      <dbl>                 <dbl>                      <dbl>                       <dbl>                     <dbl>
1        8      ...         0                    0                          1                          0                        1
2        4      ...         0                    0                          1                          0                        0
3        3      ...         0                    1                          0                          0                        1
4        2      ...         1                    0                          0                          0                        0
5        9      ...         0                    0                          1                          0                        1

# ... with 327 more rows
Modelare cu tidymodels în R

Selectarea coloanelor după tip

Selectarea după tipul coloanei cu all_nominal() și all_outcomes()

  • -all_outcomes() exclude variabila nominală de ieșire, purchased
recipe(purchased ~ ., data = leads_training) %>%

step_dummy(all_nominal(), -all_outcomes()) %>%
prep(training = leads_training) %>%
bake(new_data = leads_test)
# A tibble: 332 x 12
   total_visits ... lead_source_email  lead_source_organic_search  lead_source_direct_traffic ... us_location_west
       <dbl>    ...      <dbl>                 <dbl>                      <dbl>                           <dbl>
1        8      ...         0                    0                          1                                 1
2        4      ...         0                    0                          1                                 0
3        3      ...         0                    1                          0                                 1
4        2      ...         1                    0                          0                                 0
5        9      ...         0                    0                          1                                 1
# ... with 327 more rows
Modelare cu tidymodels în R

Preprocesarea variabilelor predictoare nominale

Motoare de modelare în R

  • Multe includ crearea automată a variabilelor dummy
    • Predictori nominali pot fi utilizați fără preprocesare cu step_dummy()
  • Nu este consistent între toate motoarele
    • One-hot vs. variabile dummy
    • Denumirea noilor variabile

 

Pachetul recipes oferă o metodă standardizată de pregătire a predictorilor nominali pentru modelare

Modelare cu tidymodels în R

Să exersăm!

Modelare cu tidymodels în R

Preparing Video For Download...