ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește o funcție numită min_max_scaler care primește ca parametri df (un dataframe) și cols_to_scale (lista coloanelor de scalat).
  • Folosește o buclă for pentru a itera prin fiecare coloană din listă și aplică scalarea min-max.
  • Returnează dataframe-ul df cu noile coloane adăugate.
  • Aplică funcția min_max_scaler() pe df și lista de coloane cols_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()
Editează și rulează codul