Log-Transformation
In den vorherigen Übungen hast du die Daten linear skaliert; das verändert die Form der Daten nicht. Das funktioniert gut, wenn deine Daten normalverteilt sind (oder annähernd normalverteilt) – eine Annahme, die viele Machine-Learning-Modelle treffen. Manchmal arbeitest du mit Daten, die der Normalverteilung recht gut entsprechen, z. B. Körpergröße oder -gewicht einer Population. Viele Variablen in der realen Welt folgen diesem Muster jedoch nicht, z. B. Löhne oder Alter einer Population. In dieser Übung wendest du eine Log-Transformation auf die Spalte ConvertedSalary im DataFrame so_numeric_df an, da ein großer Teil der Werte im unteren Bereich liegt, aber auch sehr hohe Werte vorkommen. Solche Verteilungen haben einen langen rechten Schwanz.
Diese Übung ist Teil des Kurses
Feature Engineering für Machine Learning in Python
Anleitung zur Übung
- Importiere
PowerTransformeraus dem Modulpreprocessingvonsklearn. - Instanziiere
PowerTransformer()alspow_trans. - Fitte den
PowerTransformerauf die SpalteConvertedSalaryvonso_numeric_df. - Transformiere dieselbe Spalte mit dem soeben gefitteten Scaler.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Import PowerTransformer
from sklearn.preprocessing import ____
# Instantiate PowerTransformer
pow_trans = ____
# Train the transform on the data
____
# Apply the power transform to the data
so_numeric_df['ConvertedSalary_LG'] = ____(so_numeric_df[['ConvertedSalary']])
# Plot the data before and after the transformation
so_numeric_df[['ConvertedSalary', 'ConvertedSalary_LG']].hist()
plt.show()