Логарифмічне перетворення
У попередніх вправах ви масштабували дані лінійно, що не впливає на форму розподілу. Це чудово працює, якщо ваші дані мають нормальний розподіл (або близькі до нього) — таке припущення роблять багато моделей машинного навчання. Інколи ви працюватимете з даними, що добре відповідають нормальності, наприклад, зріст або вага населення. Водночас багато змінних у реальному світі не підпорядковуються такій схемі, наприклад, заробітна плата або вік населення. У цій вправі ви застосуєте логарифмічне перетворення до стовпця ConvertedSalary у датафреймі so_numeric_df, оскільки значна частина значень зосереджена в нижньому діапазоні, але також трапляються дуже великі значення. Такі розподіли мають довгий правий „хвіст".
Ця вправа є частиною курсу
Feature Engineering для машинного навчання в Python
Інструкції до вправи
- Імпортуйте
PowerTransformerз модуляpreprocessingбібліотекиsklearn. - Створіть екземпляр
PowerTransformer()якpow_trans. - Навчіть (
fit)PowerTransformerна стовпціConvertedSalaryдатафреймуso_numeric_df. - Трансформуйте (
transform) цей самий стовпець за допомогою щойно навченого перетворювача.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()