CommencezCommencez gratuitement

Transformations de caractéristiques

Vous discutez du jeu de données sur le crédit avec la directrice de banque. Elle suggère que les demandes de prêt les plus sûres visent des montants de crédit moyens. Des valeurs trop basses ou trop élevées indiquent un risque élevé. Cela laisse penser qu'il pourrait exister une relation non linéaire entre cette variable et la classe. Vous voulez mettre cette hypothèse à l'essai. Vous allez construire une transformation non linéaire de la caractéristique. Ensuite, vous évaluerez laquelle des deux caractéristiques prédit le mieux la classe à l'aide de SelectKBest() et de la métrique chi2(), qui ont toutes deux été préchargées.

Les données sont offertes sous forme de DataFrame pandas nommé credit, avec la classe dans la colonne class. Vous avez aussi préchargé pandas sous pd et numpy sous np.

Cette activité fait partie du cours

Concevoir des flux de travail Machine Learning en Python

Voir le cours

Instructions de l’exercice

  • Définissez une fonction qui transforme un vecteur numérique en prenant l'écart absolu de chaque valeur par rapport à la valeur moyenne du vecteur.
  • Appliquez cette transformation à la colonne credit_amount du jeu de données et enregistrez le résultat dans une nouvelle colonne appelée diff.
  • Créez un sélecteur de caractéristiques SelectKBest() pour choisir l'une des deux colonnes, credit_amount et diff, en utilisant la métrique chi2().
  • Examinez les résultats.

Exercice interactif pratique

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

# Function computing absolute difference from column mean
def abs_diff(x):
    return ____(x-____)

# Apply it to the credit amount and store to new column
credit['diff'] = ____

# Create a feature selector with chi2 that picks one feature
sk = ____(chi2, ____)

# Use the selector to pick between credit_amount and diff
sk.fit(____, credit['class'])

# Inspect the results
sk.____()
Modifier et exécuter le code