Marketing Analytics – Het clusteren van producten of klanten.

26 augustus, 2021

Jeffrey Gerrits

Jeffrey Gerrits – Marketing Data Analist

“Gelukkig biedt data science uitkomst om de data te benutten. Leer je producten of klanten kennen met clustering algoritmes.”

Inhoudsopgave

Quizvraag: Hoeveel producten heeft je organisatie? En hoeveel klanten?

De kans is groot dat het antwoord op beide vragen ver boven de 1000 is. Een gemiddelde webshop heeft vaak al meer dan 100.000 rijen aan producten. Ook een klantenbestand telt vaak oneindig veel rijen.

Hoe ga je als marketeer om met deze enorme schat aan data? Het is onmenselijk om al deze data te kennen en er trends in te ontdekken. Gelukkig biedt data science uitkomst om de data te benutten. Leer je producten of klanten kennen met clustering algoritmes.

1 – Waarom clustering?

Voor clustering zijn twee dingen belangrijk; Hoeveel clusters je maakt en op basis waarvan je de clusters maakt. Met het blote oog is dit niet te doen én ook niet beheersbaar op lange termijn.

K-Means algoritme

Gelukkig zijn er clustering algoritmes, waarvan K-means de bekendste is. K staat voor het aantal clusters en hiermee kan je verschillende aantallen testen. Bijvoorbeeld K=3, K=4 en K=5.

Het algoritme maakt K-centrumpunten en berekent welke data bij dat centrumpunt hoort. Door steeds de gemiddeldes opnieuw te berekenen, verplaatst het centrumpunt en wordt het cluster duidelijker.

Dit is moeilijk te begrijpen, maar de onderstaande afbeelding kan je helpen:

marketing-analytics-k-means-voorbeeld-algoritme
Afbeelding 1. De werking van het K-means algoritme.

De centrumpunten (x) worden verschoven totdat er sprake is van een mooie verdeling tussen de rode en blauwe datapunten. In dit voorbeeld is K=2 en is de data opgedeeld in twee clusters.

Het mooie aan dit soort technieken is dat de data dimensies creëert, waarmee vervolgens afgescheiden clusters gemaakt kunnen worden. Je laat de techniek voor je werken dus!

2 – Data voorbereiden

Om goede, relevante clusters te maken is het vanzelfsprekend dat je dataset enorm belangrijk is. Kies hierbij als eerste wat je wilt gaan clusteren; Producten, klanten, orders of iets heel anders?

Vervolgens ga je de data zo compleet mogelijk maken. Een aantal voorwaarden en tips:

  • K-means werkt alleen met numerieke data. Probeer categorieën of tekst om te zetten naar numerieke velden.
  • Probeer de waarden van dubbele records samen te voegen. Als een klant bijvoorbeeld twee keer voorkomt, voeg deze records samen en neem een som (of gemiddelde) van de overige data. Bijvoorbeeld de som van de omzet of een gemiddelde van de orderfrequentie.
  • Is er een geboortedatum beschikbaar? Vertaal deze dan naar een leeftijd.
  • Haal gevoelige informatie of informatie die tot discriminatie kan leiden bij voorbaat uit je dataset.
  • Vul lege velden aan of laat deze records uit je dataset.

Een aantal van deze stappen kun je leren in mijn post over data-preprocessingLees hier!

Een voorbeeld van een dataset kan zijn:

 

Afhankelijk van de hoeveelheid velden en de verdeling van de data kan je een clustering techniek kiezen. Bijvoorbeeld K-means, Fuzzy C-means of spectral custering. Wat ze precies doen, laat ik in deze post buiten beschouwing.

Ook kun je er voor kiezen om een data science software te gebruiken, waarbij de techniek te gebruiken is zonder code. Voorbeelden hiervan zijn Tableau, Rapidminer en SAS. Hierbij is het natuurlijk wel belangrijk dat je gedegen kennis van de technieken hebt.

3 – Clustering algoritmes in Python

K-means in Python met Scikit Learn

Voor onderstaand voorbeeld zijn de libraries ‘Scikit learn’ en ‘Matplotlib’ gebruikt.

In Python is het K-means algoritme eenvoudig beschikbaar dankzij de Scikit learn library. Het onderstaande voorbeeld verdeelt de dataset genaamd ‘data’ in 3 clusters.

marketing-analytics-kmean-resultaat
Afbeelding 2. Het resultaat van het K-means clustering algoritme.

Bovenstaande test-dataset bevat twee kolommen, waarmee drie clusters zijn gemaakt. Dit is dus eenvoudig weer te geven in een scatterplot met Matplotlib. Met meer dimensies is het lastiger om een leesbare visualisatie te maken.

