Download as pdf or txt
Download as pdf or txt
You are on page 1of 47

Khai Phá Dữ Liệu

Nguyễn Nhật Quang


quangnn-fit@mail.hut.edu.vn

Viện Công nghệ Thông tin và Truyền thông


Trường Đại học Bách Khoa Hà Nội
Năm học 2010-2011
Nội dung môn học:

„ Giới thiệu về Khai phá dữ liệu


„ ề công cụ WEKA
Giới thiệu về
„ 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 lớp và dự đoán
„ Các kỹ thuật phân nhóm

Khai Phá Dữ Liệu


2
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)
‰ ộ tập
Với một ập các g ị (transactions)
giao dịch ( ) 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 Các ví dụ của luật kết hợp:


1 Bread, Milk
{Diaper} → {Beer}
2 Bread, Diaper, Beer, Eggs
{Milk, Bread} → {Eggs, Coke}
3 Milk, Diaper, Beer, Coke
{Beer, Bread} → {Milk}
4 Bread, Milk, Diaper, Beer
5 Bread, Milk, Diaper, Coke

Khai Phá Dữ Liệu


3
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}
TID Items
‰ Tập mục mức k (k-itemset)
1 Bread, Milk
„ Một tập mục gồm k mục
2 Bread, Diaper,
Bread Diaper Beer,
Beer Eggs
„ ổ
Tổng ố hỗ
số ỗ trợ (Support
(S count)) σ
3 Milk, Diaper, Beer, Coke
‰ Số lần xuất hiện của một tập mục
4 Bread, Milk, Diaper, Beer
‰ Ví dụ: σ({Milk, Bread, Diaper}) = 2
5 Bread Milk,
Bread, Milk Diaper,
Diaper Coke
„ Độ 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ơn
hoặc bằng một giá trị ngưỡng minsup
Khai Phá Dữ Liệu
4
Các định nghĩa cơ bản (2)
„ Luật kết hợp (Association TID Items
rule) 1 Bread, Milk
‰ ể thức kéo theo có
Một biểu 2 Bread, Diaper, Beer, Eggs
dạng: X → Y, trong đó X và Y 3 Milk, Diaper, Beer, Coke
là các tập mục
4 Bread, Milk, Diaper, Beer
‰ {Milk Diaper} → {Beer}
Ví dụ: {Milk, 5 Bread, Milk, Diaper, Coke
„ Các độ đo đánh giá luật
‰ Độ
ộ hỗ trợ
ợ (Support)
( pp ) s {Milk , Diaper} → Beer
„ Tỷ lệ các giao dịch chứa cả
X và Y đối với tất cả các σ ( Milk , Diaper, Beer ) 2
giao dịch s= = = 0 .4
|T| 5
‰ Độ tin cậy (Confidence) c
„ Tỷ lệ các giao dịch chứa cả σ (Milk, Diaper, Beer) 2
X và Y đối với các giao dịch
c= = = 0.67
σ (Milk, Diaper) 3
chứa X

Khai Phá Dữ Liệu


5
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
hiện luật kết hợp là tìm ra tất cả các luật có:
‰ độ 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ể
‰ t á độ hỗ trợ
Tí h toán
Tính t và à độ ti ậ cho
tin cậy ỗi lluật
h mỗi ật
‰ Loại bỏ đi các luật có độ hỗ trợ nhỏ hơn minsup hoặc có độ tin
cậ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ế!

Khai Phá Dữ Liệu


6
Phát hiện luật kết hợp
TID Items Các luật kết hợp:
1 Bread, Milk {Milk, Diaper} → {Beer} (s=0.4, c=0.67)
2 Bread,
B d Di
Diaper, B
Beer, E
Eggs {Milk, Beer} → {Diaper} (s=0.4, c=1.0)
3 Milk, Diaper, Beer, Coke {Diaper, Beer} → {Milk} (s=0.4, c=0.67)
4 Bread, Milk, Diaper, Beer {Beer} → {Milk, Diaper} (s=0.4, c=0.67)
{Diaper} → {Milk,
{Milk Beer} (s
(s=0
0.4,
4 c=0
c 0.5)
5)
5 Bread, Milk, Diaper, Coke
{Milk} → {Diaper, Beer} (s=0.4, c=0.5)

„ Tất cả các luật trên đều là sự phân tách (thành 2 tập con) của
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ợ,
nhưng có thể khác về độ tin cậy
„ 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

Khai Phá Dữ Liệu


7
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
đoạn) quan trọng:
‰ 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
tất cả các luật có độ tin cậy cao (≥ minconf)
„ 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!

Khai Phá Dữ Liệu


8
Lattice biểu diễn các tập mục cần xét
null

Với d
A B C D E
mục, thì
phải xét
AB AC AD AE BC BD BE CD CE DE
đến 2d
các tập
mục có
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
thể!

ABCD ABCE ABDE ACDE BCDE

ABCDE

Khai Phá Dữ Liệu


9
Sinh ra các tập mục thường xuyên
TID Items
1 B d Milk
Bread,
2 Bread, Diaper, Beer, Eggs
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer
5 Bread, Milk, Diaper, Coke

„ Phương pháp vét cạn (Brute


(Brute-force)
force)
‰ 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

giao
i dịdịch
h
‰ 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!

Khai Phá Dữ Liệu


10
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)
(xét)) đầyy đủ: M=2d
‰ Tìm kiếm (

‰ Sử dụng các kỹ thuật cắt tỉa (pruning) để giảm giá trị M

„ ợ g các giao
Giảm bớt số lượng g ị cần xét ((N))
dịch
‰ 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ác
giao dịch (N.M)
g ( )
‰ 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
‰ Không cần phải so sánh mỗi tập mục với mỗi giao dịch

Khai Phá Dữ Liệu


11
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)
dựa trên độ hỗ trợ
‰ 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
‰ Nếu một tập mục là không thường xuyên (not frequent)
frequent), thì tất cả
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ính
không đơn điệu (anti-monotone) của độ hỗ trợ
∀X , Y : ( X ⊆ Y ) ⇒ s( X ) ≥ s(Y )
‰ Độ hỗ trợ của một tập mục nhỏ hơn độ hỗ trợ của các tập con
của nó
Khai Phá Dữ Liệu
12
Apriori: Loại bỏ dựa trên độ hỗ trợ

