Leerpad
Association rule mining is essentieel geworden voor bedrijven die klantgedrag en aankoopgedrag willen begrijpen. Deze techniek identificeert items die vaak samen worden gekocht, zodat bedrijven productplaatsing, promoties en aanbevelingen kunnen optimaliseren. Dergelijke analyses verbeteren bedrijfsstrategieën door trends die verborgen zitten in transactiegegevens helder zichtbaar te maken.
Het Apriori-algoritme is een populaire methode om deze associatieregels te ontginnen vanwege de eenvoud en praktische resultaten. In tegenstelling tot andere complexe methoden is Apriori rechtlijnig, waardoor het geschikt is voor beginners en effectief in toepassingen in de echte wereld.
Dit artikel legt het Apriori-algoritme uit, illustreert de workflow met duidelijke voorbeelden en laat je zien hoe je het effectief gebruikt. Wil je hands-on aan de slag met machinelearningconcepten, bekijk dan onze Machine Learning Scientist in Python-carrièretrack.
Wat is het Apriori-algoritme?
Zoals je zult ontdekken in onze Association Rule Mining in Python Tutorial, is Apriori een algoritme dat is ontworpen om frequente itemsets uit transactionele databases te halen en associatieregels te genereren. Het is gebaseerd op het principe dat als een itemset frequent is, alle deelverzamelingen daarvan ook frequent moeten zijn. Deze aanname helpt het aantal mogelijke itemsets dat moet worden gecontroleerd te verminderen, waardoor het proces efficiënt wordt.
Itemsets en transacties
Een dataset voor Apriori bestaat typisch uit transacties, waarbij elke transactie een verzameling items is die samen zijn gekocht. Bijvoorbeeld, de verkoopdata van een supermarkt kan transacties bevatten zoals:
- Melk, Brood, Boter
- Melk, Luier, Bier, Brood
- Luier, Bier, Boter
Elk van deze transacties vertegenwoordigt een mandje met items die in één aankoop zijn gekocht. Onze Market Basket Analysis in Python-cursus gaat dieper in op de toepassing van dit concept in Python.

Support, confidence en lift
Association rule mining steunt op drie kernmetrics:
Support: De frequentie waarmee een item in de dataset voorkomt. Dit wordt berekend als:

Confidence: De waarschijnlijkheid dat item B wordt gekocht wanneer item A wordt gekocht, gegeven door:

Lift: De sterkte van een regel; dit meet hoe veel waarschijnlijker item B wordt gekocht wanneer item A wordt gekocht vergeleken met onafhankelijk kopen:

Een liftwaarde groter dan 1 suggereert een sterke positieve associatie tussen items.
Hoe het Apriori-algoritme werkt
Laten we nu ontdekken hoe het Apriori-algoritme werkt.

