Bắt đầu ngayBắt đầu miễn phí

Mở rộng bộ chuẩn hóa của bạn

Ở bài trước, bạn đã áp dụng minmax scaling cho một biến. Giả sử bạn có RẤT NHIỀU biến cần scale, bạn sẽ không muốn viết hàng trăm dòng mã cho từng cái. Hãy mở rộng bài trước và biến nó thành một hàm.

Bài tập này là một phần của khóa học

Feature Engineering với PySpark

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa một hàm tên min_max_scaler nhận tham số df là một dataframe và cols_to_scale là danh sách các cột cần scale.
  • Dùng vòng lặp for để duyệt qua từng cột trong danh sách và áp dụng minmax scaling cho chúng.
  • Trả về dataframe df với các cột mới đã được thêm.
  • Gọi hàm min_max_scaler() trên df và danh sách các cột cols_to_scale.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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()
Chỉnh sửa và Chạy Mã