Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Het Berekenen van Belangrijke Mining-Metrics | Grondslagen van Associatieregels en Transactionele Analyse
Market Basket Analyse en Aanbevelingssystemen

Het Berekenen van Belangrijke Mining-Metrics

Veeg om het menu te tonen

Support: Definitie, Berekening en Interpretatie

Note
Definitie

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

Note
Definitie

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

Note
Definitie

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.

123456789101112131415161718192021222324252627282930
import 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:

  1. Transactiedata voorbereiden:

    • De lijst data bevat transacties, elk als een lijst van gekochte artikelen;
    • Elke sublijst stelt een enkele transactie (mandje) van een klant voor.
  2. Transacties one-hot encoderen:

    • De code gebruikt TransactionEncoder uit de mlxtend-bibliotheek om de lijst van artikel-lijsten om te zetten naar een geschikt formaat voor analyse;
    • fit leert alle unieke artikelen, en transform maakt 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.
  3. 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).
  4. Confidence berekenen:

    • confidence = support_milk_bread / support_milk berekent de confidence voor de regel "Milk ⇒ Bread";
    • Dit meet hoe vaak "Bread" wordt gekocht wanneer "Milk" wordt gekocht.
  5. Lift berekenen:

    • lift = confidence / support_bread berekent de lift voor de regel;
    • Lift vergelijkt de waargenomen confidence met de verwachte confidence als aankopen van "Milk" en "Bread" onafhankelijk zouden zijn.
  6. 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?

question-icon

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"}?

question mark

Welke uitspraak onderscheidt confidence het beste van lift bij association rule mining?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 1. Hoofdstuk 2
some-alt