CommencezCommencez gratuitement

Au-delà de la classification binaire

Bien sûr, la classification binaire n'est qu'un cas particulier. L'encodage selon la cible peut s'appliquer à tout type de variable cible :

  • Pour la classification binaire, on utilise généralement l'encodage par moyenne de la cible
  • Pour la régression, la moyenne peut être remplacée par la médiane, les quartiles, etc.
  • Pour la classification multiclasse, avec N classes, on crée N caractéristiques contenant la moyenne de la cible pour chaque catégorie, selon une approche « un contre tous »

La fonction mean_target_encoding() que vous avez créée peut servir pour tous les types de cibles mentionnés ci‑dessus. Appliquons-la à un problème de régression, en prenant l'exemple de la compétition House Prices de Kaggle.

Votre objectif est d'encoder la caractéristique catégorielle "RoofStyle" au moyen de l'encodage par moyenne de la cible. Les DataFrames train et test sont déjà disponibles dans votre espace de travail.

Cette activité fait partie du cours

Remporter une compétition Kaggle en Python

Voir le cours

Instructions de l’exercice

  • Indiquez tous les paramètres manquants lors de l'appel à mean_target_encoding(). Le nom de la variable cible est "SalePrice". Réglez l'hyperparamètre \(\alpha\) à 10.
  • Rappelez-vous que les paramètres train et test attendent les DataFrames d'entraînement et de test.
  • Les paramètres target et categorical attendent les noms de la variable cible et de la caractéristique à encoder.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Create mean target encoded feature
train['RoofStyle_enc'], test['RoofStyle_enc'] = mean_target_encoding(train=train,
                                                                     test=____,
                                                                     target='____',
                                                                     categorical='____',
                                                                     alpha=____)

# Look at the encoding
print(test[['RoofStyle', 'RoofStyle_enc']].drop_duplicates())
Modifier et exécuter le code