Dare la giusta scala agli scaler
Nel precedente esercizio abbiamo applicato il min-max scaling a una singola variabile. Se invece hai MOLTE variabili da scalare, non vorrai scrivere centinaia di righe di codice per ognuna. Estendiamo l'esercizio precedente e trasformiamolo in una funzione.
Questo esercizio fa parte del corso
Feature Engineering con PySpark
Istruzioni dell'esercizio
- Definisci una funzione chiamata
min_max_scalerche accetta come parametridf, un dataframe, ecols_to_scale, la lista di colonne da scalare. - Usa un ciclo
forper iterare su ciascuna colonna della lista ed eseguire il min-max scaling. - Restituisci il dataframe
dfcon le nuove colonne aggiunte. - Applica la funzione
min_max_scaler()adfe alla lista di colonnecols_to_scale.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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()