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
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
trainettestattendent les DataFrames d'entraînement et de test. - Les paramètres
targetetcategoricalattendent 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())