Feature-Transformationen
Du besprichst den Kredit-Datensatz mit der Bankmanagerin. Sie vermutet, dass die sichersten Kreditanträge eher mittlere Kreditbeträge anfragen. Werte, die entweder sehr niedrig oder sehr hoch sind, deuten auf ein hohes Risiko hin. Das legt nahe, dass zwischen dieser Variable und der Klasse eine nichtlineare Beziehung bestehen könnte. Diese Hypothese willst du testen. Du konstruierst dafür eine nichtlineare Transformation des Features. Anschließend bewertest du, welches der beiden Features die Klasse besser vorhersagt, und zwar mit SelectKBest() und der chi2()-Metrik; beide sind bereits vorab geladen.
Die Daten liegen als pandas DataFrame credit vor, die Klasse steht in der Spalte class. Außerdem sind pandas als pd und numpy als np vorab geladen.
Diese Übung ist Teil des Kurses
Machine-Learning-Workflows in Python entwerfen
Anleitung zur Übung
- Definiere eine Funktion, die einen numerischen Vektor transformiert, indem sie die absolute Abweichung jedes Werts vom Durchschnitt des Vektors berechnet.
- Wende diese Transformation auf die Spalte
credit_amountdes Datensatzes an und speichere das Ergebnis in einer neuen Spalte namensdiff. - Erstelle einen
SelectKBest()-Feature-Selector, um mithilfe derchi2()-Metrik eine der beiden Spaltencredit_amountunddiffauszuwählen. - Inspiziere die Ergebnisse.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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.____()