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
Hướng dẫn bài tập
- Định nghĩa một hàm tên
min_max_scalernhận tham sốdflà một dataframe vàcols_to_scalelà 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
dfvới các cột mới đã được thêm. - Gọi hàm
min_max_scaler()trêndfvà danh sách các cộtcols_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()