Tech talk: voorspellende analyse inzetten voor cross-sellingcampagnes

In een verzadigde B2B-sector is cross-selling een interessante manier om de omzet tegen lagere kosten te verhogen. Een extra product verkopen aan iemand die al klant is, kost doorgaans minder dan een nieuwe koper overtuigen.
De meeste bedrijven gebruiken interne marketingkennis om te bepalen wie ze voor een cross-sellingcampagne contacteren. Een andere aanpak is machine learning gebruiken om op basis van data te beslissen welke klant u benadert en welk product u aanbiedt.
In dit artikel bouwen we een machinelearningmodel voor cross-selling. Het model voorspelt of een klant binnen een bepaalde periode een ander product van het bedrijf zal kopen. Het doel is de kenmerken van kopers van dat product te herkennen en het vervolgens aan vergelijkbare klanten aan te bevelen.
Data begrijpen en transformeren voor modellering
Eerst halen we bruikbare data uit de bronsystemen. Daarna transformeren we ze en maken we ze beschikbaar voor modellering. Deze stappen heten Extract-Transform-Load (ETL), waarover we eerder schreven.
Wat classificeren we precies? Een duidelijk doel bepalen
Parallel met de ETL moeten we samen met de marketingafdeling de doelvariabele duidelijk definiëren. Die bepaalt wat we voorspellen. In ons geval definieerden we die als de aankoop van een product door de klant in de maanden na een bepaalde datum. De toekomstige periode waarin we kijken of de klant koopt, noemen we het voorspellingsvenster.
Op welke informatie steunen we? Overleg met betrokkenen
We analyseren het gedrag van klanten over een bepaalde periode in het verleden om hun toekomstige gedrag te bepalen. Die periode in het verleden noemen we het observatievenster. Dat een klant 5 jaar geleden 1000 euro uitgaf, is bijvoorbeeld mogelijk niet relevant voor ons huidige probleem. Dat dezelfde klant twee maanden geleden 500 euro uitgaf aan een ander product, is waarschijnlijk bruikbaarder.

Kunnen we op basis van het gedrag in de voorbije 12 maanden voorspellen of klanten in de volgende 6 maanden een product kopen?
We maken indicatoren die het koopgedrag van de klant beschrijven. Zo kunnen we dat gedrag binnen het observatievenster bestuderen. We berekenen bijvoorbeeld het uitgegeven bedrag per product, het aantal contacten met het salesteam, het aantal contacten met de dienst na verkoop en het aantal geopende commerciële e-mails. Daarvoor selecteren we de relevante data uit het bronsysteem en voegen we ze op verschillende manieren samen: via sommen, gemiddelden of verhoudingen. Dit onderdeel noemen we doorgaans feature engineering.
Categorische variabelen coderen
Omdat we het classificatiemodel met numerieke data moeten trainen, coderen we categorische data: we zetten ze om in numerieke waarden die het model kan interpreteren. De bekendste methode maakt één binaire variabele per categorie. Dat noemen we one-hot encoding. Deze methode is eenvoudig toe te passen en werkt meestal goed. Maar als een variabele veel verschillende categorieën heeft, vergroot één binaire variabele per categorie het aantal dimensies van de dataset aanzienlijk. Daardoor zijn er mogelijk niet genoeg trainingswaarnemingen om de doelvariabele te voorspellen. Heeft een categorische variabele bijvoorbeeld 250 unieke waarden, dan levert de codering 250 binaire variabelen op.
Voor variabelen met veel verschillende categorieën biedt target encoding een oplossing. We berekenen per categorie de kans op de doeluitkomst. Vervolgens vervangen we de categorie door die kans. Zo krijgen we één kolom met kansen. Deze methode werkt goed voor variabelen zoals postcodes of NACE-codes.
Ongelijke klassenverdeling
Sommige producten werden door heel weinig klanten gebruikt. In onze trainingsdata waren de twee klassen daardoor sterk uit balans: 5% van de populatie zat in de klasse die het product binnenkort zou kopen en de overige 95% niet. Dat is problematisch, omdat modellen alle waarnemingen zonder onderscheid aan de grootste klasse kunnen toewijzen. We gebruiken dan oversampling of subsampling om de verhouding tussen de klassen aan te passen, van 5%-95% naar 20%-70%.
Anders gezegd: we creëren kunstmatig nieuwe waarnemingen voor de minderheidsklasse (oversampling) of verwijderen waarnemingen uit de meerderheidsklasse. Meestal voeren we beide ingrepen samen uit om een evenwicht te bereiken. In deze studie combineerden we oversampling met SMOTE en willekeurige subsampling.
Modelprestaties meten in een marketingcontext
Na het trainen van voorspellende modellen wilt u beoordelen hoe bruikbaar ze zijn. U wilt ook een prestatiemaatstaf die iets zegt voor de gebruikers, bijvoorbeeld het marketingteam. In deze context gebruiken we doorgaans de lift op een bepaald punt of de cumulatieve gain (lift) bij een bepaalde drempel. Het voordeel is dat deze maatstaven direct te interpreteren zijn.
Ze vergelijken de modelprestaties met een willekeurige selectie en beantwoorden de vraag: 'hoeveel beter doet mijn model het dan toeval?'. Stel dat we een cross-sellingcampagne willen starten en een lijst nodig hebben van klanten om te contacteren.
Die lijst kunnen we op verschillende manieren maken: op basis van toeval, de expertise van ons team of een voorspellend model. Bij elke methode vragen we de klanten te rangschikken van de hoogste naar de laagste koopkans. Als we alleen de eerste 10% contacteren, krijgen we de klanten van wie het marketingteam of het model het meest verwacht dat ze kopen. Bij het voorspellende model vertaalt zich dat in hogere voorspellingsscores.
Een voorbeeld van prestaties van een cross-sellingmodel
Als 20% van onze klanten interesse heeft om het product te kopen, willen we die zo snel mogelijk vinden zonder 100% van onze database te contacteren. Precies daarvoor is cumulatieve lift interessant. Die toont welk aandeel klanten we moeten contacteren om een bepaald aandeel kopers te vinden.
In de grafiek hieronder staat op de x-as het percentage klanten dat de campagne bereikt. We beginnen uiteraard bij klanten van wie we het meest verwachten dat ze kopen: degenen met hogere voorspellingsscores. Op de y-as staat het percentage daadwerkelijke kopers dat we hebben gecontacteerd. Elke lijn komt overeen met een methode om de lijst te maken.