Tập mục
không
thường
xuyên

Các tập cha của tập


m c đó (AB) bị loại bỏ
mục

Khai Phá Dữ Liệu


13
Apriori: Loại bỏ dựa trên độ hỗ trợ
Item Count Các tập mục mức 1 (1-itemsets)
Bread 4
C k
Coke 2
Milk 4 Itemset Count Các tập mục mức 2 (2-
Beer 3 {Bread,Milk} 3 itemsets)
Diaper 4 {Bread,Beer} 2
Eggs 1
{Bread,Diaper} 3 (Không cần xét các tập
{Milk,Beer} 2 mục có chứa mục Coke
{Milk,Diaper} 3 hoặc Eggs)
{Beer,Diaper} 3
minsup = 3
Các tập mục mức 3
(3-itemsets)
•Nếu xét tất cả các tập mục có thể:
6C + 6C + 6C = 41
Ite m s e t C ount
1 2 3 { B r e a d ,M ilk ,D ia p e r } 3
•Với cơ chế loại bỏ dựa trên độ hỗ trợ:
6 + 6 + 1 = 13

Khai Phá Dữ Liệu


14
Giải thuật Apriori
„ Sinh ra tất cả các tập mục thường xuyên mức 1 (frequent
1-itemsets):
1 itemsets): các tập mục thường xuyên chỉ chứa 1 mục
„ Gán k = 1
„ Lặpp lại, cho đến khi không
g có thêm bất kỳỳ tập
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
tập mục mức mức (k (k+1)
1) cần xét
‰ 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ục
không thường xuyên mức k
‰ Tính độ hỗ trợ của mỗi tập mục mức (k+1),
(k+1) bằng cách duyệt qua
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)
‰ Thu được các tập mục thường xuyên mức (k+1)

Khai Phá Dữ Liệu


15
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
‰ ầ phải duyệt qua tất
Cần ấ 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 (hash
structure) để 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 nó 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

Khai Phá Dữ Liệu


16
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
4 5},
5} {3 5 6},
6} {3 5 7},
7} {6 8 9}
9}, {3 6 7}
7}, {3 6 8}
„ 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

