Логарифмическое преобразование
В предыдущих упражнениях вы масштабировали данные линейно — такой подход не меняет форму распределения. Это отлично работает, если данные распределены нормально (или близко к нормальному), что является стандартным допущением многих моделей машинного обучения. Иногда данные действительно близки к нормальному распределению — например, рост или вес населения. Однако многие реальные переменные этому паттерну не соответствуют — например, заработная плата или возраст. В этом упражнении вы примените логарифмическое преобразование к столбцу ConvertedSalary в DataFrame so_numeric_df: большая часть значений в нём сосредоточена в нижней области, но при этом встречаются и очень высокие значения. Такие распределения называют распределениями с длинным правым хвостом.
Это упражнение является частью курса
Конструирование признаков для машинного обучения в Python
Инструкции к упражнению
- Импортируйте
PowerTransformerиз модуляpreprocessingбиблиотекиsklearn. - Создайте экземпляр
PowerTransformer()и сохраните его в переменнуюpow_trans. - Обучите
PowerTransformerна столбцеConvertedSalaryизso_numeric_df. - Примените обученный преобразователь к тому же столбцу.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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()