Prédicteurs nominaux

Modélisation avec tidymodels en R

David Svancer

Data Scientist

Données nominales

Données qui décrivent des caractéristiques ou des groupes

  • Aucun ordre significatif

Exemples

  • Département dans une entreprise

    • Marketing, finances, technologies
  • Langue maternelle

    • English, Czech, Spanish ...
  • Type de voiture

    • VUS, berline, compacte ...
Modélisation avec tidymodels en R

Transformer des prédicteurs nominaux

Les données nominales doivent être transformées en données numériques pour la modélisation

Encodage one-hot

  • Convertit les valeurs catégorielles en variables indicatrices [0/1]
  • Variable indicatrice pour chaque valeur unique des données d'origine

 

one_hot_encoding

Modélisation avec tidymodels en R

Transformer des prédicteurs nominaux

Encodage par variables fictives

  • Exclut une valeur de l'ensemble initial
    • n valeurs distinctes donnent ( n - 1 ) variables indicatrices
  • Méthode privilégiée pour la modélisation
    • Paramètre par défaut du paquet recipes

 

dummy_encoding

Modélisation avec tidymodels en R

Données de notation des pistes

Variables prédictives nominales — lead_source et 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
Modélisation avec tidymodels en R

Créer des variables fictives

La fonction step_dummy()

  • Crée des variables fictives à partir de prédicteurs nominaux
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
Modélisation avec tidymodels en R

Sélectionner des colonnes par type

Sélection par type de colonne avec les sélecteurs all_nominal() et all_outcomes()

  • -all_outcomes() exclut la variable cible nominale, 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
Modélisation avec tidymodels en R

Prétraiter des variables prédictives nominales

Moteurs de modélisation dans R

  • Plusieurs créent automatiquement des variables fictives
    • Possible d'utiliser des prédicteurs nominaux sans step_dummy() en prétraitement
  • Pas uniforme selon les moteurs
    • One-hot vs variables fictives
    • Nommage des nouvelles variables

 

Le paquet recipes offre une façon standardisée de préparer les prédicteurs nominaux pour la modélisation

Modélisation avec tidymodels en R

Passons à la pratique !

Modélisation avec tidymodels en R

Preparing Video For Download...