Je scalers schalen
In de vorige oefening hebben we één variabele met min-max geschaald. Stel dat je HEEL VEEL variabelen moet schalen; dan wil je niet voor elk honderden regels code schrijven. Laten we voortbouwen op de vorige oefening en er een functie van maken.
Deze oefening maakt deel uit van de cursus
Feature Engineering met PySpark
Oefeninstructies
- Definieer een functie
min_max_scalermet als parametersdf(een dataframe) encols_to_scale(de lijst met kolommen om te schalen). - Gebruik een
for-lus om door elke kolom in de lijst te gaan en voer min-max-scaling uit. - Retourneer de dataframe
dfmet de nieuw toegevoegde kolommen. - Pas de functie
min_max_scaler()toe opdfen de lijst met kolommencols_to_scale.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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()