Стандартизация признаков
Стандартизация преобразует числовые признаки так, чтобы их среднее значение стало равно 0, а дисперсия — 1. В этом упражнении вы выполните стандартизацию с помощью StandardScaler() из библиотеки sklearn. Сначала вы отберёте только нужные столбцы для масштабирования, используя фильтрацию числовых столбцов в сочетании с регулярными выражениями, которые позволяют выполнять частичное совпадение строк. Эта фильтрация уже реализована и предоставлена вам. Затем вы примените fit_transform() для преобразования нужных столбцов.
Модуль pandas доступен как pd, а тестовый DataFrame загружен как df. Столбец hour уже преобразован в формат datetime, а StandardScaler из sklearn.preprocessing доступен в рабочем пространстве.
Это упражнение является частью курса
Прогнозирование CTR с помощью машинного обучения на Python
Инструкции к упражнению
- Выберите числовые столбцы и отфильтруйте заданный список
filter_colsс помощью.select_dtypes(). - Примените стандартизацию к нужным столбцам: сначала создайте объект
StandardScaler(), затем вызовите.fit_transform(). - Выведите дисперсию преобразованных столбцов с помощью
.var().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Get non-categorical columns, with a filter
num_df = df.____(include=['int', 'float'])
filter_cols = ['click', 'banner_pos', 'device_type',
'search_engine_type', 'product_type', 'advertiser_type']
new_df = num_df[num_df.columns[~num_df.columns.____(filter_cols)]]
num_cols = new_df.____
# Transform columns using StandardScaler
scaler = ____()
df[num_cols] = scaler.____(df[____])
# Print mean and variance of transformed columns
print(df[num_cols].mean())
print(df[num_cols].____)