LoslegenKostenlos starten

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

<Kurs>Feature Engineering für Machine Learning in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Importiere PowerTransformer aus dem Modul preprocessing von sklearn.
  • Instanziiere PowerTransformer() als pow_trans.
  • Fitte den PowerTransformer auf die Spalte ConvertedSalary von so_numeric_df.
  • Transformiere dieselbe Spalte mit dem soeben gefitteten Scaler.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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()
Code bearbeiten und ausführen