Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Beräkning av Viktiga Gruvdriftsmått | Grunderna i Associationsregler och Transaktionsanalys
Market Basket Analysis och Rekommendationssystem

Beräkning av Viktiga Gruvdriftsmått

Svep för att visa menyn

Support: Definition, beräkning och tolkning

Note
Definition

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

Note
Definition

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

Note
Definition

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.

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

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:

  1. Förbered transaktionsdata:

    • Listan data innehåller transaktioner, där varje är en lista över köpta varor;
    • Varje underlista representerar en enskild transaktion (korg) från en kund.
  2. One-hot-kodning av transaktioner:

    • Koden använder TransactionEncoder från biblioteket mlxtend för att omvandla listan av varulistor till ett format som lämpar sig för analys;
    • fit lär sig alla unika varor och transform skapar 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.
  3. 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).
  4. Beräkna confidence:

    • confidence = support_milk_bread / support_milk beräknar konfidensen för regeln "Milk ⇒ Bread";
    • Detta mäter hur ofta "Bread" köps när "Milk" köps.
  5. Beräkna lift:

    • lift = confidence / support_bread berä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.
  6. 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?

question-icon

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

question mark

Vilket påstående skiljer bäst mellan konfidens och lift inom association rule mining?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 2
some-alt