Features bouwen
Je bent nu helemaal klaar om recency-, frequency-, monetary value- en andere klantniveau-features te bouwen voor je regressiemodel. Feature engineering is de belangrijkste stap in het Machine Learning-proces. In deze oefening maak je vijf features op klantniveau die je vervolgens gebruikt om de transacties van volgende maand te voorspellen. Deze features leggen sterk voorspellende patronen in klantgedrag vast.
De bibliotheken pandas en numpy zijn respectievelijk als pd en np geladen. De gegevensset online_X is voor je geïmporteerd. Het datetime-object NOW, dat de snapshotdatum weergeeft die je gebruikt om recency te berekenen, is voor je aangemaakt.
Deze oefening maakt deel uit van de cursus
Machine Learning voor marketing in Python
Oefeninstructies
- Bereken recency door de huidige datum af te trekken van de laatste
InvoiceDate. - Bereken frequency door het unieke aantal facturen te tellen.
- Bereken monetary value door alle bestedingen op te tellen.
- Bereken de gemiddelde en totale hoeveelheid.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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']