Het Berekenen van Belangrijke Mining-Metrics
Veeg om het menu te tonen
Support: Definitie, Berekening en Interpretatie
Support meet hoe vaak een specifiek item of itemset voorkomt in een transactiedataset.
Wiskundig gezien is support voor een itemset het aandeel transacties dat alle items in die set bevat. In een retailcontext helpt support om te begrijpen hoe vaak een combinatie van producten voorkomt bij alle aankopen.
Support(itemset) = Number of transactions containing itemset / Total number of transactions
Een hogere supportwaarde betekent dat de itemset vaker voorkomt in de data, waardoor deze geschikt is voor verdere analyse of promoties. Bijvoorbeeld, als "bread and butter" samen voorkomen in 30 van de 100 transacties, is de support voor {"bread", "butter"} 0,3.
Confidence: Formule, Betekenis en Praktisch Gebruik
Vertrouwen beoordeelt de waarschijnlijkheid dat een klant die artikel A koopt, ook artikel B zal kopen.
Het wordt berekend als de verhouding van transacties die zowel A als B bevatten tot het aantal transacties dat alleen A bevat.
Confidence(A ⇒ B) = Number of transactions containing both A and B / Number of transactions containing A
In de praktijk geeft vertrouwen aan hoe betrouwbaar de regel "als A, dan B" is. Als het vertrouwen hoog is, kun je er zekerder van zijn dat klanten die A kopen ook B zullen kopen, wat nuttig is voor gerichte aanbevelingen of marketing.
Lift: Afleiding, Meting en Belang
Lift evalueert hoeveel waarschijnlijker het is dat artikel B wordt gekocht wanneer artikel A wordt gekocht, vergeleken met wanneer de aankopen van A en B onafhankelijke gebeurtenissen zouden zijn.
Het wordt berekend door de confidence van de regel te delen door de support van het gevolg (B):
Lift(A ⇒ B) = Confidence(A ⇒ B) / Support(B)
Een liftwaarde van 1 impliceert geen associatie (onafhankelijkheid), groter dan 1 duidt op een positieve associatie en kleiner dan 1 suggereert een negatieve associatie. Lift is essentieel omdat het corrigeert voor de populariteit van het gevolg, waardoor je werkelijk betekenisvolle relaties kunt onderscheiden van toevallige.
Voorbeeld: Support, Confidence en Lift berekenen
Stel je hebt de volgende transactiedata:
- Transactie 1: Milk, Bread;
- Transactie 2: Milk, Diaper, Beer, Bread;
- Transactie 3: Milk, Diaper, Beer, Cola;
- Transactie 4: Bread, Butter.
We berekenen de statistieken voor de regel: Milk ⇒ Bread.
-
Support(Milk, Bread): Komt voor in Transacties 1 en 2 (2 van de 4) ⇒ 0,5;
-
Support(Milk): Komt voor in Transacties 1, 2 en 3 (3 van de 4) ⇒ 0,75;
-
Support(Bread): Komt voor in Transacties 1, 2 en 4 (3 van de 4) ⇒ 0,75.
-
Confidence(Milk ⇒ Bread): Support(Milk, Bread) / Support(Milk) = 0,5 / 0,75 = 0,6667;
-
Lift(Milk ⇒ Bread): Confidence(Milk ⇒ Bread) / Support(Bread) = 0,6667 / 0,75 = 0,8889.
Dit betekent dat hoewel "Milk" en "Bread" vaak samen voorkomen, het kopen van "Milk" de kans op het kopen van "Bread" niet vergroot ten opzichte van het gemiddelde.
123456789101112131415161718192021222324252627282930import pandas as pd from mlxtend.preprocessing import TransactionEncoder # Sample transaction data data = [ ['Milk', 'Bread'], ['Milk', 'Diaper', 'Beer', 'Bread'], ['Milk', 'Diaper', 'Beer', 'Cola'], ['Bread', 'Butter'] ] # Converting to DataFrame with one-hot encoding te = TransactionEncoder() te_ary = te.fit(data).transform(data) df = pd.DataFrame(te_ary, columns=te.columns_) # Calculating support support_milk = df['Milk'].mean() support_bread = df['Bread'].mean() support_milk_bread = (df['Milk'] & df['Bread']).mean() # Calculating confidence for rule: Milk => Bread confidence = support_milk_bread / support_milk # Calculating lift for rule: Milk => Bread lift = confidence / support_bread print(f"Support (Milk & Bread): {support_milk_bread:.2f}") print(f"Confidence (Milk ⇒ Bread): {confidence:.2f}") print(f"Lift (Milk ⇒ Bread): {lift:.2f}")
Deze code laat zien hoe je belangrijke metriek voor associatieregels—support, confidence en lift—kunt berekenen met een kleine transactiedataset. Hieronder volgt een uitleg per onderdeel:
-
Transactiedata voorbereiden:
- De lijst
databevat transacties, elk als een lijst van gekochte artikelen; - Elke sublijst stelt een enkele transactie (mandje) van een klant voor.
- De lijst
-
Transacties one-hot encoderen:
- De code gebruikt
TransactionEncoderuit demlxtend-bibliotheek om de lijst van artikel-lijsten om te zetten naar een geschikt formaat voor analyse; fitleert alle unieke artikelen, entransformmaakt een booleaanse array (True als het artikel in de transactie zit, anders False);- Deze array wordt omgezet naar een pandas DataFrame, waarbij elke kolom een artikel is en elke rij een transactie.
- De code gebruikt
-
Support berekenen:
support_milk = df['Milk'].mean()berekent het aandeel transacties met "Milk";support_bread = df['Bread'].mean()berekent het aandeel met "Bread";support_milk_bread = (df['Milk'] & df['Bread']).mean()berekent het aandeel transacties met zowel "Milk" als "Bread" (de intersectie van de twee kolommen).
-
Confidence berekenen:
confidence = support_milk_bread / support_milkberekent de confidence voor de regel "Milk ⇒ Bread";- Dit meet hoe vaak "Bread" wordt gekocht wanneer "Milk" wordt gekocht.
-
Lift berekenen:
lift = confidence / support_breadberekent de lift voor de regel;- Lift vergelijkt de waargenomen confidence met de verwachte confidence als aankopen van "Milk" en "Bread" onafhankelijk zouden zijn.
-
Resultaten printen en interpreteren:
- De code print de waarden voor support, confidence en lift voor "Milk & Bread";
- Een support van 0,50 betekent dat "Milk" en "Bread" samen in de helft van de transacties worden gekocht;
- Een confidence van 0,67 betekent dat wanneer "Milk" wordt gekocht, "Bread" in tweederde van de gevallen ook wordt gekocht;
- Een lift van 0,89 suggereert dat het kopen van "Milk" het kopen van "Bread" juist iets minder waarschijnlijk maakt dan op basis van toeval (omdat lift < 1).
1. Stel dat in een dataset van 1.000 transacties, 150 transacties zowel "apples" als "bananas" bevatten. Wat is de support voor het itemset {"apples", "bananas"}?
2. Welke uitspraak onderscheidt confidence het beste van lift bij association rule mining?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.