Confiance et lift

Analyse des paniers d’achat en Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Quand le support induit en erreur

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

 

  1. Milk et bread souvent achetés ensemble.
    • Support : {Milk} $\rightarrow$ {Bread}
  2. Règle peu utile pour le marketing.
    • Milk et bread sont des articles populaires.
Analyse des paniers d’achat en Python

La métrique de confiance

  1. On peut améliorer le support avec d'autres métriques.
  2. Ajouter la confiance donne une vue plus complète.

 

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

Analyse des paniers d’achat en Python

Interpréter la confiance

Cette image montre une liste de transactions d'une épicerie. L'une d'elles inclut de la confiture et du pain.

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

Cette image montre une liste de transactions d'une épicerie. L'une d'elles inclut de la confiture et du pain.

$$Support(Milk) = 1.00$$

Analyse des paniers d’achat en Python

Interpréter la confiance

  $$\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$$

Analyse des paniers d’achat en Python

La métrique de lift

 

  • Le lift offre une autre métrique pour évaluer la relation entre articles.
    • Numérateur : proportion de transactions contenant X et Y.
    • Dénominateur : proportion si X et Y étaient attribués au hasard et indépendamment.

 

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

Analyse des paniers d’achat en Python

Préparer les données

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_)
Analyse des paniers d’achat en Python

Calculer confiance et 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.

Analyse des paniers d’achat en Python

Calculer confiance et 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)
Analyse des paniers d’achat en Python

Passons à la pratique !

Analyse des paniers d’achat en Python

Preparing Video For Download...