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
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_amountdu jeu de données et stockez le résultat dans une nouvelle colonne appeléediff. - Créez un sélecteur de variables
SelectKBest()pour choisir l’une des deux colonnes,credit_amountetdiff, en utilisant la métriquechi2(). - 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.____()