LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

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