Lift e confidenza

Analisi del carrello in Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Quando il support può fuorviare

TID Transazione
1 Coffee, Milk
2 Bread, Milk, Orange
3 Bread, Milk
4 Bread, Milk, Sugar
5 Bread, Jam, Milk
... ...

 

  1. Latte e pane spesso comprati insieme.
    • Support: {Milk} $\rightarrow$ {Bread}
  2. Regola poco utile per il marketing.
    • Latte e pane sono entrambi molto comuni.
Analisi del carrello in Python

La metrica confidence

  1. Si può migliorare oltre il support con metriche aggiuntive.
  2. Aggiungere la confidence dà un quadro più completo.

 

$$\frac{Support(X \& Y)}{Support(X)}$$

Analisi del carrello in Python

Interpretare la confidence

Questa immagine mostra un elenco di transazioni di un supermercato. Una transazione include jam e bread.

$$Support(Milk\&Coffee) = 0.20$$

Questa immagine mostra un elenco di transazioni di un supermercato. Una transazione include jam e bread.

$$Support(Milk) = 1.00$$

Analisi del carrello in Python

Interpretare la confidence

  $$\frac{Support(Milk\&Coffee)}{Support(Milk)} = \frac{0.20}{1.00} = 0.20$$

  $$\frac{Support(Milk\&Coffee)}{Support(Milk)} = \frac{0.20}{0.80} = 0.25$$

  $$\frac{Support(Milk\&Coffee)}{Support(Milk)} = \frac{0.20}{0.20} = 1.00$$

Analisi del carrello in Python

La metrica lift

 

  • Il lift è un'altra metrica per valutare la relazione tra item.
    • Numeratore: quota di transazioni con X e Y.
    • Denominatore: quota attesa se X e Y fossero assegnati a caso e indipendenti.

 

$$\frac{Support(X \& Y)}{Support(X) Support(Y)}$$

Analisi del carrello in Python

Preparare i dati

from mlxtend.preprocessing import TransactionEncoder
import pandas as pd

# Split library strings into lists
libraries = data['Library'].apply(lambda t: t.split(','))

# Convert to list of lists
libraries = list(libraries)

# One-hot encode books
books = TransactionEncoder().fit(libraries).transform(libraries)

# Convert one-hot encoded data to DataFrame
books = pd.DataFrame(books, columns = encoder.columns_)
Analisi del carrello in Python

Calcolare confidenza e lift

# Print first five items
print(books.head())
       Hunger           Gatsby
0      False            True
1      False            True
2      False            False
3      False            True
4      False            True

Dataset: GoodBooks-10K.

Analisi del carrello in Python

Calcolare confidenza e lift

# Computing support.
supportHG = np.logical_and(books['Hunger'],books['Gatsby']).mean()
supportH = books['Hunger'].mean()
supportG = books['Gatsby'].mean()
# Compute and print confidence and lift.
confidence = supportHG / supportH
lift = supportHG / (supportH * supportG)
# Print results.
print(supportG, confidence, lift)
(0.30, 0.16, 0.53)
Analisi del carrello in Python

Ayo berlatih!

Analisi del carrello in Python

Preparing Video For Download...