Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Beregning av Sentrale Gruvemåleverdier | Grunnleggende om assosiasjonsregler og transaksjonsanalyse
Market Basket Analysis og Anbefalingssystemer

Beregning av Sentrale Gruvemåleverdier

Sveip for å vise menyen

Støtte: Definisjon, beregning og tolkning

Note
Definisjon

Støtte måler hvor ofte et spesifikt element eller elementsett forekommer i et transaksjonsdatasett.

Matematisk er støtte for et elementsett andelen transaksjoner som inneholder alle elementene i settet. I en detaljhandelssammenheng hjelper støtte deg å forstå hvor vanlig en kombinasjon av produkter er blant alle utsjekker.

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

En høyere støtteverdi betyr at elementsettet er mer utbredt i dataene dine, noe som gjør det til en kandidat for videre analyse eller kampanjer. For eksempel, hvis "bread and butter" forekommer sammen i 30 av 100 transaksjoner, er støtten for {"bread", "butter"} 0,3.

Konfidens: Formel, betydning og praktisk bruk

Note
Definisjon

Konfidens vurderer sannsynligheten for at en kunde som kjøper vare A også vil kjøpe vare B.

Den beregnes som forholdet mellom antall transaksjoner som inneholder både A og B, og antall transaksjoner som kun inneholder A.

Konfidens(A ⇒ B) = Antall transaksjoner som inneholder både A og B / Antall transaksjoner som inneholder A

I praksis viser konfidens hvor pålitelig regelen "hvis A, så B" er. Hvis konfidensen er høy, kan du være mer sikker på at kunder som kjøper A også kjøper B, noe som er nyttig for målrettede anbefalinger eller markedsføring.

Lift: Utledning, måling og betydning

Note
Definisjon

Lift vurderer hvor mye mer sannsynlig det er at vare B blir kjøpt når vare A kjøpes, sammenlignet med om kjøpene av A og B var uavhengige hendelser.

Den beregnes ved å dele konfidensen til regelen på støtten til konsekventen (B):

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

En lift-verdi på 1 indikerer ingen assosiasjon (uavhengighet), større enn 1 indikerer en positiv assosiasjon, og mindre enn 1 antyder en negativ assosiasjon. Lift er viktig fordi den justerer for populariteten til konsekventen, og hjelper deg å skille virkelig meningsfulle relasjoner fra tilfeldige sammenhenger.

Eksempel: Beregning av Support, Confidence og Lift

Anta at du har følgende transaksjonsdata:

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

La oss beregne målene for regelen: Milk ⇒ Bread.

  • Support(Milk, Bread): Forekommer i Transaction 1 og 2 (2 av 4) ⇒ 0.5;

  • Support(Milk): Forekommer i Transaction 1, 2 og 3 (3 av 4) ⇒ 0.75;

  • Support(Bread): Forekommer i Transaction 1, 2 og 4 (3 av 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 betyr at selv om "Milk" og "Bread" ofte forekommer sammen, øker ikke kjøp av "Milk" sannsynligheten for å kjøpe "Bread" sammenlignet med utgangspunktet.

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 koden viser hvordan man kan beregne sentrale måleverdier for assosiasjonsregler—support, confidence og lift—ved bruk av et lite transaksjonsdatasett. Slik fungerer de ulike delene:

  1. Forbered transaksjonsdata:

    • Listen data inneholder transaksjoner, hver som en liste over kjøpte varer;
    • Hver underliste representerer en enkelt transaksjon (handlekurv) fra en kunde.
  2. One-hot-enkoding av transaksjoner:

    • Koden bruker TransactionEncoder fra mlxtend-biblioteket for å konvertere listen av varelister til et format egnet for analyse;
    • fit lærer alle unike varer, og transform lager et boolsk array (True hvis varen er tilstede i transaksjonen, False ellers);
    • Dette arrayet konverteres til en pandas DataFrame, hvor hver kolonne er en vare og hver rad er en transaksjon.
  3. Beregning av support:

    • support_milk = df['Milk'].mean() beregner andelen transaksjoner som inneholder "Milk";
    • support_bread = df['Bread'].mean() beregner andelen som inneholder "Bread";
    • support_milk_bread = (df['Milk'] & df['Bread']).mean() beregner andelen transaksjoner som inneholder både "Milk" og "Bread" (snittet av de to kolonnene).
  4. Beregning av confidence:

    • confidence = support_milk_bread / support_milk beregner konfidensen for regelen "Milk ⇒ Bread";
    • Dette måler hvor ofte "Bread" kjøpes når "Milk" kjøpes.
  5. Beregning av lift:

    • lift = confidence / support_bread beregner lift for regelen;
    • Lift sammenligner observert konfidens med forventet konfidens dersom kjøp av "Milk" og "Bread" var uavhengige.
  6. Utskrift og tolkning av resultater:

    • Koden skriver ut support-, confidence- og lift-verdiene for "Milk & Bread";
    • En support på 0,50 betyr at "Milk" og "Bread" kjøpes sammen i halvparten av transaksjonene;
    • En confidence på 0,67 betyr at når "Milk" kjøpes, kjøpes også "Bread" i to tredjedeler av tilfellene;
    • En lift på 0,89 antyder at kjøp av "Milk" faktisk gjør det litt mindre sannsynlig å kjøpe "Bread" sammenlignet med tilfeldig sjanse (siden lift < 1).

1. Anta at i et datasett med 1 000 transaksjoner inneholder 150 transaksjoner både "apples" og "bananas". Hva er støtten for varegruppen {"apples", "bananas"}?

2. Hvilket utsagn skiller best mellom konfidens og løft i assosiasjonsregelutvinning?

question-icon

Anta at i et datasett med 1 000 transaksjoner inneholder 150 transaksjoner både "apples" og "bananas". Hva er støtten for varegruppen {"apples", "bananas"}?

question mark

Hvilket utsagn skiller best mellom konfidens og løft i assosiasjonsregelutvinning?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 2
some-alt