Простейшая метрика

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

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Метрики и отсечение

  • Метрика — это мера качества правил.
    • {humor} $\rightarrow$ {poetry}
      • 0.81
    • {fiction} $\rightarrow$ {travel}
      • 0.23
  • Отсечение — удаление правил на основе метрик.
    • Оставить: {humor} $\rightarrow$ {poetry}
    • Отбросить: {fiction} $\rightarrow$ {travel}
Анализ рыночных корзин на Python

Простейшая метрика

  • Метрика поддержки измеряет долю транзакций, содержащих набор элементов.

 

$$\frac{\text{число транзакций с элементом(ами)}}{\text{общее число транзакций}}$$

 

$$\frac{\text{число транзакций с молоком}}{\text{общее число транзакций}}$$

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

Поддержка для language

TID Транзакция
0 travel, humor, fiction
1 humor, language
2 humor, biography, cooking
3 cooking, language
4 travel

 

Поддержка {language} = 2 / 10 = 0.2

TID Транзакция
5 poetry, health, travel, history
6 humor
7 travel
8 poetry, fiction, humor
9 fiction, biography
Анализ рыночных корзин на Python

Поддержка для {Humor} $\rightarrow$ {Language}

TID Транзакция
0 travel,humor,fiction
1 humor,language
2 humor,biography,cooking
3 cooking,language
4 travel

 

ПОДДЕРЖКА {language} $\rightarrow$ {humor} = 0.1

TID Транзакция
5 poetry,health,travel,history
6 humor
7 travel
8 poetry,fiction,humor
9 fiction,biography
Анализ рыночных корзин на Python

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

print(transactions)
[['travel', 'humor', 'fiction'],
...
['fiction', 'biography']]
from mlxtend.preprocessing import TransactionEncoder
# Instantiate transaction encoder
encoder = TransactionEncoder().fit(transactions)
Анализ рыночных корзин на Python

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

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

Вычисление поддержки для отдельных элементов

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

Вычисление поддержки для нескольких элементов

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

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

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

Preparing Video For Download...