Beregning av Sentrale Gruvemåleverdier
Sveip for å vise menyen
Støtte: Definisjon, beregning og tolkning
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
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
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.
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}")
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:
-
Forbered transaksjonsdata:
- Listen
datainneholder transaksjoner, hver som en liste over kjøpte varer; - Hver underliste representerer en enkelt transaksjon (handlekurv) fra en kunde.
- Listen
-
One-hot-enkoding av transaksjoner:
- Koden bruker
TransactionEncoderframlxtend-biblioteket for å konvertere listen av varelister til et format egnet for analyse; fitlærer alle unike varer, ogtransformlager 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.
- Koden bruker
-
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).
-
Beregning av confidence:
confidence = support_milk_bread / support_milkberegner konfidensen for regelen "Milk ⇒ Bread";- Dette måler hvor ofte "Bread" kjøpes når "Milk" kjøpes.
-
Beregning av lift:
lift = confidence / support_breadberegner lift for regelen;- Lift sammenligner observert konfidens med forventet konfidens dersom kjøp av "Milk" og "Bread" var uavhengige.
-
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?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår