10DW_DM-AssociationRules

Download Report

Transcript 10DW_DM-AssociationRules

ASSOCIATION
RULES
ผูช้ ่วยศาสตราจารย์ ดร.จิรัฎฐา ภูบุญอบ
([email protected], 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)
กฎที่เป็ นไปได้ของสิ นค้าสองชนิ ดคือ
AB, BA, CA, DA, EA, FA
AC, BC, CB, DB, EB, FB
AD, BD,CD, DC, EC, FC
AE, BE, CE, DE, ED, FD
AF, BF, CF, DF, EF, FE
จานวนกฎที่เป็ นไปได้ท้ งั หมด = 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