Cumulatieve lift voor cross-selling: vergelijking tussen willekeurige selectie, expertise en een voorspellend model
Bij een willekeurige klantenselectie vinden we kopers lineair: als we 20% van de klanten contacteren, vinden we 20% van de kopers. Dat is de basisprestatie die we willen overtreffen. Met een lijst van marketingexperts (turquoise lijn) vinden we bij de eerste 20% klanten ongeveer 40% van alle kopers, tweemaal zoveel als bij een willekeurige selectie. Door de 20% klanten te contacteren die het voorspellende model aanbeveelt (roze/rode lijn), vinden we 60% van alle kopers.
Dit is een handige manier om modelprestaties te beschrijven en in perspectief te plaatsen.
Voorspellingsscores inzetten voor uw commerciële strategie
Met dezelfde grafieken kunnen we de contactstrategie bepalen. De eerste klanten met hogere voorspellingsscores zijn mogelijk al overtuigd. Dan hoeft u misschien geen geld uit te geven om hen te contacteren, omdat ze het product toch zullen kopen. Aan het andere uiteinde hebben klanten in de laatste 10% meestal geen interesse in het product. Hen contacteren kan dus weggegooid geld zijn.

Interesse in het product afleiden per kwantiel
Zo kan de cumulatieve liftcurve richting geven aan de commerciële strategie. De grafiek hierboven deelt de klantkwantielen in segmenten in: al overtuigde klanten (hoge voorspellingsscores), twijfelaars (middelhoge tot hoge scores) en niet-geïnteresseerde klanten (lage scores).
Uit die segmenten kunnen we een strategie afleiden:
Ofwel de overtuigde klanten behouden
Ofwel twijfelende klanten overtuigen
De belangrijkste lessen
In deze Tech Talk hebben we tips besproken om een voorspellend cross-sellingmodel te bouwen en efficiënt een commerciële strategie rond de modeluitvoer op te zetten. We behandelden de volgende punten:
Het belang van een nauwkeurig gedefinieerde doelvariabele, samen met het marketingteam,
Trainingsdata opbouwen op basis van een observatievenster,
Categorische variabelen zorgvuldig coderen,
Trainingsdata aanpassen voor classificatie met ongelijke klassen,
Cumulatieve lift gebruiken om modelprestaties toe te lichten,
Cumulatieve lift gebruiken om de commerciële strategie te bepalen.