(Hàm băm) 234


3,6,9 567
147
1,4,7 145 345 356 367
136 368
2,5,8 357
124 689
457 125 159
458
Khai Phá Dữ Liệu
17
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
258
2,5,8
234
567

145 136
Băm
345 356 367
(hash)
đối với 357 368
1, 4, 124 159 689
125
hoặc 7
457 458

Khai Phá Dữ Liệu


18
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
258
2,5,8
234
567

145 136
345 356 367
Băm
357 368
(h h)
(hash)
đối với 124 159 689
125
2, 5, 457 458
hoặc 8

Khai Phá Dữ Liệu


19
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
258
2,5,8
234
567

145 136
Băm 345 356 367
(hash) 357 368
đối với 689
124 125 159
3, 6,
ặ 9
hoặc 457 458

Khai Phá Dữ Liệu


20
Các tập mục mức k trong một giao dịch
„ Đối với giao
dịch t, hãy xác
định các tập
mục mức 3?
‰ G ả sử trong
Giả o g
mỗi tập mục,
các mục
được liệt kê
theo thứ tự
từ điển

Khai Phá Dữ Liệu


21
Xác định các tập mục bằng cây băm (1)
(Hàm băm)
1 2 3 5 6 Giao dịch t

1+ 2356
2+ 356 1,4,7 3,6,9

2,5,8
3+ 56

234
567

145 136
345 356 367
357 368
124 159 689
125
457 458

Khai Phá Dữ Liệu


22
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+ 2356 1,4,7 3,6,9


2+ 356
12+ 356 2,5,8
3+ 56
13+ 56
234
15+ 6
567

145 136
345 356 367
357 368
124 159 689
125
457 458 Chỉ cần so sánh ggiao dịch t với 11
(trong tổng số 15) tập mục cần xét!
Khai Phá Dữ Liệu
23
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
tăng và chi phí duyệt cây băm cũng tăng
tăng,

Khai Phá Dữ Liệu


24
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
sinh ra từ một csdl giao dịch có thể rất lớn
„ Cần một cách biểu diễn ngắn gọn (compact
representation)
‰ 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
khác

„ Có 2 cách biểu diễn như vậy


‰ Các tập mục thường xuyên lớn nhất (Maximal frequent itemsets)
‰ Các tập mục thường xuyên đóng (Closed frequent itemsets)

Khai Phá Dữ Liệu


25
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ên
lớn nhất

Các tập mục


không
thường xuyên Ranh giới
Khai Phá Dữ Liệu
26
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ông ập cha nào của nó có cùng
g có tập g độ
ộ hỗ trợ
ợ với nó

Itemset Support
{A} 4
TID Items Itemset Support
{B} 5
1 {A,B} {A,B,C} 2
{C} 3
2 {B,C,D} {A,B,D} 3
{{D}} 4
3 {A B C D}
{A,B,C,D} {A,C,D} 2
4 {A,B,D} {A,B} 4
{B,C,D} 3
5 {A,B,C,D} {A,C} 2
{A,B,C,D} 2
{A,D} 3
{B,C} 3
{B,D} 4
{C,D} 3

Khai Phá Dữ Liệu


27
Tập mục thường xuyên: lớn nhất vs. đóng (1)
null TIDs

TID Items 124 123 1234 245 345


A B C D E
1 ABC
2 ABCD
3 BCE 12 124 24 4 123 2 3 24 34 45
AB AC AD AE BC BD BE CD CE DE
4 ACDE
5 DE

12 2 24 4 4 2 3 4
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

2 4
ABCD ABCE ABDE ACDE BCDE

Khôngg được hỗ trợ bởi


bất kỳ giao dịch nào ABCDE

Khai Phá Dữ Liệu


28
Tập mục thường xuyên: lớn nhất vs. đóng (2)
Đóng, nhưng không
null
Minsup = 2 phải là lớn nhất
124 123 1234 245 345
A B C D E
Đóng và
lớn nhất
12 124 24 4 123 2 3 24 34 45
AB AC AD AE BC BD BE CD CE DE

12 2 24 4 4 2 3 4
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

2 4 # Đóng = 9
ABCD ABCE ABDE ACDE BCDE
# Lớn nhất = 4

ABCDE

Khai Phá Dữ Liệu


