Zacznij terazZacznij za darmo

Skalowanie na dużą skalę

W poprzednim ćwiczeniu przeskalowałeś metodą min-max jedną zmienną. Co jednak zrobić, gdy zmiennych do przeskalowania jest bardzo dużo? Pisanie osobnych linii kodu dla każdej z nich mija się z celem. Rozbudujmy poprzednie ćwiczenie i zamieńmy tę logikę w funkcję.

To ćwiczenie jest częścią kursu

Inżynieria cech z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj funkcję o nazwie min_max_scaler, która przyjmuje parametry: df – ramkę danych oraz cols_to_scale – listę kolumn do przeskalowania.
  • Użyj pętli for, aby przejść przez każdą kolumnę z listy i przeskalować ją metodą min-max.
  • Zwróć ramkę danych df z dodanymi nowymi kolumnami.
  • Wywołaj funkcję min_max_scaler() na ramce df i liście kolumn cols_to_scale.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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()
Edytuj i uruchom kod