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 ที่ไม่ว่างและไม่เท่ากับทั้งเซต):

  1. {Bread,Milk} -> {Diaper}
  • confidence = support(Bread,Milk,Diaper) / support(Bread,Milk)
  • = 3/4 = 0.75
  1. {Bread,Diaper} -> {Milk}
  • = 3/4 = 0.75
  1. {Milk,Diaper} -> {Bread}
  • = 3/4 = 0.75
  1. {Bread} -> {Milk,Diaper}
  • = 3/5 = 0.60
  1. {Milk} -> {Bread,Diaper}
  • = 3/5 = 0.60
  1. {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 ได้ทันที