เมตริกที่ง่ายที่สุด

Market Basket Analysis ด้วย Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

เมตริกและการตัดกฎ

  • เมตริก คือตัววัดประสิทธิภาพของกฎ
    • {humor} $\rightarrow$ {poetry}
      • 0.81
    • {fiction} $\rightarrow$ {travel}
      • 0.23
  • การตัดกฎ (Pruning) คือการใช้เมตริกเพื่อคัดทิ้งกฎที่ไม่เหมาะสม
    • เก็บไว้: {humor} $\rightarrow$ {poetry}
    • ตัดทิ้ง: {fiction} $\rightarrow$ {travel}
Market Basket Analysis ด้วย Python

เมตริกที่ง่ายที่สุด

  • เมตริก support วัดสัดส่วนของธุรกรรมที่มีชุดรายการนั้น

 

$$\frac{\text{จำนวนธุรกรรมที่มีรายการ}}{\text{จำนวนธุรกรรมทั้งหมด}}$$

 

$$\frac{\text{จำนวนธุรกรรมที่มี milk}}{\text{จำนวนธุรกรรมทั้งหมด}}$$

Market Basket Analysis ด้วย Python

Support ของ language

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

 

Support ของ {language} = 2 / 10 = 0.2

TID Transaction
5 poetry, health, travel, history
6 humor
7 travel
8 poetry, fiction, humor
9 fiction, biography
Market Basket Analysis ด้วย Python

Support ของ {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
Market Basket Analysis ด้วย Python

การเตรียมข้อมูล

print(transactions)
[['travel', 'humor', 'fiction'],
...
['fiction', 'biography']]
from mlxtend.preprocessing import TransactionEncoder
# Instantiate transaction encoder
encoder = TransactionEncoder().fit(transactions)
Market Basket Analysis ด้วย 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
Market Basket Analysis ด้วย Python

คำนวณ support สำหรับรายการเดี่ยว

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
Market Basket Analysis ด้วย Python

คำนวณ support สำหรับหลายรายการ

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
Market Basket Analysis ด้วย Python

มาฝึกกันเถอะ!

Market Basket Analysis ด้วย Python

Preparing Video For Download...