Stapsgewijs proces
- Kandidaat-itemsets genereren: Het algoritme begint met het identificeren van individuele items en het tellen van hun voorkomen om frequente items te bepalen.
- Snoeien op basis van minimale support: Itemsets die minder voorkomen dan de drempel voor minimale support worden verwijderd.
- Frequente itemsets genereren: Het algoritme genereert grotere itemsets door frequente kleinere itemsets te combineren en herhaalt dit totdat er geen frequente itemsets meer gevormd kunnen worden.
- Associatieregels afleiden: Het extraheert regels op basis van confidence- en liftwaarden om betekenisvolle relaties te bepalen.
Voorbeeldstap
Neem een dataset met transacties:
- Melk, Brood
- Melk, Boter
- Melk, Brood, Boter
- Brood, Boter
Met een minimale support van 50% identificeert het algoritme frequente itemsets en extraheert het regels zoals:
- Melk → Brood: Confidence: 66,7%
- Brood → Boter: Confidence: 66,7%
Deze regels helpen bedrijven aankoopgedrag te begrijpen en hun voorraad te optimaliseren.
Het Apriori-algoritme implementeren in Python
In deze sectie leer je hoe je het Apriori-algoritme in Python implementeert.
De omgeving instellen
Om Apriori in Python te gebruiken, installeer je de benodigde libraries:
pip install mlxtend pandas
Data laden en voorbereiden
De volgende stap is packages laden en de data voorbereiden:
import pandas as pd
from mlxtend.frequent_patterns import apriori, association_rules
# Expanded dataset
data = {
'Milk': [1, 1, 0, 1, 0, 1, 0, 1, 1, 0],
'Bread': [1, 0, 1, 1, 1, 0, 1, 0, 1, 1],
'Butter': [0, 1, 1, 1, 1, 1, 0, 1, 1, 0],
'Eggs': [1, 0, 0, 1, 1, 1, 1, 0, 0, 1],
'Cheese': [0, 1, 1, 0, 1, 1, 0, 1, 0, 1],
'Diaper': [0, 1, 0, 1, 0, 1, 1, 1, 0, 0],
'Beer': [1, 0, 1, 0, 1, 0, 1, 0, 1, 1]
}
df = pd.DataFrame(data)
Het Apriori-algoritme toepassen
Pas vervolgens het algoritme toe.
# Generating frequent itemsets
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
Daarna verkrijgen we de associatieregels:
# Generating frequent itemsets
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
# Generating association rules
rules = association_rules(frequent_itemsets, metric='confidence', min_threshold=0.6)
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])
antecedents consequents support confidence lift
0 (Butter) (Milk) 0.5 0.714286 1.190476
1 (Milk) (Butter) 0.5 0.833333 1.190476
2 (Bread) (Eggs) 0.5 0.714286 1.190476
3 (Eggs) (Bread) 0.5 0.833333 1.190476
4 (Bread) (Beer) 0.6 0.857143 1.428571
5 (Beer) (Bread) 0.6 1.000000 1.428571
6 (Butter) (Cheese) 0.5 0.714286 1.190476
7 (Cheese) (Butter) 0.5 0.833333 1.190476
De supportwaarden (0,5 tot 0,6) geven aan dat deze associaties in 50–60% van alle transacties voorkomen.
De confidence-scores (0,71 tot 1,0) tonen de betrouwbaarheid van de regels, waarbij sommige zoals Bier → Brood zeker zijn (100% confidence).
De liftwaarden (~1,2 tot 1,4) suggereren matige maar betekenisvolle associaties: deze itemparen komen iets vaker samen voor dan op basis van toeval.
De resultaten interpreteren
Om de door het Apriori-algoritme gegenereerde associatieregels beter te begrijpen, kunnen we ze visualiseren met Matplotlib. Een scatterplot helpt bij het bekijken van confidence versus lift, terwijl een heatmap de support voor verschillende itemcombinaties toont.
import matplotlib.pyplot as plt
import networkx as nx
# Scatter plot of confidence vs lift
plt.figure(figsize=(8,6))
plt.scatter(rules['confidence'], rules['lift'], alpha=0.7, color='b')
plt.xlabel('Confidence')
plt.ylabel('Lift')
plt.title('Confidence vs Lift in Association Rules')
plt.grid()
plt.show()
# Visualizing association rules as a network graph
G = nx.DiGraph()
for _, row in rules.iterrows():
G.add_edge(tuple(row['antecedents']), tuple(row['consequents']), weight=row['confidence'])
plt.figure(figsize=(10, 6))
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, node_color='lightblue', edge_color='gray', node_size=3000, font_size=10)
edge_labels = {(tuple(row['antecedents']), tuple(row['consequents'])): f"{row['confidence']:.2f}"
for _, row in rules.iterrows()}
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)
plt.title("Association Rules Network")
plt.show()
De scatterplot helpt regels met sterke relaties te identificeren, terwijl de netwerkgraph visueel laat zien hoe verschillende items met elkaar samenhangen. Deze inzichten sturen besluitvorming in retail, aanbevelingen en fraudedetectie.

De scatterplot toont de relatie tussen confidence en lift voor de gegenereerde associatieregels. De belangrijkste observaties zijn:
- De datapunten liggen verspreid tussen een confidencebereik van 0,7 tot 1,0.
- De liftwaarden vallen meestal tussen 1,19 en 1,43, wat aangeeft dat de geïdentificeerde regels een zekere mate van betekenisvolle associatie bieden, maar niet extreem sterk zijn.
- Een confidence van 1,0 met een lift van 1,43 (Bier → Brood) suggereert dat wanneer bier wordt gekocht, brood altijd in de transactie aanwezig is, wat het een zeer betrouwbare regel maakt.

