La métrica más simple

Análisis de cesta de la compra en Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Métricas y poda

  • Una métrica mide el rendimiento de las reglas.
    • {humor} $\rightarrow$ {poetry}
      • 0.81
    • {fiction} $\rightarrow$ {travel}
      • 0.23
  • La poda usa métricas para descartar reglas.
    • Conservar: {humor} $\rightarrow$ {poetry}
    • Descartar: {fiction} $\rightarrow$ {travel}
Análisis de cesta de la compra en Python

La métrica más simple

  • La métrica de soporte mide la proporción de transacciones que contienen un conjunto de ítems.

 

$$\frac{\text{número de transacciones con ítem(s)}}{\text{número de transacciones}}$$

 

$$\frac{\text{número de transacciones con milk}}{\text{transacciones totales}}$$

Análisis de cesta de la compra en Python

Soporte de language

TID Transacción
0 travel, humor, fiction
1 humor, language
2 humor, biography, cooking
3 cooking, language
4 travel

 

Soporte de {language} = 2 / 10 = 0.2

TID Transacción
5 poetry, health, travel, history
6 humor
7 travel
8 poetry, fiction, humor
9 fiction, biography
Análisis de cesta de la compra en Python

Soporte de {Humor} $\rightarrow$ {Language}

TID Transacción
0 travel,humor,fiction
1 humor,language
2 humor,biography,cooking
3 cooking,language
4 travel

 

SOPORTE de {language} $\rightarrow$ {humor} = 0.1

TID Transacción
5 poetry,health,travel,history
6 humor
7 travel
8 poetry,fiction,humor
9 fiction,biography
Análisis de cesta de la compra en Python

Preparar los datos

print(transactions)
[['travel', 'humor', 'fiction'],
...
['fiction', 'biography']]
from mlxtend.preprocessing import TransactionEncoder
# Instantiate transaction encoder
encoder = TransactionEncoder().fit(transactions)
Análisis de cesta de la compra en Python

Preparar los datos

# 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
Análisis de cesta de la compra en Python

Calcular soporte para ítems individuales

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
Análisis de cesta de la compra en Python

Calcular soporte para varios ítems

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
Análisis de cesta de la compra en Python

¡Vamos a practicar!

Análisis de cesta de la compra en Python

Preparing Video For Download...