Biến đổi log
Ở các bài trước, bạn đã chuẩn hóa dữ liệu theo tuyến tính, cách này không làm thay đổi hình dạng phân phối của dữ liệu. Cách tiếp cận đó rất hiệu quả nếu dữ liệu có phân phối chuẩn (hoặc gần chuẩn), một giả định phổ biến của nhiều mô hình Machine Learning. Đôi khi bạn sẽ làm việc với dữ liệu khá gần với phân phối chuẩn, ví dụ như chiều cao hoặc cân nặng của một quần thể. Ngược lại, nhiều biến trong thế giới thực không tuân theo mẫu hình này, chẳng hạn như tiền lương hoặc độ tuổi của một quần thể. Trong bài tập này, bạn sẽ áp dụng phép biến đổi log lên cột ConvertedSalary trong DataFrame so_numeric_df vì phần lớn giá trị tập trung ở vùng thấp nhưng cũng có nhiều giá trị rất cao. Những phân phối như vậy được cho là có “đuôi phải dài”.
Bài tập này là một phần của khóa học
Feature Engineering cho Machine Learning bằng Python
Hướng dẫn bài tập
- Import
PowerTransformertừ modulepreprocessingcủasklearn. - Khởi tạo
PowerTransformer()và gán vàopow_trans. - Fit
PowerTransformertrên cộtConvertedSalarycủaso_numeric_df. - Transform cùng cột đó bằng bộ biến đổi bạn vừa fit.
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.
# Import PowerTransformer
from sklearn.preprocessing import ____
# Instantiate PowerTransformer
pow_trans = ____
# Train the transform on the data
____
# Apply the power transform to the data
so_numeric_df['ConvertedSalary_LG'] = ____(so_numeric_df[['ConvertedSalary']])
# Plot the data before and after the transformation
so_numeric_df[['ConvertedSalary', 'ConvertedSalary_LG']].hist()
plt.show()