Confidence และ lift

Market Basket Analysis ด้วย Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

เมื่อ support ทำให้เข้าใจผิด

TID Transaction
1 Coffee, Milk
2 Bread, Milk, Orange
3 Bread, Milk
4 Bread, Milk, Sugar
5 Bread, Jam, Milk
... ...

 

  1. Milk และ bread ถูกซื้อร่วมกันบ่อยครั้ง
    • Support: {Milk} $\rightarrow$ {Bread}
  2. กฎนี้ไม่มีประโยชน์สำหรับการตลาด
    • Milk และ bread ต่างก็เป็นสินค้ายอดนิยมอยู่แล้ว
Market Basket Analysis ด้วย Python

เมตริก confidence

  1. สามารถปรับปรุง support ด้วยเมตริกเพิ่มเติมได้
  2. การเพิ่ม confidence ช่วยให้เห็นภาพที่สมบูรณ์ขึ้น

 

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

Market Basket Analysis ด้วย Python

การตีความเมตริก confidence

ภาพแสดงรายการธุรกรรมจากร้านขายของชำ โดยมีหนึ่งธุรกรรมที่มี jam และ bread

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

ภาพแสดงรายการธุรกรรมจากร้านขายของชำ โดยมีหนึ่งธุรกรรมที่มี jam และ bread

$$Support(Milk) = 1.00$$

Market Basket Analysis ด้วย Python

การตีความเมตริก confidence

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

Market Basket Analysis ด้วย Python

เมตริก lift

 

  • Lift เป็นเมตริกอีกตัวสำหรับประเมินความสัมพันธ์ระหว่างไอเทม
    • ตัวเศษ: สัดส่วนธุรกรรมที่มีทั้ง X และ Y
    • ตัวส่วน: สัดส่วนหาก X และ Y ถูกกำหนดแบบสุ่มและเป็นอิสระต่อกัน

 

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

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

การคำนวณ confidence และ lift

# 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.

Market Basket Analysis ด้วย Python

การคำนวณ confidence และ lift

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

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

Market Basket Analysis ด้วย Python

Preparing Video For Download...