Стандартизування (standard scaling)
Стандартизування перетворює числові ознаки так, щоб середнє було 0, а дисперсія — 1. У цій вправі ви виконаєте стандартизування за допомогою StandardScaler() з sklearn. Спочатку ви виберете лише потрібні стовпці для масштабування, поєднавши фільтрування числових стовпців із знанням про назви стовпців. Це фільтрування вже надано й виконується за допомогою регулярних виразів, що дає змогу здійснювати часткові збіги рядків. Потім ви застосуєте fit_transform() до відповідних стовпців.
Модуль pandas доступний як pd у вашому робочому середовищі, а зразковий датафрейм завантажено як 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].____)