Wat is Market Basket Analysis? Metrieken, voorbeelden en use cases

Market basket analysis is een methode om te ontdekken welke producten samen in dezelfde transactie worden gekocht. Het scant bestelgegevens op combinaties van artikelen die vaker voorkomen dan je op basis van toeval zou verwachten. Drie statistieken beschrijven elk patroon: support, confidence en lift. Winkeliers en webshops gebruiken het voor cross-selling, bundels en productplaatsing.
Deze gids legt uit hoe de methode werkt, hoe u elke statistiek berekent en hoe u de resultaten leest. Ook worden de veelvoorkomende algoritmen, de belangrijkste use cases en de beperkingen besproken die u moet kennen voordat u op basis van een regel actie onderneemt.
Wat market basket analysis is
Het basisidee achter market basket analysis is simpel. Elke bestelling is een mandje met artikelen. Verspreid over duizenden mandjes blijven sommige artikelen samen opduiken. De analyse vindt die combinaties en meet hoe sterk elke combinatie is.
De output is een set associatieregels. Een regel luidt: "als een mandje A bevat, is de kans groot dat het ook C bevat." A wordt het antecedent genoemd en C het consequent. Beide kunnen losse artikelen of groepen artikelen zijn.
De documentatie van mlxtend, een veelgebruikte Python-bibliotheek voor dit werk, geeft de klassieke illustratie. Het beschrijft een regel die suggereert "dat mensen die luiers kopen, waarschijnlijk ook bier kopen." Of die combinatie nu wel of niet opgaat in een specifieke winkel, het laat de vorm van de output zien.
De techniek behoort to een breder vakgebied genaamd association rule learning. De mlxtend-documentatie merkt op dat het Apriori-algoritme "is ontworpen om te werken op databases met transacties, zoals aankopen door klanten van een winkel." De retail is waar de methode begon, maar alle gegevens die uit mandjes bestaan, werken.
Hoe het werkt
Een market basket analysis verloopt in twee fasen.
Fase één vindt frequente itemsets. Een itemset is een groep artikelen, zoals {telefoonhoesje, screenprotector}. Deze wordt als frequent beschouwd wanneer deze in ten minste een minimaal aandeel van alle transacties voorkomt. U stelt dat minimum in, de zogenaamde support-drempelwaarde.
Fase twee zet itemsets om in regels. Voor elke frequente itemset splitst het algoritme deze op in een antecedent en een consequent en berekent het de score van de resulterende regel. De mlxtend-documentatie beschrijft het genereren van regels als "een veelvoorkomende taak bij het minen van frequente patronen."
De input heeft altijd dezelfde vorm. Elke rij is een transactie en elke kolom geeft aan of er een artikel in zat. Bestel-exports van de meeste e-commerceplatforms kunnen met een draaitabel naar dit formaat worden omgezet.
Drie keuzes bij de voorbereiding bepalen het resultaat voordat er statistieken worden berekend. Ten eerste: bepaal wat een transactie is, meestal één bestel-ID. Ten tweede: leg de aanwezigheid vast in plaats van de hoeveelheid, zodat drie stuks van één artikel nog steeds als één tellen. Ten derde: kies het detailniveau. Productcategorieën leveren minder, bredere regels op, terwijl individuele SKU's preciezere regels opleveren die meer gegevens vereisen.
De drie belangrijkste statistieken
Elke regel krijgt drie getallen. Door ze in samenhang te lezen, onderscheidt u een nuttige regel van toeval.
Support
Support is het aandeel van alle transacties dat de itemset bevat. Als 60 van de 1.000 bestellingen zowel een telefoonhoesje als een screenprotector bevatten, is de support van dat paar 0,06, ofwel 6%.
Support vertelt u hoe vaak een patroon voorkomt. Een regel met een zeer lage support kan weliswaar echt zijn, maar te zeldzaam om actie op te ondernemen.
Confidence
Confidence is de waarschijnlijkheid dat u het consequent ziet, mits het mandje het antecedent al bevat. Dit is gelijk aan de support van het paar gedeeld door de support van het antecedent.
Confidence heeft een richting. De confidence dat A tot C leidt, is meestal anders dan dat C tot A leidt. Het uitgewerkte voorbeeld hieronder laat zien waarom.
Lift
Lift vergelijkt de werkelijke frequentie van het paar met wat u zou verwachten als de twee artikelen geen verband met elkaar hielden. Dit is gelijk aan de confidence van de regel gedeeld door de support van het consequent.
De mlxtend-documentatie beschrijft het referentiepunt duidelijk: "Als A en C onafhankelijk zijn, is de Lift-score precies 1." Een lift hoger dan 1 betekent dat de artikelen vaker samen voorkomen dan op basis van toeval. Een lift lager dan 1 betekent dat ze minder vaak samen voorkomen.
Een uitgewerkt voorbeeld
Neem een online elektronicawinkel met 1.000 bestellingen in een maand.
| Meting | Waarde |
|---|---|
| Bestellingen met een telefoonhoesje | 200 |
| Bestellingen met een screenprotector | 100 |
| Bestellingen met beide | 60 |
| Support van het paar | 60 / 1.000 = 0,06 |
| Confidence, telefoonhoesje naar screenprotector | 0,06 / 0,20 = 0,30 |
| Confidence, screenprotector naar telefoonhoesje | 0,06 / 0,10 = 0,60 |
| Lift | 0,30 / 0,10 = 3,0 |
Lees de resultaten in gewone taal. Drie op de tien kopers van een telefoonhoesje kochten ook een screenprotector. Zes op de tien kopers van een screenprotector kochten ook een telefoonhoesje. Het paar komt drie keer zo vaak samen voor als je op basis van toeval zou voorspellen.
Wanneer de volledige tabel met regels terugkomt, leest u deze in een vaste volgorde. Sorteer op lift om de sterkste verbanden te vinden. Verwerp regels onder uw minimale support, omdat deze te zeldzaam zijn om actie op te ondernemen. Gebruik vervolgens confidence om te beslissen in welke richting u aanbeveelt.
De twee confidence-cijfers leiden tot verschillende acties. Een telefoonhoesje voorstellen aan kopers van een screenprotector is de sterkere aanbeveling, omdat 60% van hen er al een meeneemt. De lift is in beide richtingen hetzelfde, en daarom is lift de betere maatstaf voor de sterkte van het verband zelf.
Andere statistieken die de moeite waard zijn om te kennen
De drie belangrijkste statistieken dekken de meeste behoeften, maar bibliotheken rapporteren ook andere die helpen om zwakke regels te filteren.
Leverage meet het verschil tussen waargenomen en verwachte co-occurrence. De mlxtend-documentatie definieert dit door de waargenomen co-occurrence te vergelijken met "de frequentie die verwacht zou worden als A en C onafhankelijk waren." Een leverage van 0 betekent onafhankelijkheid.
Conviction meet hoe sterk het consequent afhangt van het antecedent. Net als bij lift duidt een waarde van 1 op onafhankelijkheid. Hogere waarden betekenen dat de regel minder vaak wordt geschonden dan het toeval zou suggereren.
In de praktijk sorteren de meeste teams regels op lift en filteren ze vervolgens op een minimale support en confidence. Die combinatie brengt patronen aan het licht die sterk, betrouwbaar en algemeen genoeg zijn om ertoe te doen.
Algoritmen: Apriori en FP-Growth
Apriori is het klassieke algoritme. De mlxtend-documentatie noemt het artikel van Agrawal en Srikant uit 1994 over snelle algoritmen voor het minen van associatieregels als bron. Apriori bouwt itemsets niveau voor niveau op en snoeit elke itemset waarvan de subsets niet frequent zijn, wat de zoektocht beheersbaar houdt.
FP-Growth bereikt dezelfde frequente itemsets via een andere route. De mlxtend-documentatie beschrijft het als "een populair alternatief voor het gevestigde Apriori-algoritme." Het bouwt een frequent pattern tree op en vereist geen kandidaatgeneratie. Volgens de documentatie maakt dit het "bijzonder aantrekkelijk voor grote datasets."
De support-drempelwaarde werkt bij beide op dezelfde manier. De mlxtend-documentatie geeft een eenvoudig voorbeeld: bij een drempelwaarde van 0,5 moet een frequente itemset in ten minste de helft van alle transacties voorkomen. Drempelwaarden in de retail liggen meestal veel lager, omdat zelfs populaire paren in slechts een klein deel van de bestellingen voorkomen.
Voor de meeste zakelijke vragen verandert de keuze van het algoritme de snelheid, niet de resultaten. Beide leveren dezelfde itemsets op voor dezelfde support-drempelwaarde.
Waar market basket analysis voor wordt gebruikt
Market basket analysis komt het meest voor in retail en e-commerce, maar de use cases reiken verder.
- Cross-selling. Beveel het consequent aan bij het afrekenen wanneer het antecedent in het winkelmandje ligt.
- Bundels. Verpak artikelen met een hoge lift in één enkele aanbieding.
- Winkel- en pagina-indeling. Plaats vaak gecombineerde artikelen dicht bij elkaar, in een schap of op een productpagina.
- Voorraadplanning. Sla gekoppelde artikelen samen op, zodat een tekort aan het ene artikel niet ongemerkt de verkoop van het andere onderdrukt.
- Content en media. Behandel een gebruikerssessie als een mandje en ontdek welke artikelen of video's samen worden geconsumeerd.
- Diensten. Behandel in de bankensector of telecom de producten van elke klant als een mandje en ontdek welke combinaties meestal samengaan.
- Campagne-evaluatie. Vergelijk de lift van een paar voor en tijdens een campagne. Een sprong laat zien dat de campagne het koopgedrag heeft veranderd, en niet alleen het volume.
Elke use case begint bij dezelfde vraag. Als klanten één ding kiezen, wat kiezen ze dan meestal nog meer?
De actie die hierop volgt, moet aansluiten bij de richting van de confidence. Een bundel werkt wanneer beide artikelen samen gewenst zijn. Een suggestie bij het afrekenen werkt wanneer het ene artikel betrouwbaar tot het andere leidt.
Market basket analysis versus gerelateerde methoden
Market basket analysis wordt vaak verward met klantsegmentatie en met aanbevelingsmotoren. De tabel laat zien hoe ze verschillen.
| Methode | Analyse-eenheid | Belangrijkste vraag | Typische output |
|---|---|---|---|
| Market basket analysis | Transacties | Welke artikelen horen bij elkaar? | Associatieregels met support, confidence en lift |
| Klantsegmentatie | Klanten | Welke klanten lijken op elkaar? | Groepen klanten met gedeelde kenmerken |
| Collaborative filtering | Klant- en artikelgeschiedenis | Wat zal deze persoon hierna leuk vinden? | Gepersonaliseerde aanbevelingen |
| Cohortanalyse | Groepen op basis van startdatum | Hoe verandert gedrag in de loop van de tijd? | Retentiecurves en -tabellen |
De methoden vullen elkaar aan. Segmentatie kan u vertellen wie uw waardevolle klanten zijn, en market basket analysis kan u vertellen wat die klanten samen kopen. Onze gids voor het bouwen van een klantsegmentatierapport behandelt de eerste helft, and onze uitleg over cohortanalyse behandelt de tijdsdimensie.
Beperkingen die de moeite waard zijn om te kennen
De regels uit market basket analysis zijn nuttig, maar ze worden snel overschat of verkeerd geïnterpreteerd.
Co-occurrence is geen causaal verband. Een paar met een hoge lift vertelt u dat twee artikelen samen worden gekocht. Het vertelt u niet dat het kopen van het ene artikel het kopen van het andere veroorzaakt.
Drempelwaarden bepalen het antwoord. Als u de support te hoog instelt, mist u niche- maar waardevolle paren. Stelt u deze te laag in, dan krijgt u duizenden regels, waarvan vele ruis zijn.
Zeldzame artikelen gaan verloren. Een duur artikel dat een paar keer per maand wordt gekocht, bereikt mogelijk nooit de support-drempelwaarde, zelfs niet als de combinaties sterk zijn.
Retourzendingen en annuleringen verkenen de mandjes. Als geretourneerde artikelen in de gegevens blijven staan, telt de analyse combinaties die klanten ongedaan hebben gemaakt. Onze gids voor een productretourrapport behandelt hoe u die kant afzonderlijk kunt meten.
Veel paren betekenen dat er valse patronen ontstaan. Een catalogus van 500 artikelen heeft meer dan 100.000 mogelijke paren. Sommige zullen puur door toeval een hoge lift vertonen. Bevestig belangrijke regels op een tweede gegevensperiode voordat u er actie op onderneemt.
Tijd is belangrijk. Patronen tijdens een feestdagenperiode gelden mogelijk niet in de lente. Voer de analyse uit op vergelijkbare perioden voordat u een indeling of een bundel wijzigt.
Hoe u er een uitvoert zonder code te schrijven
De klassieke route is Python, met een bibliotheek zoals mlxtend, of SQL om paren te tellen. Beide vereisen dat de bestelgegevens worden omgezet naar één rij per transactie en één kolom per artikel.
Een spreadsheet kan een kleine versie aan. Een draaitabel telt de bestellingen per artikel, en een COUNTIFS-formule telt de bestellingen die beide artikelen in een paar bevatten. De beperking is de schaal, omdat het aantal mogelijke paren snel groeit naarmate de catalogus groter wordt.
Een AI-werkruimte kan het omvormen en tellen uitvoeren op basis van een eenvoudige bestel-export. Powerdrill Bloom ondersteunt uploads van Excel en CSV in elk abonnement. U kunt vragen welke producten het vaakst samen worden gekocht en support, confidence en lift opvragen voor de beste paren.
Begin met een run op categorieniveau om de brede patronen te zien. Voer de analyse vervolgens opnieuw uit op SKU-niveau voor de categorieën die er het meest toe doen.
Controleer de output op dezelfde manier als u een script zou controleren. Bevestig het aantal transacties, controleer één paar handmatig en zorg ervoor dat geretourneerde bestellingen zijn uitgesloten. De pagina van de CSV AI assistant toont de workflow waarbij het bestand centraal staat.
Als u een bestel-export klaar heeft staan, kunt u Powerdrill Bloom erop uitproberen en de beste paren vergelijken met wat uw team verwacht.
Veelgestelde vragen
Wat is market basket analysis in eenvoudige bewoordingen?
Het is een manier om te ontdekken welke producten klanten meestal samen kopen. Het kijkt naar een groot aantal bestellingen en meet hoe vaak elke combinatie voorkomt, vergeleken met wat je op basis van toeval zou verwachten.
Wat is lift in market basket analysis?
Lift vergelijkt hoe vaak twee artikelen samen voorkomen met hoe vaak ze zouden voorkomen als ze geen verband met elkaar hielden. Een lift van 1 betekent geen associatie. Boven de 1 betekent dat ze vaker samen voorkomen dan verwacht, en onder de 1 betekent minder.
Hoe berekent u support en confidence?
Support is het aantal transacties dat de itemset bevat, gedeeld door alle transacties. Confidence is de support van het paar gedeeld door de support van het antecedent. Beide worden meestal weergegeven als decimalen of percentages.
Welk algoritme wordt gebruikt voor market basket analysis?
Apriori is het klassieke algoritme, en FP-Growth is een veelvoorkomend sneller alternatief. Beide vinden frequente itemsets uit transactiegegevens, waarna op basis van die itemsets regels worden gegenereerd en gescoord.
Kunt u market basket analysis uitvoeren in Excel?
Ja, voor kleine datasets. Een draaitabel telt de bestellingen per artikel, en COUNTIFS telt de bestellingen die een paar bevatten. Voor grote catalogi groeit het aantal paren snel, waardoor een script of een AI-tool praktischer is.
Bronnen: mlxtend, Association rules · mlxtend, Apriori. Het uitgewerkte voorbeeld maakt gebruik van illustratieve cijfers.