Найпростіша метрика

Маркет-баcкет аналіз у 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}
Маркет-баcкет аналіз у Python

Найпростіша метрика

  • Метрика підтримки вимірює частку транзакцій, що містять набір елементів.

 

$$\frac{\text{number of transactions with items(s)}}{\text{number of transactions}}$$

 

$$\frac{\text{number of transactions with milk}}{\text{total transactions}}$$

Маркет-баcкет аналіз у Python

Підтримка для language

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

 

Підтримка для {language} = 2 / 10 = 0.2

TID Transaction
5 poetry, health, travel, history
6 humor
7 travel
8 poetry, fiction, humor
9 fiction, biography
Маркет-баcкет аналіз у Python

Підтримка для {Humor} $\rightarrow$ {Language}

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

 

SUPPORT для {language} $\rightarrow$ {humor} = 0.1

TID Transaction
5 poetry,health,travel,history
6 humor
7 travel
8 poetry,fiction,humor
9 fiction,biography
Маркет-баcкет аналіз у Python

Підготовка даних

print(transactions)
[['travel', 'humor', 'fiction'],
...
['fiction', 'biography']]
from mlxtend.preprocessing import TransactionEncoder
# Instantiate transaction encoder
encoder = TransactionEncoder().fit(transactions)
Маркет-баcкет аналіз у 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
Маркет-баcкет аналіз у 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
Маркет-баcкет аналіз у 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
Маркет-баcкет аналіз у Python

Давайте потренуємось!

Маркет-баcкет аналіз у Python

Preparing Video For Download...