Создание признаков
Теперь у вас есть всё необходимое, чтобы построить признаки на уровне клиента: давность, частоту, денежную ценность и другие характеристики для вашей регрессионной модели. Проектирование признаков — это важнейший этап в процессе машинного обучения. В этом упражнении вы создадите пять признаков на уровне клиента, которые затем используете для прогнозирования транзакций следующего месяца. Эти признаки отражают поведенческие паттерны клиентов, обладающие высокой предсказательной силой.
Библиотеки pandas и numpy загружены как pd и np соответственно. Набор данных online_X уже импортирован. Объект datetime под названием NOW, задающий дату среза для вычисления давности, уже создан.
Это упражнение является частью курса
Машинное обучение для маркетинга на Python
Инструкции к упражнению
- Вычислите давность, вычтя из даты среза максимальное значение
InvoiceDate. - Вычислите частоту, подсчитав уникальное количество счетов.
- Вычислите денежную ценность, просуммировав все значения расходов.
- Вычислите среднее и общее количество товаров.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Define the snapshot date
NOW = dt.datetime(2011,11,1)
# Calculate recency by subtracting current date from the latest InvoiceDate
features = online_X.___('CustomerID').agg({
'InvoiceDate': lambda x: (NOW - x.max()).days,
# Calculate frequency by counting unique number of invoices
'InvoiceNo': pd.Series.___,
# Calculate monetary value by summing all spend values
'TotalSum': np.___,
# Calculate average and total quantity
'Quantity': ['___', 'sum']}).reset_index()
# Rename the columns
features.columns = ['CustomerID', 'recency', 'frequency', 'monetary', 'quantity_avg', 'quantity_total']