Data Mining Exercise 15
Solution for Apriori algorithm to find frequent itemsets and association rules from a given transaction dataset.
Association Rule (Apriori) Solution From Given Problem
โจทย์
ให้ตารางธุรกรรม:
- T1: Bread, Milk
- T2: Bread, Diaper, Beer, Eggs
- T3: Milk, Diaper, Beer, Coke
- T4: Bread, Milk, Diaper, Beer
- T5: Bread, Milk, Diaper, Coke
- T6: Bread, Milk, Diaper
กำหนด:
- minimum support count = 3
- ใช้ Apriori เพื่อหา F3
- เลือกกฎจาก confidence สูงสุด
1) หา Frequent 1-itemsets (L1)
คำนวณ support count ของแต่ละ item:
- Bread = 5 (T1,T2,T4,T5,T6)
- Milk = 5 (T1,T3,T4,T5,T6)
- Diaper = 5 (T2,T3,T4,T5,T6)
- Beer = 3 (T2,T3,T4)
- Eggs = 1
- Coke = 2
ผ่านเกณฑ์ (>=3):
- L1 = {Bread, Milk, Diaper, Beer}
2) หา Frequent 2-itemsets (L2)
สร้างคู่จาก L1 แล้วนับ support:
- {Bread, Milk} = 4 (T1,T4,T5,T6)
- {Bread, Diaper} = 4 (T2,T4,T5,T6)
- {Bread, Beer} = 2 (T2,T4)
- {Milk, Diaper} = 4 (T3,T4,T5,T6)
- {Milk, Beer} = 2 (T3,T4)
- {Diaper, Beer} = 3 (T2,T3,T4)
ผ่านเกณฑ์ (>=3):
- L2 = {{Bread,Milk}, {Bread,Diaper}, {Milk,Diaper}, {Diaper,Beer}}
3) สร้าง Candidate 3-itemsets และหา F3
พิจารณา candidate จาก L2 ด้วย Apriori:
- Candidate ที่เป็นไปได้หลักคือ {Bread, Milk, Diaper}
- ตรวจ subset ขนาด 2 ทั้งหมด:
- {Bread,Milk} frequent
- {Bread,Diaper} frequent
- {Milk,Diaper} frequent => ไม่ถูก prune
นับ support ของ {Bread,Milk,Diaper}:
- พบใน T4,T5,T6 -> support count = 3
ดังนั้น
- F3 = {{Bread, Milk, Diaper}}
4) สร้างกฎจาก F3 และหา Confidence
ให้ X={Bread,Milk,Diaper} สร้างกฎที่เป็นไปได้ (จาก subset ที่ไม่ว่างและไม่เท่ากับทั้งเซต):
- {Bread,Milk} -> {Diaper}
- confidence = support(Bread,Milk,Diaper) / support(Bread,Milk)
- = 3/4 = 0.75
- {Bread,Diaper} -> {Milk}
- = 3/4 = 0.75
- {Milk,Diaper} -> {Bread}
- = 3/4 = 0.75
- {Bread} -> {Milk,Diaper}
- = 3/5 = 0.60
- {Milk} -> {Bread,Diaper}
- = 3/5 = 0.60
- {Diaper} -> {Bread,Milk}
- = 3/5 = 0.60
คำตอบสุดท้าย
-
Frequent 3-itemset (F3):
- {Bread, Milk, Diaper} (support count = 3)
-
กฎที่มี confidence สูงสุดจาก F3:
- {Bread,Milk} -> {Diaper} (0.75)
- {Bread,Diaper} -> {Milk} (0.75)
- {Milk,Diaper} -> {Bread} (0.75)
(สูงสุดเท่ากัน 3 กฎ)
สรุปเชิงโปรโมชัน
ถ้าต้องเลือกโปรโมชันจากกฎความเชื่อมั่นสูงสุดของ F3:
- ลูกค้าที่ซื้อคู่สินค้า 2 ชิ้นในกลุ่ม {Bread, Milk, Diaper}
- มีโอกาส 75% จะซื้อชิ้นที่เหลือ
- ใช้ทำโปรโมชันแบบ bundle หรือ cross-sell ได้ทันที