Побудова ознак
Тепер ви повністю готові створювати показники давності (recency), частоти (frequency), грошової цінності (monetary value) та інші ознаки на рівні клієнта для вашої регресійної моделі. Інженерія ознак — найважливіший крок у процесі машинного навчання. У цій вправі ви створите п'ять ознак на рівні клієнта, які потім використаєте для прогнозування транзакцій клієнтів наступного місяця. Ці ознаки відображають поведінкові шаблони клієнтів із високою прогностичною здатністю.
Бібліотеки pandas і numpy завантажено як pd та np відповідно. Набір даних online_X уже імпортовано для вас. Об'єкт datetime NOW, що фіксує контрольну дату для обчислення давності, також створено для вас.
Ця вправа є частиною курсу
Machine Learning для маркетингу в 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']