La métrique la plus simple

Analyse des paniers d'achat en Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Métriques et élagage

  • Une métrique mesure la performance des règles.
    • {humor} $\rightarrow$ {poetry}
      • 0,81
    • {fiction} $\rightarrow$ {travel}
      • 0,23
  • L'élagage consiste à utiliser des métriques pour écarter des règles.
    • Conserver : {humor} $\rightarrow$ {poetry}
    • Écarter : {fiction} $\rightarrow$ {travel}
Analyse des paniers d'achat en Python

La métrique la plus simple

  • La métrique de soutien mesure la part des transactions qui contiennent un itemset.

 

$$\frac{\text{nombre de transactions avec l'item (les items)}}{\text{nombre de transactions}}$$

 

$$\frac{\text{nombre de transactions avec milk}}{\text{transactions totales}}$$

Analyse des paniers d'achat en Python

Soutien pour language

TID Transaction
0 travel, humor, fiction
1 humor, language
2 humor, biography, cooking
3 cooking, language
4 travel

 

Soutien pour {language} = 2 / 10 = 0,2

TID Transaction
5 poetry, health, travel, history
6 humor
7 travel
8 poetry, fiction, humor
9 fiction, biography
Analyse des paniers d'achat en Python

Soutien pour {Humor} $\rightarrow$ {Language}

TID Transaction
0 travel,humor,fiction
1 humor,language
2 humor,biography,cooking
3 cooking,language
4 travel

 

SOUTIEN pour {language} $\rightarrow$ {humor} = 0,1

TID Transaction
5 poetry,health,travel,history
6 humor
7 travel
8 poetry,fiction,humor
9 fiction,biography
Analyse des paniers d'achat en Python

Préparer les données

print(transactions)
[['travel', 'humor', 'fiction'],
...
['fiction', 'biography']]
from mlxtend.preprocessing import TransactionEncoder
# Instantiate transaction encoder
encoder = TransactionEncoder().fit(transactions)
Analyse des paniers d'achat en Python

Préparer les données

# One-hot encode itemsets by applying fit and transform
onehot = encoder.transform(transactions)
# Convert one-hot encoded data to DataFrame
onehot = pd.DataFrame(onehot, columns = encoder.columns_)
print(onehot)
   biography  cooking  ...  poetry  travel
0  False      False   ...   False    True
...
9  True       False   ...   False    False
Analyse des paniers d'achat en Python

Calculer le soutien pour des items uniques

print(onehot.mean())
biography    0.2
cooking      0.2
fiction      0.3
health       0.1
history      0.1
humor        0.5
language     0.2
poetry       0.2
travel       0.4
dtype: float64
Analyse des paniers d'achat en Python

Calculer le soutien pour plusieurs items

import numpy as np

# Define itemset that contains fiction and poetry
onehot['fiction+poetry'] = np.logical_and(onehot['fiction'],onehot['poetry'])

print(onehot.mean())
biography         0.2
cooking           0.2
...               ...
travel            0.4
fiction+poetry    0.1
dtype: float64
Analyse des paniers d'achat en Python

Passons à la pratique !

Analyse des paniers d'achat en Python

Preparing Video For Download...