29
Tập mục thường xuyên: lớn nhất vs. đóng (3)
„ Bất kỳ tập mục
thường xuyên lớn
nhất nào cũng là
tập mục thường
xuyên đóng
„ Cách biểu diễn sử
dụng tập mục
thườngg xuyên
y lớn
nhất không giữ
thông tin về độ hỗ
trợ của các tập
con (của mỗiỗ tập
mục thường
xuyên lớn nhất)

Khai Phá Dữ Liệu


30
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
thường xuyên
‰ Nhớ lại: Apriori sử dụng cơ chế sinh-kiểm tra (sinh ra các tập
mục cần xét, và kiểm tra xem mỗi tập mục có phải là thường
xuyên)

„ FP-Growth biểu diễn dữ liệu của các giao dịch bằng một
cấu trúc dữ liệu gọi là FP-tree
FP tree
„ FP-Growth sử dụng cấu trúc FP-tree để xác định trực
tiếp các tập mục thường xuyên

Khai Phá Dữ Liệu


31
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)
trong cây
„ Hai giao dịch có chứa cùng một số các mục, thì đường đi
của chúng sẽ có phần (đoạn) chung
‰ Càng nhiều các đường đi có các phần chung, thì việc biểu diễn
bằ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ể
xác định các tập mục thường xuyên trực tiếp từ FPFP-tree
tree
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

Khai Phá Dữ Liệu


32
Xây dựng FP-tree (1)
„ Ban đầu, FP-tree chỉ chứa duy nhất nút gốc (được biểu
ệ null))
diễn bởi kýý hiệu
„ 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ác m
mục th ờng xuyên
c thường (freq ent items) được
ên (frequent đ ợc sắp xếp
ếp
theo 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


d
dựng FP t
FP-tree
Khai Phá Dữ Liệu
33
Xây dựng FP-tree (2)
null (Sau khi xét
(Sau khi xét null
giao dịch thứ 1) giao dịch thứ 2)
A1
A:1 A:1 B1
B:1
TID Items
1 {{A,B}
, } B:1 B:1 C:1
2 {B,C,D}
3 {A,C,D,E}
4 {A,D,E} null D:1
5 {A,B,C}
6 {A,B,C,D} A:2 B:1
7 {A}
8 {A B C}
{A,B,C} C1
C:1
B:1 C:1 (Sau khi xét
9 {A,B,D}
giao dịch thứ 3)
10 {B,C,E} D:1
D1
D:1
E:1
Khai Phá Dữ Liệu
34
Xây dựng FP-tree (3)
TID Items
Cơ sở dữ (Sau khi xét giao
1 {A,B}
2 {B,C,D}
liệu các giao dịch thứ 10)
dịch null
3 {A,C,D,E}
4 {A,D,E}
5 {A,B,C} B:2
6 {A,B,C,D} A:8
7 {A}
8 {A,B,C}
9 {A,B,D} B:5 C:2
10 {{B,C,E}
, , }
C:1 D:1

Bảng con trỏ D:1


C:3 E:1
Item Pointer D:1 E:1
A D:1
B E:1
C D:1 Các con trỏ được sử dụng trong
D ập mục
quá trình sinh các tập
q ụ
E thường xuyên của FP-Growth
Khai Phá Dữ Liệu
35
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 từ
FP tree, từ mức lá đến mức gốc (bottom
FP-tree (bottom-up)
up)
‰ Trong ví dụ trên, FP-Growth trước hết tìm các tập mục thường
xuyên kết thúc bởi E… sau đó mới tìm các tập mục thường xuyên
kết thúc bởi D
D… bởi CC… bởi B…
B và bởi A

„ Vì mỗi giao dịch được biểu diễn bằng một đường đi


FP tree, chúng ta có thể xác định các tập mục
trong FP-tree,
thường xuyên kết thúc bởi một mục (vd: E), bằng cách
duyệt các đường đi chứa mục đó (E)
‰ Những đường
Nhữ đ ờ đi này à được
đ á định
xác đị h dễ dàng
dà bằbằng các ỏ
á con ttrỏ
gắn với nút đó (vd: E)

Khai Phá Dữ Liệu


36
Các đường đi kết thúc bởi một mục
(Các (Các
đườngg đườngg
đi kết đi kết
thúc thúc
bởi e) bởi d)

(
(Các đườngg đi (
(Các đườngg đi (
(Các đườngg đi
kết thúc bởi c) kết thúc bởi b) kết thúc bởi a)
Khai Phá Dữ Liệu
37
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
bởi một mục – dựa theo chiến lược chia để trị (divide
(divide-
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
‰ T ớ hết
Trước hết, kiểm
kiể tra
t tập
tậ mục mứcứ 1 ({
({e})
}) cóó phải
hải là tậ
tập mục
thườ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ậ th ờ xuyên
tập mục thường ê kết thúc
thú bởi de…
d bởi ce…bởibởi be…và
b à
bở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án
con nhỏ
hỏ hơn…
h
‰ Kết hợp các lời giải của các bài toán con, chúng ta sẽ thu được
các tập mục thường xuyên kết thúc bởi e

Khai Phá Dữ Liệu


38
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
trong FP-tree
FP tree kết thúc bởi e
‰ Các đường đi tiền tố (prefix paths) đối
với e

„ Dựa vào các đường đi tiền tố đối


với e, xác định độ hỗ trợ của e,
bằng cách cộng các giá trị hỗ trợ
gắn với nút e Các đường đi
tiền tố đối với e
„ Giả sử minsup=2,
minsup=2 thì tập mục {e}
là tập mục thường xuyên (vì nó
có độ hỗ trợ =3 > minsup)

Khai Phá Dữ Liệu


39
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
quyết các bà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
„ Trước tiên, cần chuyển các đường đi tiền tố của e thành
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 dùng để tì
dù tìm các
á tập th ờ xuyên
tậ mục thường ê kết thúc ột
thú bởi một
mục

Khai Phá Dữ Liệu


40
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
‰ ụ Đường
Ví dụ: g đi null → b:2 → c:2 → e:1
đã tính đến cả giao dịch {b,c} không chứa
mục e. 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ố FP-tree có điều
kiện đối với e
„ Sau khi cập nhật các giá trị hỗ trợ đối với
các đường đi tiền tố, một số mục có thể
trở 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

Khai Phá Dữ Liệu


41
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ác
bà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

„ Vd: Để tì
Vd tìm các
á tập th ờ xuyên
tậ mục thường ê kết
thú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ều
kiệ đối với
kiện ới e
Các đường đi
„ Bằng cách cộng với giá trị hỗ trợ gắn với nút tiền tố đối với de
d chúng ta xác định được độ hỗ trợ cho tập
d,
{d,e}
‰ Độ hỗ trợ của {d,e}=2: nó là một tập mục
th ờ xuyên
thường ê
Khai Phá Dữ Liệu
42
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
con khác rỗng f ⊂ L sao cho: f → L – f thỏa mãn điều
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
ầ xét gồm
cần ồ có:
ABC →D, ABD →C, ACD →B, BCD →A,
A →BCD,
→BCD B →ACD,
→ACD C →ABD,
→ABD D →ABC
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ỏ qua 2 luật: L → ∅ và ∅ → L)

Khai Phá Dữ Liệu


43
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ường
xuyên, ộ cách có hiệu
y , một ệ qquả?
„ 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ùng


ộ tập
một ậ mục thường
h ờ xuyên ê thì
hì lại ó đặc
l i có đặ tính
í h không
khô
đơ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ế
ếp ả của luật
phải uật

Khai Phá Dữ Liệu


44
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
bị loại bỏ
Khai Phá Dữ Liệu
45
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
có cùng tiền tố (phần bắt đầu) của phần kết luận
(rule consequent)
CD=>AB BD=>AC

„ Ví dụ: Kết hợp 2 luật


(CD=>AB, BD=>AC)
sẽ sinh ra luật cần xét
D => ABC
D=>ABC
„ Loại bỏ luật D=>ABC nếu bất kỳ một
luật con của nó (AD=>BC, BCD=>A, …) không có độ tin
cậy cao (< minconf)
Khai Phá Dữ Liệu
46
Tài liệu tham khảo
• P.-N. Tan, M. Steinbach, and V. Kumar. Introduction to Data Mining
(chapter 6). Addison
Addison-Wesley,
Wesley, 2005.

Khai Phá Dữ Liệu


47

You might also like