CommencerCommencer gratuitement

Transformations de variables

Vous discutez du jeu de données de crédit avec la directrice d’agence. Elle indique que les demandes de prêt les plus sûres concernent des montants de crédit intermédiaires. Des valeurs trop basses ou trop élevées suggèrent un risque important. Il pourrait donc exister une relation non linéaire entre cette variable et la classe. Vous souhaitez tester cette hypothèse. Vous allez construire une transformation non linéaire de cette variable, puis évaluer laquelle des deux variables prédit le mieux la classe en utilisant SelectKBest() et la métrique chi2() (tous deux préchargés).

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

Cet exercice fait partie du cours

Concevoir des workflows de Machine Learning en Python

Afficher le cours

Instructions

  • Définissez une fonction qui transforme un vecteur numérique en calculant 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 stockez le résultat dans une nouvelle colonne appelée diff.
  • Créez un sélecteur de variables 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 cet exemple de code.

# 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