Au-delà de la classification binaire
Bien sûr, la classification binaire n’est qu’un cas particulier. L’encodage par la cible peut s’appliquer à tout type de variable cible :
- Pour la classification binaire, on utilise généralement la moyenne de la cible
- Pour la régression, la moyenne peut être remplacée par la médiane, les quartiles, etc.
- Pour la classification multi-classes, avec N classes, on crée N caractéristiques contenant la moyenne cible de chaque catégorie, selon une approche un-contre-tous
La fonction mean_target_encoding() que vous avez créée peut être utilisée pour n’importe lequel des types de cibles ci-dessus. Appliquons-la à un problème de régression sur l’exemple de la compétition House Prices de Kaggle.
Votre objectif est d’encoder la variable catégorielle "RoofStyle" avec un encodage par moyenne de la cible. Les DataFrames train et test sont déjà disponibles dans votre espace de travail.
Cet exercice fait partie du cours
Gagner une compétition Kaggle en Python
Instructions
- Spécifiez tous les paramètres manquants lors de l’appel à
mean_target_encoding(). Le nom de la variable cible est"SalePrice". Fixez 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 cet exemple de code.
# 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())