Достоверность и подъём

Анализ рыночных корзин на Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Когда поддержка вводит в заблуждение

TID Транзакция
1 Кофе, Молоко
2 Хлеб, Молоко, Апельсин
3 Хлеб, Молоко
4 Хлеб, Молоко, Сахар
5 Хлеб, Джем, Молоко
... ...

 

  1. Молоко и хлеб часто покупают вместе.
    • Поддержка: {Молоко} $\rightarrow$ {Хлеб}
  2. Правило не полезно для маркетинга.
    • Молоко и хлеб — оба популярных товара.
Анализ рыночных корзин на Python

Метрика достоверности

  1. Можно улучшить оценку поддержки с помощью дополнительных метрик.
  2. Добавление достоверности даёт более полную картину.

 

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

Анализ рыночных корзин на Python

Интерпретация метрики достоверности

На изображении показан список транзакций в продуктовом магазине. Одна из транзакций включает джем и хлеб.

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

На изображении показан список транзакций в продуктовом магазине. Одна из транзакций включает джем и хлеб.

$$Support(Milk) = 1.00$$

Анализ рыночных корзин на Python

Интерпретация метрики достоверности

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

Анализ рыночных корзин на Python

Метрика подъёма

 

  • Подъём — ещё одна метрика для оценки связи между товарами.
    • Числитель: доля транзакций, содержащих X и Y.
    • Знаменатель: доля при случайном и независимом распределении X и Y.

 

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

Анализ рыночных корзин на Python

Подготовка данных

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_)
Анализ рыночных корзин на Python

Вычисление достоверности и подъёма

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

Набор данных: GoodBooks-10K.

Анализ рыночных корзин на Python

Вычисление достоверности и подъёма

# 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)
Анализ рыночных корзин на Python

Давайте потренируемся!

Анализ рыночных корзин на Python

Preparing Video For Download...