Nominella prediktorer

Modellering med tidymodels i R

David Svancer

Data Scientist

Nominella data

Data som kodar egenskaper eller grupper

  • Ingen meningsfull ordning

Exempel

  • Avdelning inom ett företag

    • Marknadsföring, Ekonomi, Teknik
  • Modersmål

    • Engelska, tjeckiska, spanska ...
  • Biltyp

    • SUV, sedan, kompakt ...
Modellering med tidymodels i R

Omvandla nominella prediktorer

Nominella data måste omvandlas till numeriska data för modellering

One-Hot-kodning

  • Mappar kategoriska värden till en sekvens av [0/1]-indikatorvariabler
  • En indikatorvariabel för varje unikt värde i ursprungsdata

 

one-hot-kodning

Modellering med tidymodels i R

Omvandla nominella prediktorer

Dummyvariabelkodning

  • Utesluter ett värde från den ursprungliga uppsättningen datavärden
    • n distinkta värden ger ( n - 1 ) indikatorvariabler
  • Föredragen metod för modellering
    • Standard i paketet recipes

 

dummykodning

Modellering med tidymodels i R

Data för lead scoring

Nominella prediktorvariabler – lead_source och 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
Modellering med tidymodels i R

Skapa dummyvariabler

Funktionen step_dummy()

  • Skapar dummyvariabler från nominella prediktorvariabler
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
Modellering med tidymodels i R

Välj kolumner efter typ

Välj kolumner efter typ med selektorerna all_nominal() och all_outcomes()

  • -all_outcomes() utesluter den nominella utfallsvariabeln 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
Modellering med tidymodels i R

Förbehandla nominella prediktorvariabler

Modelleringsmotorer i R

  • Många skapar dummyvariabler automatiskt
    • Det går att använda nominella prediktorer utan förbehandling med step_dummy()
  • Inte konsekvent i alla motorer
    • One-hot-kodning vs dummyvariabler
    • Namngivning av nya variabler

 

Paketet recipes ger ett standardiserat sätt att förbereda nominella prediktorer för modellering

Modellering med tidymodels i R

Nu kör vi en övning!

Modellering med tidymodels i R

Preparing Video For Download...