การ Pruning ด้วย lift
คราวนี้คุณกลับไปรายงานผลให้ผู้จัดการร้านของขวัญอีกครั้ง โดยบอกว่าไม่พบกฎใดเลยเมื่อใช้ค่า support สูง และพบเพียงสองกฎเมื่อลดค่า support ลง ผู้จัดการชื่นชมผลงาน แต่ขอให้ลองใช้เมตริกอื่นเพื่อลดจำนวนกฎจากสองเหลือหนึ่ง
คุณนึกขึ้นได้ว่า lift มีการตีความที่เข้าใจง่าย: ค่ามากกว่า 1 หมายความว่าสินค้าเหล่านั้นมักถูกซื้อร่วมกันมากกว่าที่คาดไว้หากเลือกซื้ออย่างอิสระต่อกัน จึงตัดสินใจใช้ lift เนื่องจากสื่อความหมายได้ชัดเจน ทั้งนี้ pandas พร้อมใช้งานในชื่อ pd และข้อมูลธุรกรรมที่เข้ารหัสแบบ one-hot พร้อมใช้งานในชื่อ onehot นอกจากนี้ได้นำเข้า apriori จาก mlxtend แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Market Basket Analysis ด้วย Python
คำแนะนำการฝึกหัด
- นำเข้าฟังก์ชัน
association_rulesจากmlxtend - คำนวณ frequent itemsets โดยใช้ค่า support เท่ากับ 0.001 และความยาวสูงสุดของ itemset เท่ากับ 2
- เติมโค้ดให้ครบเพื่อคัดเลือกเฉพาะกฎที่มีค่า lift อย่างน้อย 1.0
- แสดง DataFrame ของกฎที่ได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the association rules function
from mlxtend.____ import ____
# Compute frequent itemsets using the Apriori algorithm
frequent_itemsets = apriori(onehot, min_support = ____,
max_len = ____, use_colnames = True)
# Compute all association rules for frequent_itemsets
rules = association_rules(frequent_itemsets,
metric = "____",
min_threshold = ____)
# Print association rules
print(____)