시작하기무료로 시작하기

스케일러를 스케일링하기

이전 연습 문제에서는 단일 변수를 MinMax 스케일링했어요. 스케일링해야 할 변수가 아주 많다면, 각 변수마다 수백 줄의 코드를 쓰고 싶지는 않으실 거예요. 이전 연습 문제를 확장해 이를 함수로 만들어 봅시다.

이 연습은 강의의 일부입니다

PySpark로 하는 Feature Engineering

강의 보기

연습 안내

  • min_max_scaler라는 함수를 정의하고, 매개변수로 스케일링할 데이터프레임 df와 열 이름 목록 cols_to_scale를 받도록 하세요.
  • for 루프를 사용해 목록의 각 열을 순회하면서 MinMax 스케일링을 적용하세요.
  • 새 열이 추가된 데이터프레임 df를 반환하세요.
  • 함수 min_max_scaler()df와 열 목록 cols_to_scale에 적용하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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()
코드 편집 및 실행