CommencerCommencer gratuitement

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

Afficher le cours

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 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 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())
Modifier et exécuter le code