Beräkning av Viktiga Gruvdriftsmått
Svep för att visa menyn
Support: Definition, beräkning och tolkning
Support mäter hur ofta ett specifikt objekt eller objektuppsättning förekommer i en transaktionsdatamängd.
Matematiskt är support för en objektuppsättning andelen transaktioner som innehåller alla objekt i den uppsättningen. I ett detaljhandelssammanhang hjälper support dig att förstå hur vanligt en kombination av produkter är bland alla köp.
Support(itemset) = Number of transactions containing itemset / Total number of transactions
Ett högre supportvärde innebär att objektuppsättningen är mer förekommande i dina data, vilket gör den till en kandidat för vidare analys eller kampanjer. Till exempel, om "bread and butter" förekommer tillsammans i 30 av 100 transaktioner, är support för {"bread", "butter"} 0,3.
Confidence: Formel, betydelse och praktisk användning
Konfidens bedömer sannolikheten att en kund som köper vara A även köper vara B.
Den beräknas som kvoten mellan antalet transaktioner som innehåller både A och B och antalet transaktioner som endast innehåller A.
Confidence(A ⇒ B) = Number of transactions containing both A and B / Number of transactions containing A
I praktiken visar konfidens hur tillförlitlig regeln "om A, så B" är. Om konfidensen är hög kan du vara mer säker på att kunder som köper A även köper B, vilket är användbart för riktade rekommendationer eller marknadsföring.
Lift: Härledning, mätning och betydelse
Lift utvärderar hur mycket mer sannolikt det är att vara B köps när vara A köps, jämfört med om köp av A och B vore oberoende händelser.
Det beräknas genom att dividera regelns konfidens med stödet för konsekventen (B):
Lift(A ⇒ B) = Confidence(A ⇒ B) / Support(B)
Ett lift-värde på 1 innebär ingen association (oberoende), större än 1 indikerar en positiv association och mindre än 1 antyder en negativ association. Lift är avgörande eftersom det justerar för konsekventens popularitet och hjälper dig att särskilja verkligt meningsfulla samband från tillfälliga.
Arbetsgång: Beräkning av Support, Confidence och Lift
Anta att du har följande transaktionsdata:
- Transaction 1: Milk, Bread;
- Transaction 2: Milk, Diaper, Beer, Bread;
- Transaction 3: Milk, Diaper, Beer, Cola;
- Transaction 4: Bread, Butter.
Vi beräknar nu måtten för regeln: Milk ⇒ Bread.
-
Support(Milk, Bread): Förekommer i Transaction 1 och 2 (2 av 4) ⇒ 0.5;
-
Support(Milk): Förekommer i Transaction 1, 2 och 3 (3 av 4) ⇒ 0.75;
-
Support(Bread): Förekommer i Transaction 1, 2 och 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.
Detta innebär att även om "Milk" och "Bread" ofta förekommer tillsammans, ökar inte köp av "Milk" sannolikheten att köpa "Bread" jämfört med grundnivån.
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}")
Denna kod visar hur du beräknar centrala mått för associationsregler—support, confidence och lift—med ett litet transaktionsdataset. Så här fungerar varje del:
-
Förbered transaktionsdata:
- Listan
datainnehåller transaktioner, där varje är en lista över köpta varor; - Varje underlista representerar en enskild transaktion (korg) från en kund.
- Listan
-
One-hot-kodning av transaktioner:
- Koden använder
TransactionEncoderfrån biblioteketmlxtendför att omvandla listan av varulistor till ett format som lämpar sig för analys; fitlär sig alla unika varor ochtransformskapar en boolesk matris (True om varan finns i transaktionen, annars False);- Denna matris omvandlas till en pandas DataFrame, där varje kolumn är en vara och varje rad är en transaktion.
- Koden använder
-
Beräkna support:
support_milk = df['Milk'].mean()beräknar andelen transaktioner som innehåller "Milk";support_bread = df['Bread'].mean()beräknar andelen som innehåller "Bread";support_milk_bread = (df['Milk'] & df['Bread']).mean()beräknar andelen transaktioner som innehåller både "Milk" och "Bread" (snittet av de två kolumnerna).
-
Beräkna confidence:
confidence = support_milk_bread / support_milkberäknar konfidensen för regeln "Milk ⇒ Bread";- Detta mäter hur ofta "Bread" köps när "Milk" köps.
-
Beräkna lift:
lift = confidence / support_breadberäknar lift för regeln;- Lift jämför den observerade konfidensen med den förväntade om köp av "Milk" och "Bread" vore oberoende.
-
Skriv ut och tolka resultat:
- Koden skriver ut värdena för support, confidence och lift för "Milk & Bread";
- Ett support på 0.50 betyder att "Milk" och "Bread" köps tillsammans i hälften av transaktionerna;
- En confidence på 0.67 betyder att när "Milk" köps, köps även "Bread" två tredjedelar av gångerna;
- Ett lift på 0.89 antyder att köp av "Milk" faktiskt gör det något mindre sannolikt att "Bread" köps jämfört med slumpen (eftersom lift < 1).
1. Antag att det i en datamängd med 1 000 transaktioner finns 150 transaktioner som innehåller både "apples" och "bananas". Vad är support för itemsetet {"apples", "bananas"}?
2. Vilket påstående skiljer bäst mellan konfidens och lift inom association rule mining?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal