Download - Khai Phá dữ liệu - Phát hiện luật kết hợp
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
1/47
Khai Phá Dữ Liệu
Nguyễn Nhật Quang
Tr ườ ng Đại học Bách Khoa Hà Nội
Viện Công nghệ Thông tin và Truyền thông
Năm học 2011-2012
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
2/47
Nội dung môn học:
Giới thiệu về Khai phá dữ liệu
Giới thiệu v công cụ WEKA
Tiền xử lý dữ liệu
Phát hiện các luật kết hợp
Các kỹ thuật phân nhóm
2Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
3/47
Phát hiện các lu
ật k
ết h
ợ p – Gi
ớ i thi
ệu
Bài toán phát hiện luật kết hợp (Association rule mining) Với m t t các iao d ch transactions cho tr ước cần tìm các
luật dự đoán khả năng xuất hiện trong một giao dịch của các mục(items) này dựa trên việc xuất hiện của các mục khác
TID Items
1 Bread, Milk
Các ví dụ của luật kết hợp:
Dia er → Beer 2 Bread, Diaper, Beer, Eggs
3 Milk, Diaper, Beer, Coke{Milk, Bread} → {Eggs, Coke}
{Beer, Bread} → {Milk}
, , ,
5 Bread, Milk, Diaper, Coke
3Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
4/47
Cácđ ị
nh ngh ĩ a c
ơ b
ản (1)
Tập mục (Itemset) Một tập hợp gồm một hoặc nhiều mục
Ví dụ: {Milk, Bread, Diaper}
Tập mục mức k (k -itemset) Một tập mục gồm k mục
TID Items
1 Bread, Milk
T ng s h tr ợ (Support count) Số lần xuất hiện của một tập mục
Ví dụ: σ({Milk, Bread, Diaper}) = 2
, , ,
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer
Độ hỗ tr ợ (Support) s Tỷ lệ các giao dịch chứa một tập mục
Ví dụ: s({Milk, Bread, Diaper}) = 2/5
, , ,
Tập mục thường xuyên(Frequent/large itemset)
Một tập mục mà độ hỗ tr ợ lớn hơnhoặc bằng một giá tr ị ngưỡng minsup
4Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
5/47
Cácđ ị
nh ngh ĩ a c
ơ b
ản (2)
Luật kết hợp (Associationrule)
TID Items
1 Bread, Milk
Một bi u thức kéo theo códạng: X → Y, trong đó X và Ylà các tập mục
2 Bread, Diaper, Beer, Eggs
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer ,
Các độ đo đánh giá luật Đ hỗ tr Su ort s
5 Bread, Milk, Diaper, Coke
Tỷ lệ các giao dịch chứa cả X và Y đối với tất cả cácgiao dịch
,
4.02)Beer Diaper,,Milk (===
σ
s
Độ tin cậy (Confidence) c Tỷ lệ các giao dịch chứa cả
X và Y đối với các giao dịch 67.03
2
)Diaper ,Milk (
)Beer Diaper,Milk,(===
σ
σ
c
5Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
6/47
Phát hiện các lu
ật k
ết h
ợ p
Với một tập các giao dịch T , mục đích của bài toán phát
độ hỗ tr ợ ≥ giá tr ị ngưỡng minsup, và độ tin cậy ≥ giá tr ị ngưỡng minconf
Cách tiếp cận vét cạn (Brute-force)
Liệt kê tất cả các luật kết hợp có thể n o n r ợ v n c y c o m u
Loại bỏ đi các luật có độ hỗ tr ợ nhỏ hơn minsup hoặc có độ tincậy nhỏ hơn minconf
⇒ Phương pháp vét cạn này có chi phí tính toán quálớn, không áp dụng được trong thực tế!
6Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
7/47
Phát hiện lu
ật k
ết h
ợ p
Các luật kết hợp:
{Milk, Diaper} → {Beer} (s=0.4, c=0.67)
TID Items
1 Bread, Milk
{Milk, Beer} → {Diaper} (s=0.4, c=1.0)
{Diaper, Beer} → {Milk} (s=0.4, c=0.67){Beer} → {Milk, Diaper} (s=0.4, c=0.67)
= =
rea , aper, eer, ggs
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer
Tất cả các luật trên đều là sự phân tách (thành 2 tập con) của
, . , .
{Milk} → {Diaper, Beer} (s=0.4, c=0.5)5 Bread, Milk, Diaper, Coke
cùng tập mục : {Milk, Diaper, Beer}
Các luật sinh ra từ cùng một tập mục sẽ có cùng độ hỗ tr ợ,
Do đó, trong quá trình phát hiện luật kết hợp, chúng ta có thể tách riêng 2 yêu cầu về độ hỗ tr ợ và độ tin cậy
7Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
8/47
Phát hiện lu
ật k
ết h
ợ p
Quá trình phát hiện luật kết hợp sẽ gồm 2 bước (2 giai
Sinh ra các tập mục thường xuyên (frequent/large itemsets)
Sinh ra tất cả các tập mục có độ hỗ tr ợ ≥ minsup
Sinh ra các luật kết hợp
Từ mỗi tập mục thường xuyên (thu được ở bước trên), sinh ra
Mỗi luật là một phân tách nhị phân (phân tách thành 2 phần)của một tập mục thường xuyên
Bước sinh ra các tập mục thường xuyên (bước thứ 1)vẫn có chi phí tính toán quá cao!
8Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
9/47
Lattice biểu di
ễn các t
ập m
ục c
ần xét
Với d
null
mục, thìphải xét
d
A B C D E
các tập
mục có
AB AC AD AE BC BD BE CD CE DE
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
ABCD ABCE ABDE ACDE BCDE
9Khai Phá Dữ Li ệu
ABCDE
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
10/47
Sinh ra các tập m
ục th
ườ ng xuyên
TID Items
rea ,
2 Bread, Diaper, Beer, Eggs
3 Milk, Diaper, Beer, Coke
4 Bread Milk Dia er Beer
5 Bread, Milk, Diaper, Coke
-
Mỗi tập mục trong lattice đều được xét
Tính độ hỗ tr ợ của mỗi tập mục, bằng cách duyệt qua tất cả các
g ao c Với mỗi giao dịch, so sánh nó với mỗi tập mục được xét
Độ phức tạp ~ O(N.M.w)
Với M = 2d, thì độ phức tạp này là quá lớn!
10Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
11/47
Các chiến lượ c sinh tập mục thườ ng xuyên
Giảm bớt số lượng các tập mục cần xét (M) Tìm kiếm xét đầ đủ: M=2d
Sử dụng các kỹ thuật cắt tỉ a (pruning) để giảm giá tr ị M Giảm bớt số lư n các iao d ch cần xét N
Giảm giá tr ị N, khi kích thước (số lượng các mục) của
tập mục tăng lên Giảm bớt s lượng các so sánh
(matchings/comparisons) giữa các tập mục và cácgiao dịch (N.M) Sử dụng các cấu trúc dữ liệu phù hợp (hiệu quả) để
lưu các tập mục cần xét hoặc các giao dịch
11Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
12/47
Giảm b
ớ t s
ốlượ
ng các tập m
ục c
ần xét
Nguyên tắc của giải thuật Apriori – Loại bỏ (prunning)
Nếu một tập mục là thường xuyên, thì tất cả các tập con(subsets) của nó đều là các tập mục thường xuyên
,
các tập cha (supersets) của nó đều là các tập mục không thường
xuyên
Nguyên tắc của giải thuật Apriori dựa trên đặc tínhkhông đơn điệu (anti-monotone) của độ hỗ tr ợ
Độ hỗ tr ợ của một tập mục nhỏ hơn độ hỗ tr ợ của các tập con
)()()(:, Y s X sY X Y X ≥⇒⊆∀
của nó
12Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
13/47
Apriori: Loại b
ỏd
ựa trên
đ ộh
ỗtr
ợ
Tập mục
thườngxuyên
Các tập cha của tập
13Khai Phá Dữ Li ệu
mục oạ
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
14/47
Apriori: Loại b
ỏd
ựa trên
đ ộh
ỗtr
ợ
Item Count
Bread 4
Các tập mục mứ c 1 (1-itemsets)
o e
Milk 4Beer 3Diaper 4
Itemset Count{Bread,Milk} 3{Bread,Beer} 2
Các tập mục mứ c 2 (2-itemsets)
{Bread,Diaper} 3{Milk,Beer} 2{Milk,Diaper} 3{Beer,Diaper} 3
mục có chứ a mục Coke
hoặc Eggs )
Các tập mục mứ c 3
(3-itemsets)
minsup = 3
•Nế u xét tấ t cả các tập mục có thể :
{ B r e a d , M i l k , D i a p e r } 3C1 + C2 + C3 = 41• Với cơ chế loại bỏ dự a trên độ hỗ trợ:
6 + 6 + 1 = 13
14Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
15/47
Giải thu
ật Apriori
Sinh ra tất cả các tập mục thường xuyên mức 1 (frequent-
Gán k = 1 Lặp lại, cho đến khi không có thêm bất kỳ tập mục
thường xuyên nào mới Từ các tập mục thường xuyên mức k (chứa k mục), sinh ra các
+
Loại bỏ các tập mục mức (k+1) chứa các tập con là các tập mụckhông thường xuyên mức k
,
tất cả các giao dịch
Loại bỏ các tập mục không thường xuyên mức (k+1)
u ược c c p mục ư ng xuy n m c
15Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
16/47
Giảm b
ớ t s
ốlượ
ng các so sánh Các so sánh (matchings/comparisons) giữa các tập mục cần xét và
các giao dịch C n phải duyệt qua t t cả các giao dịch, đ tính độ h tr ợ của m i tập
mục cần xét
Để giảm bớt số lượng các so sánh, cần sử d ụng c ấu trúc băm (hashstructure) để l ư u các t ậ p mục c ần xét Thay vì phải so sánh mỗi giao dịch với mỗi tập mục cần xét, thì chỉ cần
so sánh giao dịch đó với các tập mục chứa trong các ô (hashed buckets)
TID Items
1 Bread Milk
2 Bread, Diaper, Beer, Eggs
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer
5 Bread, Milk, Diaper, Coke
16Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
17/47
Sinh ra cây băm (hash tree)
Giả sử chúng ta có 15 tập mục mức 3 cần xét:{1 4 5}, {1 2 4}, {4 5 7}, {1 2 5}, {4 5 8}, {1 5 9}, {1 3 6}, {2 3 4}, {5 6 7}, {3
, , , , ,
Sinh ra cây băm (Hash tree): Hàm băm (Hash function) – Ví dụ: h(p) = p mod 3 Kích thước tối đa của nút lá (Max leaf size): Số lượng tối đã các tập
mục được lưu ở một nút lá (Nếu số lượng các tập mục vượt quá giá tr ị
này, nút đó sẽ tiếp tục bị phân chia) – Ví dụ: Max leaf size = 3
2 3 4
5 6 73,6,9
(Hàm băm)
1 3 6
1 2 4
3 4 5 3 5 7
6 8 9
3 6 8
, ,
2,5,8
17Khai Phá Dữ Li ệu
4 5 8
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
18/47
Phát hiện luật k ết hợ p bằng cây băm (1)
(Hàm băm)Cây băm lưu các tậ p mục cần xét
1,4,7 3,6,9
2 3 4
5 6 7
, ,
1 4 5 1 3 6
3 4 5 3 6 73 5 6Băm
(hash)
1 5 9
6 8 91 2 4
4 5 7
1 2 5
4 5 8
1, 4,
hoặc 7
18Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
19/47
Phát hiện luật k ết hợ p bằng cây băm (2)
(Hàm băm)Cây băm lưu các tậ p mục cần xét
1,4,7 3,6,9
2 3 4
5 6 7
, ,
1 4 5 1 3 6
3 4 5 3 6 73 5 6Băm
1 5 9
6 8 91 2 4
4 5 7
1 2 5
4 5 8
asđối với2, 5,
19Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
20/47
Phát hiện luật k ết hợ p bằng cây băm (3)
(Hàm băm)Cây băm lưu các tậ p mục cần xét
1,4,7 3,6,9
2 3 4
5 6 7
, ,
1 4 5 1 3 6
3 4 5 3 6 73 5 6Băm
1 5 9
6 8 91 2 4
4 5 7
1 2 5
4 5 8
đối với3, 6,
ho c 9
20Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
21/47
Các tập mục mức k trong một giao dịch
Đối với giaod ch t hã xác
định các tậpmục mức 3?
Giả sử tronmỗi tập mục,các mục
được liệt kê
từ điển
21Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
22/47
Xác đ ịnh các tập mục bằng cây băm (1)
1 2 3 5 6(Hàm băm)Giao dịch t
1 + 2 3 5 6 3 5 62 + 1,4,7
2,5,8
3,6,9
2 3 4
1 4 5 1 3 6
3 4 5 3 6 73 5 6
5 6 7
1 5 9
3 6 83 5 76 8 91 2 4 1 2 5
22Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
23/47
Xác đ ịnh các tập mục bằng cây băm (2)(Hàm băm)
1 2 3 5 6 Giao dịch t
1,4,72,5,8
3,6,93 5 61 2 +
3 5 62 +
+
1 + 2 3 5 6
2 3 4
5 61 3 +
61 5 +
1 4 5 1 3 6
3 4 5 3 6 73 5 6
1 5 93 6 83 5 7
6 8 91 2 4
4 5 7
1 2 5
4 5 8 Chỉ cần so sánh giao dịch t vớ i 11
23Khai Phá Dữ Li ệu
(trong tổng số 15) tậ p mục cần xét!
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
24/47
Apriori: Các y ếu tố ảnh hưở ng đ ộ phức tạp
Lựa chọn giá tr ị ngưỡng minsup Giá tr ị minsup quá thấp sẽ sinh ra nhiều tập mục thường xuyên Điều này có th làm tăng số lượng các tập mục phải xét và độ
dài (kích thước) tối đa của các tập mục thường xuyên Số lượng các mục trong cơ sở dữ liệu (các giao dịch)
Cần thêm bộ nhớ để lưu giá tr ị độ hỗ tr ợ đối với mỗi mục Nếu số lượng các mục (tập mục mức 1) thường xuyên tăng lên,
thì chi phí tính toán và chi phí I/O (duyệt các giao dịch) cũng tăng Kích thước của cơ sở dữ liệu (các giao dịch)
Giải thuật Apriori duyệt cơ sở dữ liệu nhiều lần. Do đó, chi phítính toán của Apriori tăng lên khi số lượng các giao dịch tăng lên
Kích thước trung bình của các giao dịch Khi kích thước (số lượng các mục) trung bình của các giao dịch
tăng lên, thì độ dài tối đa của các tập mục thường xuyên cũng,
24Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
25/47
Biểu diễn các tập mục thườ ng xuyên
Trong thực tế, số lượng các tập mục thường xuyên được
Cần một cách biểu diễn ngắn gọn (compact
Bằng một tập (nhỏ) các tập mục thường xuyên đại diện – mà cóthể dùng để suy ra (sinh ra) tất cả các tập mục thường xuyên
Có 2 cách biểu diễn như vậy
Các tập mục thường xuyên đóng (Closed frequent itemsets)
25Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
26/47
Các tập mục thườ ng xuyên lớ n nhất Một tập mục thường xuyên là lớn nhất (Maximal frequent itemset), nếu
mọi tập cha (superset) của nó đều là tập mục không thường xuyên
Các tập mục
thường xuyênlớn nhất
Các tập mục
26Khai Phá Dữ Li ệu
Ranh giớing
thường xuyên
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
27/47
Các tập mục thườ ng xuyên đ óng
Một tập mục thường xuyên là đóng (Closed frequent itemset),nếu khôn có t cha nào của nó có cùn đ hỗ tr với nó
Itemset Support
TID Items
1 {A,B}
2 {B,C,D}
{B} 5
{C} 3
D 4
Itemset Support
{A,B,C} 2
{A,B,D} 3, , ,
4 {A,B,D}
5 {A,B,C,D}
{A,B} 4
{A,C} 2
{A,D} 3
{A,C,D} 2
{B,C,D} 3
{A,B,C,D} 2
{B,C} 3{B,D} 4
{C,D} 3
27Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
28/47
Tập mục thườ ng xuyên: lớ n nhất vs. đ óng (1)
TID Items
null
124 123 1234 245 345
TIDs
1 ABC
2 ABCD
3 BCE 12 124 24 4 123 2 3
4 ACDE
5 DE
AB AC AD AE BC BD BE CD CE DE
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
12 2 24 4 4 2 3 4
ABCD ABCE ABDE ACDE BCDE2 4
Không được hỗ tr ợ bởi
28Khai Phá Dữ Li ệu
ABCDEbất kỳ giao dịch nào
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
29/47
Tập mục thườ ng xuyên: lớ n nhất vs. đ óng (2)
Minsup = 2 null
124 123 1234 245 345
Đóng, nhưng khôngphải là lớn nhất
A B C D E
12 124 24 4 123 2
Đóng và
lớn nhất
AB AC AD AE BC BD BE CD CE DE
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE3 4
ABCD ABCE ABDE ACDE BCDE2 4 # Đóng = 9# Lớn nhất = 4
29Khai Phá Dữ Li ệu
ABCDE
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
30/47
Tập mục thườ ng xuyên: lớ n nhất vs. đ óng (3)
Bất kỳ tập mụcthường xuyên lớnnhất nào cũng là
tập mục thườngxuyên đóng
Cách biểu diễn sử dụng tập mụcthường xuyên lớnnhất không giữ thông tin về độ hỗ tr ợ của các tập
con (của m i tậpmục thườngxuyên lớn nhất)
30Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
31/47
Giải thuật FP-Growth
Một phương pháp khác cho việc xác định các tập mục
Nhớ lại: Apriori sử dụng cơ chế sinh-kiểm tra (sinh ra các tậpmục cần xét, và kiểm tra xem mỗi tập mục có phải là thường
FP-Growth biểu diễn dữ liệu của các giao dịch bằng một-
FP-Growth sử dụng cấu trúc FP-tree để xác định tr ựctiế các t m c thườn xu ên
31Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
32/47
Biểu diễn bằng FP-tree
Với mỗi giao dịch, FP-tree xây dựng một đường đi (path)
Hai giao dịch có chứa cùng một số các mục, thì đường đi
Càng nhiều các đường đi có các phần chung, thì việc biểu diễnbằng FP-tree sẽ càng gọn (compressed/compacted)
Nếu kích thước của FP-tree đủ nhỏ để có thể lưu tr ữ trong bộ nhớ làm việc, thì giải thuật FP-Growth có thể
-
lưu trong bộ nhớ Không cần phải lặp lại việc duyệt dữ liệu lưu trên ổ cứng
32Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
33/47
Xây dựng FP-tree (1)
Ban đầu, FP-tree chỉ chứa duy nhất nút gốc (được biểudiễn bởi k hiệu null
Cơ sở dữ liệu các giao dịch được duyệt lần thứ 1, để xácđịnh tính độ hỗ tr ợ của mỗi mục
Các mục không thường xuyên (infrequent items) bị loại bỏ
c mục ư ng xuy n requen ems ược s p x ptheo thứ tự giảm dần về độ hỗ tr ợ Trong ví dụ (ở các slides tiếp theo), thứ tự giảm dần về độ hỗ tr ợ:
A, B, C, D, E
Cơ sở dữ liệu các giao dịch được duyệt lần thứ 2, để xâyựng - ree
33Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
34/47
Xây dựng FP-tree (2)
null(Sau khi xétgiao dịch thứ 1)
(Sau khi xét
giao dịch thứ 2)
null
TID Items
1 A,B
A:1 A:1 B:1
2 {B,C,D}
3 {A,C,D,E}
4 {A,D,E} D:1null5 {A,B,C}
6 {A,B,C,D}
7 {A}
A:2 B:1
, ,
9 {A,B,D}
10 {B,C,E}
B:1 C:1:
D:1
(Sau khi xétgiao dịch thứ 3)
34Khai Phá Dữ Li ệu
:E:1
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
35/47
Xây dựng FP-tree (3)
null
TID Items
1 {A,B}
2 {B,C,D}
Cơ sở dữ liệu các giao
(Sau khi xét giao
dịch thứ 10)
A:8 B:2
3 {A,C,D,E}
4 {A,D,E}5 {A,B,C}
6 {A,B,C,D}
B:5 C:2C:1 D:1
7 {A}
8 {A,B,C}
9 {A,B,D}
10 B C E
D:1
D:1C:3
E:1Item Pointer
Bảng con tr ỏE:1
D:1Các con tr ỏ được sử dụng trong
uá trình sinh các t m c
E:1BC
D
35Khai Phá Dữ Li ệu
thường xuyên của FP-GrowthE
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
36/47
FP-Growth: Sinh các tập mục thườ ng xuyên
FP-Growth sinh các tập mục thường xuyên tr ực tiếp- -,
Trong ví dụ trên, FP-Growth tr ước hết tìm các tập mục thườngxuyên kết thúc bởi E… sau đó mới tìm các tập mục thường xuyên… … …
Vì mỗi giao dịch được biểu diễn bằng một đường đi- ,
thường xuyên kết thúc bởi một mục (vd: E), bằng cáchduyệt các đường đi chứa mục đó (E) ng ư ng n y ược x c n ng ng c c con r
gắn với nút đó (vd: E)
36Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
37/47
Các đ ườ ng đ i k ết thúc bở i một mục
(Các
đường(Các
đườngđi kết
thúcbởi e)
đi kết
thúcbởi d)
(Các đường đi (Các đường đi (Các đường đi
37Khai Phá Dữ Li ệu
kết thúc bởi c) kết thúc bởi b) kết thúc bởi a)
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
38/47
Xác đ ịnh các tập mục thườ ng xuyên
FP-Growth tìm tất cả các tập mục thường xuyên kết thúc – -
and-conquer) Ví dụ, cần tìm tất cả các tập mục thường xuyên kết thúc bởi e
Tr ước h t, ki m tra tập mục mức 1 ({e}) có ph i là tập mụcthường xuyên
Nếu nó là tập mục thường xuyên, xét các bài toán con: tìm tất cả c c t p mục t ư ng xuy n t t c e… ce… e…vbởi ae
Mỗi bài toán con nêu trên lại được phân tách thành các bài toáncon n ơn…
Kết hợp các lời giải của các bài toán con, chúng ta sẽ thu đượccác tập mục thường xuyên kết thúc bởi e
38Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
39/47
Vd: Các tập mục thườ ng xuyên k ết thúc bở i e
Xác định tất cả các đường đi-
Các đường đi tiền tố (prefix paths) đốivới e
Dựa vào các đường đi tiền tố đốivới e, xác định độ hỗ tr ợ của e,
gắn với nút e
=
Các đường đitiền tố đối với e
,
là tập mục thường xuyên (vì nócó độ hỗ tr ợ =3 > minsup)
39Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
40/47
Vd: Các tập mục thườ ng xuyên k ết thúc bở i e
Vì {e} là tập mục thường xuyên, nên FP-Growth phải giải
kết thúc bởi de…bởi ce…bởi be…và bởi ae ,
biểu diễn FP-tree có điều kiện (conditional FP-tree) Có cấu trúc tương tự như FP-tree
ược ng m c c p mục ư ng xuy n c mmục
40Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
41/47
Xây dựng FP-tree có đ iều kiện
Cập nhật các giá tr ị hỗ tr ợ đối với cácđường đi tiền tố Vì một số giá tr ị hỗ tr ợ đã tính đến cả các
giao dịch không chứa mục e Ví d : Đườn đi null → b:2 → c:2 → e:1 đã
tính đến cả giao dịch {b,c} không chứa mụce. Do đó, giá tr ị hỗ tr ợ phải gán bằng 1, để
thể hiện số lượng các giao dịch chứa {b,c ,e} Loại bỏ nút e khỏi các đường đi tiền tố
Sau khi cập nhật các giá tr ị hỗ tr ợ đối vớiFP-tree có điềukiện đối với e
,
nên không thường xuyên → Bị loại bỏ Vd: Nút b bây giờ có giá tr ị hỗ tr ợ =1
→ oạ
41Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
42/47
Vd: Các tập mục thườ ng xuyên k ết thúc bở i e
FP-Growth sử dụng cấu trúc biểu diễn FP-tree có điều kiện đối với e, để giải quyết cácbài toán con: tìm các tập mục thường xuyên
kết thúc bởi de…bởi ce…bởi be…và bởi ae
: m c c p mục ư ng xuy nthúc bởi de, các đường đi tiền tố đối với d
được xây dựng từ biểu diễn FP-tree có điềukiện đ i với e
Bằng cách cộng với giá tr ị hỗ tr ợ gắn với nútCác đường đi
tiền tố đối với de
,
{d ,e}
Độ hỗ tr ợ của {d ,e}=2: nó là một tập mụcư ng xuy n
42Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
43/47
Sinh ra các luật k ết hợ p (1)
Với mỗi tập mục thường xuyên L, cần tìm tất cả các tập
kiện về độ tin cậy tối thiểu Vd: Với tập mục thường xuyên {A,B,C,D}, các luật
c n xét g m có:
ABC → D, ABD → C, ACD → B, BCD → A,
, , , AB → CD, AC → BD, AD → BC, BC → AD,
BD → AC, CD → AB,
Nếu |L| = k, thì sẽ phải xét (2k – 2) các luật kết hợp cóthể bỏ ua 2 lu t: L →∅ và ∅ → L
43Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
44/47
Sinh ra các luật k ết hợ p (2)
Làm thế nào để sinh ra các luật từ các tập mục thườngxu ên m t cách có hi u uả?
Xét tổng quát, độ tin cậy không có đặc tính khôngđơn điệu (anti-monotone)
c(ABC → D) có thể lớn hơn hoặc nhỏ hơn c(AB → D)
Nhưng, độ tin cậy của các luật được sinh ra từ cùngm t t p mục thư ng xuy n th lại c đ c t nh kh ngđơn điệu
Ví d : Với L = A B C D :
c(ABC → D) ≥ c(AB → CD) ≥ c(A → BCD) Độ tin cậy có đặc tính không đơn điệu đối với số lượng các mục
ở vế hải của lu t
44Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
45/47
Apriori: Sinh ra các luật (1)Lattice của các luật
Luật có độ tin cậy th p
Các luật
45Khai Phá Dữ Li ệu
bị loại bỏ
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
46/47
Apriori: Sinh ra các luật (2)
Các luật cần xét được sinh ra bằng cách kết hợp 2 luật
(rule consequent)
Ví dụ: Kết hợp 2 luật
(CD → AB, BD → AC)
D → ABC
Loại bỏ luật D → ABC nếu bất kỳ mộtluật con của nó (AD → BC, BCD → A, …) không có độn c y cao m ncon
46Khai Phá Dữ Li ệu
-
8/17/2019 Khai Phá dữ liệu - Phát hiện luật kết hợp
47/47
Tài liệu tham khảo
• P.-N. Tan, M. Steinbach, and V. Kumar. Introduction to Data Mining
cha ter 6 . Addison-Wesle 2005.
47Khai Phá Dữ Li ệu