Scalarea la scară mare
În exercițiul anterior, am aplicat scalarea min-max pe o singură variabilă. Dacă ai foarte multe variabile de scalat, nu vrei să scrii sute de linii de cod pentru fiecare. Hai să extindem exercițiul anterior și să transformăm logica într-o funcție.
Acest exercițiu face parte din cursul
Feature Engineering cu PySpark
Instrucțiuni pentru exercițiu
- Definește o funcție numită
min_max_scalercare primește ca parametridf(un dataframe) șicols_to_scale(lista coloanelor de scalat). - Folosește o buclă
forpentru a itera prin fiecare coloană din listă și aplică scalarea min-max. - Returnează dataframe-ul
dfcu noile coloane adăugate. - Aplică funcția
min_max_scaler()pedfși lista de coloanecols_to_scale.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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()