Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Beregning af Centrale Minedriftsmetrikker | Grundlæggende om Associationsregler og Transaktionsanalyse
Market Basket Analyse og Anbefalingssystemer

Beregning af Centrale Minedriftsmetrikker

Stryg for at vise menuen

Support: Definition, beregning og fortolkning

Note
Definition

Support måler, hvor ofte et bestemt element eller elementmængde forekommer i et transaktionsdatasæt.

Matematisk er support for en elementmængde andelen af transaktioner, der indeholder alle elementer i sættet. I en detailkontekst hjælper support med at forstå, hvor almindelig en kombination af produkter er blandt alle køb.

Support(itemset) = Number of transactions containing itemset / Total number of transactions

En højere supportværdi betyder, at elementmængden er mere udbredt i dine data, hvilket gør den til en kandidat for yderligere analyse eller kampagner. For eksempel, hvis "bread and butter" optræder sammen i 30 ud af 100 transaktioner, er support for {"bread", "butter"} 0,3.

Confidence: Formel, betydning og praktisk anvendelse

Note
Definition

Konfidens vurderer sandsynligheden for, at en kunde, der køber vare A, også vil købe vare B.

Den beregnes som forholdet mellem antallet af transaktioner, der indeholder både A og B, og antallet af transaktioner, der kun indeholder A.

Confidence(A ⇒ B) = Number of transactions containing both A and B / Number of transactions containing A

I praksis angiver konfidens, hvor pålidelig reglen "hvis A, så B" er. Hvis konfidensen er høj, kan du være mere sikker på, at kunder, der køber A, også vil købe B, hvilket er nyttigt til målrettede anbefalinger eller markedsføring.

Lift: Udledning, måling og betydning

Note
Definition

Lift vurderer, hvor meget mere sandsynligt det er, at vare B bliver købt, når vare A købes, sammenlignet med hvis køb af A og B var uafhængige hændelser.

Den beregnes ved at dividere reglens konfidens med støtten for konsekventen (B):

Lift(A ⇒ B) = Confidence(A ⇒ B) / Support(B)

En lift-værdi på 1 antyder ingen association (uafhængighed), større end 1 indikerer en positiv association, og mindre end 1 antyder en negativ association. Lift er vigtig, fordi den justerer for konsekventens popularitet og hjælper med at skelne mellem reelt meningsfulde relationer og tilfældige sammenfald.

Arbejdet eksempel: Beregning af support, konfidens og lift

Antag, at du har følgende transaktionsdata:

  • Transaktion 1: Milk, Bread;
  • Transaktion 2: Milk, Diaper, Beer, Bread;
  • Transaktion 3: Milk, Diaper, Beer, Cola;
  • Transaktion 4: Bread, Butter.

Lad os beregne målene for reglen: Milk ⇒ Bread.

  • Support(Milk, Bread): Forekommer i Transaktion 1 og 2 (2 ud af 4) ⇒ 0,5;

  • Support(Milk): Forekommer i Transaktion 1, 2 og 3 (3 ud af 4) ⇒ 0,75;

  • Support(Bread): Forekommer i Transaktion 1, 2 og 4 (3 ud af 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.

Dette betyder, at selvom "Milk" og "Bread" ofte optræder sammen, øger køb af "Milk" ikke sandsynligheden for at købe "Bread" sammenlignet med baseline.

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

Denne kode demonstrerer, hvordan man beregner centrale målinger for associationsregler—support, konfidens og lift—ved hjælp af et lille transaktionsdatasæt. Sådan fungerer de enkelte dele:

  1. Forbered transaktionsdata:

    • Listen data indeholder transaktioner, hver som en liste over købte varer;
    • Hver underliste repræsenterer en enkelt transaktion (kurv) fra en kunde.
  2. One-hot kodning af transaktioner:

    • Koden bruger TransactionEncoder fra mlxtend-biblioteket til at konvertere listen af varelister til et format, der egner sig til analyse;
    • fit identificerer alle unikke varer, og transform opretter et boolesk array (True hvis varen er til stede i transaktionen, ellers False);
    • Dette array konverteres til en pandas DataFrame, hvor hver kolonne er en vare og hver række er en transaktion.
  3. Beregn support:

    • support_milk = df['Milk'].mean() beregner andelen af transaktioner, der indeholder "Milk";
    • support_bread = df['Bread'].mean() beregner andelen, der indeholder "Bread";
    • support_milk_bread = (df['Milk'] & df['Bread']).mean() beregner andelen af transaktioner, der indeholder både "Milk" og "Bread" (snittet af de to kolonner).
  4. Beregn konfidens:

    • confidence = support_milk_bread / support_milk beregner konfidensen for reglen "Milk ⇒ Bread";
    • Dette måler, hvor ofte "Bread" købes, når "Milk" købes.
  5. Beregn lift:

    • lift = confidence / support_bread beregner lift for reglen;
    • Lift sammenligner den observerede konfidens med den forventede konfidens, hvis køb af "Milk" og "Bread" var uafhængige.
  6. Udskriv og fortolk resultater:

    • Koden udskriver support-, konfidens- og lift-værdierne for "Milk & Bread";
    • En support på 0,50 betyder, at "Milk" og "Bread" købes sammen i halvdelen af transaktionerne;
    • En konfidens på 0,67 betyder, at når "Milk" købes, købes "Bread" også i to tredjedele af tilfældene;
    • En lift på 0,89 antyder, at køb af "Milk" faktisk gør det en smule mindre sandsynligt at købe "Bread" sammenlignet med tilfældigheder (da lift < 1).

1. Antag, at der i et datasæt med 1.000 transaktioner er 150 transaktioner, der indeholder både "apples" og "bananas". Hvad er support for itemsettet {"apples", "bananas"}?

2. Hvilken sætning adskiller bedst confidence fra lift i association rule mining?

question-icon

Antag, at der i et datasæt med 1.000 transaktioner er 150 transaktioner, der indeholder både "apples" og "bananas". Hvad er support for itemsettet {"apples", "bananas"}?

question mark

Hvilken sætning adskiller bedst confidence fra lift i association rule mining?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 2
some-alt