ASSOCIATION RULES ผูช้ ่วยศาสตราจารย์ ดร.จิรัฎฐา ภูบุญอบ (jiratta.p@msu.ac.th, 08-9275-9797) 1 1. Affinity Analysis and Market Basket Analysis Milk, eggs, sugar, bread Milk, eggs, cereal, bread Customer1 Customer2 Eggs, sugar, bread Customer3 2 1. Affinity Analysis and Market Basket Analysis (cont’d) ในธุรกิจการขายลูกค้าคือผูซ้ ้ือสิ นค้าหรื อบริ การจากบริ ษทั ซึ่งอาจจะ มีพฤติกรรมการซื้อที่แตกต่างกันไป ผูบ้ ริ หารต้องการวิเคราะห์ขอ้ มูลการซื้อสิ นค้าที่เกิดพร้อมกัน หรื อไม่เกิดพร้อมกัน ต้องการทราบ พฤติกรรมของการซื้อขายที่ไม่เฉพาะเจาะจงลูกค้าคนหนึ่งคนใด ลักษณะของสิ นค้าหรื อผลิตภัณฑ์ที่ถูกซื้อคู่กนั ลักษณะการซื้อขายที่แตกต่างกับสิ นค้าอื่น เพื่อนามาวางแผนลักษณะการดาเนินธุรกิจจากความรู ้ที่ได้ 3 1. Affinity Analysis and Market Basket Analysis (cont’d) ผูบ้ ริ หารใช้ขอ้ มูลเหล่านี้เพื่อ บ่งบอกพฤติกรรมของลูกค้าทัว่ ไป เข้าใจลักษณะพฤติกรรมที่นามาใช้ประโยชน์ได้ เข้าใจผลิตภัณฑ์ ขายเร็ ว กับขายช้า สิ นค้าที่ซ้ื อไปด้วยกัน สิ นค้าที่อาจได้ประโยชน์จากการสนับสนุนการขาย ประยุกต์เพื่อเพิม่ ยอดขาย การวางผังภายในร้าน การนาสิ นค้ามาลด แลก แจก แถม 4 1. Affinity Analysis and Market Basket Analysis (cont’d) เทคนิคที่ใช้ในการวิเคราะห์ดงั กล่าว คือ กฎเชื่อมโยงที่เน้นการใช้ ข้อมูลจาก point-of-sale (p-o-s) ข้อมูลที่นามาใช้วิเคราะห์อยูใ่ นรู ปของ transaction รหัสการซื้อหนึ่งใบเสร็ จ ข้อมูลลักษณะลูกค้า (ถ้ามี) ปริ มาณสิ นค้าที่ซ้ือ ข้อมูลประเภทของสิ นค้าที่ขาย จานวนเงิน 5 1. Affinity Analysis and Market Basket Analysis (cont’d) ลักษณะคาถามที่สาคัญเกี่ยวกับการขาย ผูซ้ ้ือปฏิเสธหรื อยอมรับการพยายามขายสิ นค้าต่างลักษณะหรื อไม่? สิ นค้าใดที่ปรากฎร่ วมกันบ่อยในหนึ่งใบเสร็ จ? อะไรคือสิ นค้าที่พบว่าถูกขายบ่อยให้กบั ลูกค้าที่มารับบริ การซ้ าๆ ? ลักษณะการขายของสิ นค้ามีการเปลี่ยนไปตามเวลาหรื อไม่ ? ลักษณะการขายของสิ นค้าเปลี่ยนไปตามที่อยูข่ องลูกค้าหรื อไม่ อย่างไร? 6 1. Affinity Analysis and Market Basket Analysis (cont’d) Market Basket data analysis, cross-marketing, catalog design, sale campaign analysis Quantify relationships in the form of Rules IF antecedent THEN consequent Rules measured using support and confidence Discover which items in supermarket are purchased together Thursday night 200 of 1,000 customers bought diapers, and of those buying diapers, 50 purchased beer Association Rule: “IF buy diapers, THEN buy beer” Support = 50/1,000 = 5%, and confidence = 50/200 = 25% 7 2. Support and Confidence 1,000 Customer buys diapers Customer buys both Customer buys beer Support (ค่าสนับสนุน) ของกฎ diapers beer คือความน่าจะเป็ นที่จะ พบการซื้อที่มีท้ งั diapers และ beer Confidence (ค่าความเชื่อมัน่ ) ของกฎ diapers beer คือความน่าจะ เป็ นแบบมีเงื่อนไขที่พบว่ามีการซื้อ diapers แล้วจะซื้อ beer 8 2. Support and Confidence (cont’d) The support for a particular association rule A B is the proportion of transactions that contain both A and B. That is, The confidence of the association rule A B is 9 2. Support and Confidence (cont’d) กฎที่เป็ นไปได้ของสิ นค้าสองชนิ ดคือ AB, BA, CA, DA, EA, FA AC, BC, CB, DB, EB, FB AD, BD,CD, DC, EC, FC AE, BE, CE, DE, ED, FD AF, BF, CF, DF, EF, FE จานวนกฎที่เป็ นไปได้ท้ งั หมด = k 2k 1 (k= รายการสิ นค้า) กฎ P P เป็ นกฎที่ไม่น่าสนใจ เพราะเป็ นกฎที่จริ งเสมอสาหรับทุกค่า P ใช้ค่าต่าสุ ดของค่าสนับสนุนกับค่าความเชื่อมัน่ กาหนดความน่าสนใจ คือ กฏที่มีค่าสนับสนุน min support และค่าความเชื่อมัน่ min confidence เป็ นกฎที่น่าสนใจ และเซตของกลุ่มสิ นค้าที่มีค่าสนับสนุน min support เรี ยกว่า frequent itemset 10 3. The Apriori Algorithm (cont’d) การหา frequent itemset ซึ่ ง frequent itemset คือกลุ่มของ item ที่มีค่าสนับสนุนมากกว่าหรื อเท่ากับค่า minimum support สับเซตของ frequent itemset เป็ น frequent itemset คือ ถ้า {A,B} เป็ น frequent itemset แล้ว {A} และ {B} ต้องเป็ น frequent itemset ฉะนั้นการหา frequent itemset ที่มี k ตัว ทาได้จากการพิจารณา k-1 ตัว กล่าวคือเราหา frequent itemset จาก 1 ไปถึง k หลังจากที่พิจารณาทุก frequent itemset ที่มีจานวนมากที่สุดแล้ว เราสร้างกฎเชื่อมโยงจาก frequent itemset ทั้งหมดที่ได้ กฏที่ได้จะมี consequent เพียง 1 data field เท่านั้น นัน่ คือ IF _____, ______, _____ THEN ______ 11 2. Support and Confidence (cont’d) TABLE 10.1 Transactions Made at the Roadside Vegetable Stand Transaction Items Purchased 1 Broccoli, green peppers, corn 2 Asparagus, squash, corn 3 Corn, tomatoes, beans, squash 4 Green peppers, corn, tomatoes, beans 5 Beans, asparagus, broccoli 6 Squash, asparagus, beans, tomatoes 7 Tomatoes, corn 8 Broccoli, tomatoes, green peppers 9 Squash, asparagus, beans 10 Beans, corn 11 Green peppers, broccoli, beans, squash 12 Asparagus, beans, squash 13 Squash, corn, asparagus, beans 14 Corn, green peppers, tomatoes, beans, broccoli 12 2. Support and Confidence (cont’d) 13 3. The Apriori Algorithm Pseudo-code: Ck: Candidate itemset of size k Lk : frequent itemset of size k L1 = {frequent items}; for (k = 1; Lk ; k++) do begin Ck+1 = candidates generated from Lk; for each transaction t in database do increment the count of all candidates in Ck+1 that are contained in t Lk+1 = candidates in Ck+1 with min_support end return k Lk; 14 3. The Apriori Algorithm (cont’d) Tid Items 10 A, C, D 20 B, C, E 30 A, B, C, E 40 B, E 1st scan Supmin = 2 L2 C2 Itemset {A, C} {B, C} {B, E} {C, E} C3 Itemset {A} {B} {C} {D} {E} C1 Itemset {B, C, E} sup 2 2 3 2 sup 2 3 3 1 3 Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} 3rd scan sup 1 2 1 2 3 2 L3 L1 Itemset {A} {B} {C} {E} C2 2nd scan Itemset {B, C, E} sup 2 sup 2 3 3 3 Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} 15 3. The Apriori Algorithm (cont’d) How to generate candidates? Step 1: self-joining Lk Step 2: pruning How to count supports of candidates? Example of Candidate-generation L3={abc, abd, acd, ace, bcd} Self-joining: L3*L3 abcd from abc and abd acde from acd and ace Pruning: acde is removed because ade is not in L3 C4={abcd} 16 4. ปัญหาของขั้นตอนวิธี Apriori คียห์ ลักของขั้นตอนวิธี Apriori ใช้ frequent (k-1) itemsets สร้าง candidate frequent k- itemsets อ่าน database และทดสอบรู ปแบบเพื่อนับและลด candidate itemset ปัญหาคอขวดของขั้นตอนวิธี Apriori: การสร้าง candidate ปริ มาณ candidate ที่มากเกินไป 104 frequent 1-itemset สร้างได้ 107 candidate 2-itemsets การค้น frequent pattern ขนาดใหญ่ เช่น {a1, a2, …,a100} เราต้อง สร้าง 2100 1030 candidates มีการอ่าน database หลายรอบ ต้องการ (n+1) scans เมื่อ n คือความยาวของ pattern 17 5. FP-Growth Algorithm Mining frequent patterns without candidate generation 3 เทคนิคหลักเพื่อเพิ่มประสิ ทธิภาพให้กบั การหา Frequent itemsets คือ 1. บีบอัดข้อมูลจากฐานข้อมูลสู่ หน่วยความจาในรู ปแบบ FP-tree (Frequent Pattern tree) เพื่อหลีกเลี่ยงการอ่านฐานข้อมูลซ้ าหลายรอบ 2. ด้วยโครงสร้าง FP-tree ทาให้ไม่ตอ้ งสร้าง candidate sets ขนาดใหญ่ 3. ใช้ลกั ษณะการทางานแบบแบ่งส่ วน แบ่งงานให้เล็กลงเพื่อการ เปรี ยบเทียบที่นอ้ ยลง และช่วยลดเวลาในการค้นหาเพราะทาในพื้นที่ที่ เล็กลง 18 5. FP-Growth Algorithm (cont’d) 1. The set of frequent 1-itemsets together with support counts is found. (L1) 2. Sort the elements in the set of frequent items in the order of descending support count (f-list) 3. Construct FP-Tree Create the root of the tree, labeled with { } Scan DB D. The items in each T are processed in L order 4. Mine the FP-tree Mining the FP-tree by creating conditional (sub) pattern bases 5. Generate rules 19 5. FP-Growth Algorithm (cont’d) TID 100 200 300 400 500 Items bought (ordered) frequent items {f, a, c, d, g, i, m, p} {f, c, a, m, p} F-list=f-c-a-b-m-p {a, b, c, f, l, m, o} {f, c, a, b, m} min_support = 3 {b, f, h, j, o, w} {f, b} {b, c, k, s, p} {c, b, p} {a, f, c, e, l, p, m, n} {f, c, a, m, p} {} Header Table 1. Scan DB once, find frequent 1-itemset (single f:4 c:1 item pattern) Item frequency head f 4 2. Sort frequent items in c 4 c:3 b:1 b:1 frequency descending a 3 order, f-list b 3 a:3 p:1 3. Scan DB again, construct m 3 FP-tree p 3 m:2 b:1 p:2 m:1 20 6. Generating Association Rules IF antecedent THEN consequent (support, confidence) ต้องดูวา่ antecedent จะให้มีกี่เงื่อนไข ในแง่ของ market คือจะให้มีสินค้า กี่รายการ ซึ่ง user จะต้องเป็ นคนบอก จากตัวอย่าง (Apriori) กฎที่ยาว ที่สุดคือ L3 ซึ่งมีได้ 2 antecedent เนื่องจากมีสินค้า 3 รายการจะได้กฎว่า B,C E B,E C C,E B Support = n{B, C , E} 2 n 4 21 6. Generating Association Rules (cont’d) ConfidenceRule1 n{B, C , E} 2 n{B, C} 2 n{B, C , E} 2 ConfidenceRule2 n{B, E} 3 n{B, C , E} 2 ConfidenceRule3 n{C , E} 2 B,C E (50%, 100%) B,E C (50%, 67%) C,E B (50%, 100%) 22