De resultaten van de clustering worden opgeslagen als ‘labels’. Dit is erg handig als je het cluster-label wil toevoegen aan je dataset. Deze labels gebruiken we nu om een visualisatie te maken waarbij elk cluster weergegeven wordt met een kleur.

plt.scatter(x = data[:,0], y = data[:,1], marker = ‘.’, c = kmeans.labels_, label = kmeans.labels_).

Dat ziet er als volgt uit:

marketing-analytics-kmeans-output
Afbeelding 3. De scatterplot laat de waarden van de kolommen zien op de X as en Y as. Elk datapunt heeft vervolgens de kleur van het cluster gekregen. In dit voorbeeld zijn de drie clusters makkelijk te onderscheiden.

Optimalisatie met de Elleboog methode

Wil je nou testen met verschillende aantallen clusters? Dat kan met een handig scriptje dat gebruik maakt van inertia. Deze metric berekent hoe ver de punten uit elkaar liggen. Hoe dat werkt, laat ik zien aan de hand van een voorbeeld.

Het onderstaande script doet tien iteraties van het k-means algoritme; Van 1 tot 10 clusters. Ook meten we de inertia en voegen die toe aan een lijst.

De lijst bevat dus K=1 en de inertia, K = 2 en de inertia, K=3 en de inertia, enzovoorts. Die gegevens gaan we plotten in een grafiek.

inertia = []

for k in range(1,10):
      kmeansloop = KMeans(n_clusters=k, random_state=0).fit(data)
      inertia.append(kmeansloop.inertia_)
plt.plot(inertia)

marketing-analytics-kmeans-output-2
Afbeelding 4. Bij het derde getal stabiliseert de inertia. Dit is een indicatie dat op basis van deze dataset K=3 een optimale waarde is voor het aantal clusters.

Zoals je ziet heeft de lijn iets weg van een elleboog. Op het punt van de elleboog, oftewel de scherpste knik, vind je het optimale aantal clusters.

In dit geval is dat het derde getal (2*), waardoor drie het optimale aantal clusters is.

*De Python index begint bij 0, vandaar dat het derde getal niet 3, maar 2 is.

4 – Hoe gebruik je clusters in marketing?

Nadat je de producten of klanten hebt onderverdeeld in meerdere groepen, zijn er talloze toepassingen mogelijk. Hieronder twee voorbeelden:

Producten in Google Shopping

Stel je hebt je webshop-productbestand ingedeeld in clusters. Uit het algoritme zijn 5 (eenvoudige) clusters gekomen:

  1. Geen verkoopaantallen.
  2. Lage verkoopaantallen, lage orderwaarde
  3. Lage verkoopaantallen, hoge orderwaarde
  4. Hoge verkoopaantallen, lage orderwaarde
  5. Hoge verkoopaantallen, hoge orderwaarde

Bij elke product is het productbestand is aangegeven onder welk cluster het valt. (label A t/m E) Dit label wordt bijvoorbeeld elke week geupdate.

Het is mogelijk om deze informatie aan je Google Shopping feed toe te voegen. Zodra de labels in Google Shopping staan, kan je veel gerichter biedingen doen.

Denk bijvoorbeeld aan een hoger bod voor producten uit cluster C & E.

Ook weet je dat je het bod van producten uit cluster D zo laag mogelijk wilt houden, zonder de hoge verkoopaantallen te verliezen. Je kan dan werken aan strategisch geplaatste keywords in het product zelf. Zo optimaliseer je je resultaat!

Een mailing op maat voor je klanten

Je stuurt maandelijks een mailing naar je actieve klantenbestand. Er is zeker respons, maar je hebt het gevoel dat het beter kan. En dat kan waarschijnlijk ook; Iedereen krijgt dezelfde mailing.

Je past clustering toe en het algoritme heeft je klanten opgedeeld in 4 groepen. Deze groepen verschillen van elkaar op velden als gemiddelde leeftijd, woonomgeving en gemiddelde orderwaarde.

In plaats van één marketinglijst, maak je er vier. En je past de content van je mailing aan. Een passend aanbod en relevante acties voor elke subgroep. Een mailing op maat dus!

Dit artikel komt uit de serie Marketing Analytics Roadmap van Databloq en is met toestemming gedeeld. Lees hier alle artikelen.

Wil jij ook leren programmeren met Python?

waarom leren programmeren

“Je krijgt een goed beeld hoe de basis van Python werkt. Duidelijk stof en veel oefeningen inclusief een duidelijke handleiding. Goede cursus om de eerste stappen van het programmeren te leren.”

★★★★★ Michel Degger – Acceptatie verzekeringen

Niet Goed Geld Terug Gratis annuleren       Startgarantie          ★ 9,2 op basis van 11 ervaringen
Scroll to Top