ПочатиПочніть безкоштовно

Стандартизування (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].____)
Редагувати та запускати код