НачатьНачать бесплатно

Логарифмическое преобразование

В предыдущих упражнениях вы масштабировали данные линейно — такой подход не меняет форму распределения. Это отлично работает, если данные распределены нормально (или близко к нормальному), что является стандартным допущением многих моделей машинного обучения. Иногда данные действительно близки к нормальному распределению — например, рост или вес населения. Однако многие реальные переменные этому паттерну не соответствуют — например, заработная плата или возраст. В этом упражнении вы примените логарифмическое преобразование к столбцу 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()
Редактировать и запускать код