Scaler skalieren
In der vorherigen Übung haben wir eine einzelne Variable mit Min-Max skaliert. Angenommen, du hast VIELE Variablen zu skalieren – dann willst du nicht für jede hunderte Zeilen Code schreiben. Lass uns die vorherige Übung erweitern und daraus eine Funktion machen.
Diese Übung ist Teil des Kurses
<Kurs>Feature Engineering mit PySpark</Kurs>Übungsanweisungen
- Definiere eine Funktion namens
min_max_scaler, die die Parameterdf(ein DataFrame) undcols_to_scale(die Liste der zu skalierenden Spalten) entgegennimmt. - Verwende eine
for-Schleife, um durch jede Spalte in der Liste zu iterieren und sie per Min-Max-Skalierung zu skalieren. - Gib das DataFrame
dfmit den neuen Spalten zurück. - Wende die Funktion
min_max_scaler()aufdfund die Spaltenlistecols_to_scalean.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
def ____(____, ____):
# Takes a dataframe and list of columns to minmax scale. Returns a dataframe.
for col in ____:
# Define min and max values and collect them
max_days = df.agg({col: 'max'}).collect()[0][0]
min_days = df.agg({____: 'min'}).collect()[0][0]
new_column_name = 'scaled_' + col
# Create a new column based off the scaled data
df = df.withColumn(____,
(df[____] - min_days) / (max_days - min_days))
return ____
df = min_max_scaler(____, ____)
# Show that our data is now between 0 and 1
df[['DAYSONMARKET', 'scaled_DAYSONMARKET']].show()