De netwerkgraph geeft de associaties tussen verschillende items visueel weer:
- Melk en Boter zijn sterk geassocieerd, wat betekent dat klanten die het één kopen, waarschijnlijk ook het ander kopen.
- Brood en Eieren vertonen een vergelijkbare relatie, wat wijst op een veelvoorkomend kooppatroon.
- Bier en Brood tonen de hoogste confidence (1,0), wat betekent dat in alle transacties waar Bier voorkomt, Brood altijd aanwezig is.
Toepassingen van het Apriori-algoritme
Bedrijven passen het Apriori-algoritme op grote schaal toe om diverse problemen op te lossen. Laten we ze hieronder ontdekken.
Market-basketanalyse
Retailers gebruiken Apriori om aankoopPatronen te analyseren, zodat ze producten kunnen rangschikken om gecombineerde aankopen te stimuleren. Als brood en boter bijvoorbeeld vaak samen voorkomen, kan een winkel ze dicht bij elkaar plaatsen om de verkoop te verhogen. Lees meer over market-basketanalyse in onze tutorial market-basketanalyse met R.
Aanbevelingssystemen
Online platforms gebruiken Apriori om producten aan te bevelen op basis van eerdere aankopen. Als een klant een laptop koopt, kunnen aanbevelingen accessoires zoals een muis of toetsenbord bevatten.
Anomaliedetectie
Bij fraudedetectie identificeert Apriori ongewone transacties door ze te vergelijken met verwachte patronen. Als een creditcardtransactie aanzienlijk afwijkt van gevestigde regels, kan dit een veiligheidscontrole activeren. Bij anomaliedetectie wordt Apriori niet direct gebruikt om anomalieën te identificeren, maar het kan wel helpen zeldzame of onverwachte itemcombinaties te detecteren die sterk afwijken van gangbare aankoopPatronen.

Voordelen en beperkingen
Er zijn verschillende voordelen en nadelen verbonden aan het gebruik van het Apriori-algoritme, zoals je hieronder zult ontdekken.
Voordelen
Apriori is eenvoudig te begrijpen en effectief in het ontdekken van frequente itemsets in gestructureerde datasets. Het wordt veel gebruikt in sectoren als retail en zorg voor patroonontdekking.
Beperkingen
Het algoritme wordt traag bij grote datasets omdat het veel kandidaat-itemsets genereert. In gevallen met een hoog datavolume bieden alternatieve methoden zoals FP-Growth betere prestaties.

Conclusie
Apriori blijft een van de meest bruikbare technieken om associaties in data te vinden. Ondanks de computationele uitdagingen levert het waardevolle inzichten op die bedrijven gebruiken om klantervaringen te verbeteren en de verkoop te verhogen.
Hoewel het misschien niet de snelste aanpak is voor grote datasets, blijft het een essentieel hulpmiddel in data mining, analytics en machine learning. Wil je meer leren, verken dan machine learning met Python en werk toe naar een rol als machine learning scientist met onze Machine Learning Scientist in Python-carrièretrack.
Veelgestelde vragen over het Apriori-algoritme
Waarvoor wordt het Apriori-algoritme gebruikt?
Het Apriori-algoritme wordt in data mining gebruikt om frequente itemsets te identificeren en associatieregels te genereren uit grote datasets. Het wordt vaak toegepast in market-basketanalyse, aanbevelingssystemen en fraudedetectie.
Hoe werkt het Apriori-algoritme?
Apriori werkt door eerst frequent voorkomende individuele items in een dataset te identificeren en vervolgens grotere itemsets te genereren op basis hiervan. Het snoeit itemsets die niet voldoen aan een minimale supportdrempel en leidt associatieregels af met behulp van de metrics confidence en lift.
Wat zijn support, confidence en lift in Apriori?
Support: De frequentie van een itemset in de dataset.
Confidence: De kans dat een item in een transactie voorkomt gegeven de aanwezigheid van een ander item.
Lift: De sterkte van de associatie; geeft aan of items vaker samen worden gekocht dan verwacht.
Wat zijn de beperkingen van het Apriori-algoritme?
Apriori kan traag zijn bij grote datasets door het hoge aantal gegenereerde kandidaat-itemsets. Het heeft ook moeite met dichte datasets waarin veel items vaak samen voorkomen. Het FP-Growth-algoritme is een alternatief dat in zulke gevallen beter presteert.
Wat is het verschil tussen Apriori en FP-Growth?
Apriori genereert kandidaat-itemsets en controleert iteratief hun support, wat computationeel kostbaar is. FP-Growth daarentegen gebruikt een boomstructuur om het aantal kandidaat-itemsets te verminderen, waardoor het sneller is voor grote datasets.
