FP_tree - Cao Học K24

Download Report

Transcript FP_tree - Cao Học K24

Khai khoáng các mẫu tuần tự phổ
biến mà không cần phát sinh các
tập ứng viên
1
Nội
1.
2.
3.
4.
5.
6.
dung báo cáo
Giới thiệu khai khoáng mẫu tuần tự
Cách tiếp cận Apriori
Thiết kế cây và xây dựng cây FP
(Frequent Pattern Tree)
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP
Đánh giá các kết quả thực nghiệm
Các vấn đề đang còn thảo luận
2
Giới thiệu khai khoáng các mẫu tuần tự

Từ một tập dữ liệu, chúng ta tìm các mẫu có chiều
dài là 1, 2, 3, … thỏa min_support
có 60% khách hàng mua sản
phẩm a: mẫu có chiều dài 1
Döõlieä
u baù
n
haø
n g ôûsieâ
u thò
có 70% khách hàng mua
cùng lúc sản phẩm a và b:
mẫu có chiều dài 2
3
Nội
1.
2.
3.
4.
5.
6.
dung báo cáo
Giới thiệu khai khoáng mẫu tuần tự
Cách tiếp cận Apriori
Thiết kế cây và xây dựng cây FP
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP
Đánh giá các kết quả thực nghiệm
Các vấn đề đang còn thảo luận
4
Cách tiếp cận Apriori

Thuật toán Apriori:
 Ý tưởng thuật toán
Lặp đi lặp lại qúa trình phát sinh tập các ứng
viên có chiều dài k+1 từ các mẫu phổ biến
chiều dài k
 Kiểm tra độ phổ biến của ứng viên thỏa
min_support trong CSDL

5
Cách tiếp cận Apriori (tt)
TID
100
200
300
400
500
Các mặt hàng được mua
f, a, c, d, g, i, m, p
a, b, c, f, l, m, o
b, f, h, j, o
b, c, k, s, p
a, f, c, e, l, p, m, n
Chọn độ phổ biến cực tiểu là ξ (min_support) = 3 (60%)
6
Cách tiếp cận Apriori (tt)

Bước 1: Tìm F1 chứa các mẫu có chiều dài là 1 thỏa
min_support
F1={f, c, a, b, m, p}

Bước 2: Quá trình lặp tìm tập ứng viên Ck và từ Ck
tìm tập Fk
Với k=2
C2 = {<fc>, <fa>, <fb>, <fm>, <fp>, <ca>, <cb>,
<cm>, <cp>, <ab>, <am>, <ap>, <bm>, <bp>,
<mp>}
F2= {<fc>, <fa>, <fm>, <ca>, <cm>, <cp>, <am>}
7
Cách tiếp cận Apriori
Với k=3
C3={<fca>, <fcm>, <fcp>, <fam>, <cam>}
F3={<fca>, <fcm>, <fam>, <cam>}
Với k=4
C4={<fcam>}
F4={<fcam>}
Với k=5
C5=  ngưng
Vậy tập đầy đủ các mẫu phổ biến là: f, c, a, b, m, p,
fc, fa, fm, ca, cm, cp, am, fca, fcm, fam, cam,
fcam
8
Những hạn chế của thuật toán Apriori

Hai loại chi phí của thuật toán Apriori:

Chi phí phát sinh ứng viên
104 mẫu phổ biến
có kích thước là 1
cần phải phát sinh hơn 107 mẫu
phổ biến có kích thước là 2
Chi phí
sinh
ứng
viên quá lớn
Đềphát
nghị
xây
dựng

cây
FP lại
(FP-tree)
Chi phí lặp
đi lặp
việc duyệt CSDL để kiểm tra
một lượng lớn các ứng viên thỏa min_support
Chi phí duyệt CSDL lớn
Mục tiêu: tránh phát sinh tập ứng viên quá lớn
9
Nội
1.
2.
3.
4.
5.
6.
dung báo cáo
Giới thiệu khai khoáng mẫu tuần tự
Cách tiếp cận Apriori
Thiết kế cây và xây dựng cây FP
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP
Đánh giá các kết quả thực nghiệm
Các vấn đề đang còn thảo luận
10
Thuật toán xây dựng cây FP

Bước 1: Duyệt CSDL, lấy ra tập các item phổ biến F và tính
độ phổ biến của chúng.
Sắp xếp các item trong tập F theo thứ tự giảm dần của độ
phổ biến, ta được tập kết quả là L.

Bước 2: Tạo nút gốc cho cây T, và tên của nút gốc sẽ là Null.
Sau đó duyệt CSDL lần thứ hai. Ứng với mỗi giao tác trong
CSDL thực hiện 2 công việc sau:

Chọn các item phổ biến trong các giao tác và sắp xếp
chúng theo thứ tự giảm dần độ phổ biến trong tập L

Gọi hàm Insert_tree([p|P],T) để đưa các item vào
trong cây T
11
Thuật toán xây dựng cây FP

Bước 1:
Duyệt CSDL
Lấy ra tập phổ biến L
L bao gồm các item phổ biến theo thứ tự
giảm dần của độ phổ biến
12
Thuật toán xây dựng cây FP

Bước 2:
Tạo nút gốc cho cây
Duyệt CSDL
Chọn 1 giao tác trong CSDL
Chọn item phổ biến trong các giao tác &
sắp xếp tập L theo thứ tự giảm dần độ phổ biến
Gọi hàm Insert_tree([p|P],T)
Dừng
Hết
Kiểm tra hết
giao tác chưa?
Còn
{ Cây FP }
13
Cây FP - Ví dụ

Bảng tất cả các item:
TID
Các mặt hàng được mua
100
f, a, c, d, g, i, m,p
200
300
400
a, b, c, f, l, m, o
b, f, h, j, o
b, c, k, s, p
500
a, f, c, e, l, p, m, n
Chọn độ phổ biến cực tiểu là ξ (min_support) = 3 (60%)
14
Cây FP - Ví dụ (tt)
TID
Các mặt hàng được mua
100
f, a, c, d, g, i, m,p
200
a, b, c, f, l, m, o
300
b, f, h, j, o
400
b, c, k, s, p
500
a, f, c, e, l, p, m, n

Ta có một danh sách
các mặt hàng phổ biến L
là: <(f:4), (c:4), (a:3),
(b:3), (m:3), (p:3)>
Các mặt hàng đã được
sắp thứ tự giảm dần theo
độ phổ biến
Item a b c d e f g i j l k m n o p s
Supp 3 3 4 1 1 4 1 1 1 2 1 3 1 2 3 1
15
Cây FP - ví dụ (tt)

Từ tập dữ liệu ban đầu, chúng ta có được cây FP như
sau:
TID
Các mặt hàng
được mua
Root
Các mặt hàng phổ biến
(đã sắp theo thứ tự)
TID f, c,Các
mặtp hàng
100 f, a, c, d, g, i, m,p
a, m,
f:2
f:3
f:4
f:1
được mua
200 a, b, c,
c:2
c:3
c:1f, l, m, o
f, c, a, b, m
300 b, f, h, j, o
f, b
a:2
a:3
a:1s, p
400 b, c, k,
100
200
300
p:2
p:1
b:1
f, a,b:1
c, d, g, i, m,p
f, c, a, m, p
a, b, c, f, l, m, o
f, c, a, b, m
c, b, p
b, f, h, j, o
500 a, f, c, e, l, p, m,400
n f,b,c,c,a,k,m,
pp
s,
m:2
m:1
b:1
500
Cácc:1mặt hàng phổ biến
(đã sắp theo thứ tự)
p:1
f, b
c, b, p
a, f, c, e, l, p, m, n f, c, a, m, p
m:1
16
Cây FP - ví dụ (tt)

Từ tập dữ liệu ban đầu, ta xây dựng header table của cây
FP như sau:
Root
item head of node-links
f
f:4
c
c:3
c:1
b:1
b:1
a
a:3
p:1
b
m
p
m:2
b:1
p:2
m:1
17
Phân tích chi phí thuật toán tạo cây FP

Ứng với thuật toán trên thì chúng ta cần
chính xác là 2 lần quét qua tất cả các giao
tác của CSDL

Chi phí đưa một giao tác Trans vào trong
cây là O(|Trans|)
với |Trans| là số lần xuất hiện của các item trong
giao tác Trans này.
18
Nội
1.
2.
3.
4.
5.
6.
dung báo cáo
Giới thiệu khai khoáng mẫu tuần tự
Cách tiếp cận Apriori
Thiết kế cây và xây dựng cây FP
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP
Đánh giá các kết quả thực nghiệm
Các vấn đề đang còn thảo luận
19
Định nghĩa

Cơ sở điều kiện của nút “m”:
Root
f:4
c:3
(f:1, c:1, a:1, b:1)
c:1
b:1
a:3
m:2
(f:2, c:2, a:2)
b:1
p:1
b:1

Cây điều kiện FP của “m”:
item head of node-links
f
p:2
m:1
Root
Header table:
f:3
c
c:3
a
a:3
20
Thuật toán khai khoáng các mẫu phổ
biến sử dụng cây FP
Procedure FP-growth(Tree, α)
{
(1) Nếu Tree có chứa một đường đi đơn P
(2) Thì với mỗi cách kết hợp  của các nút trong đường đi P thực hiện
(3)
phát sinh tập mẫu Uα, support = min(support của các nút trong );
(4) ngược lại ứng với mỗi ai trong thành phần của Tree thực hiện {
(5)
phát sinh tập mẫu β=aiUα với độ phổ biến
support = ai.support;
(6)
xây dựng cơ sở điều kiện cho β và sau đó xây dựng cây FP Treeβ
theo điều kiện của β;
(7)
Nếu Treeβ ≠ 
(8)
thì gọi lại hàm FP-growth(Treeβ, β)
}
}
21
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP (tt)
Call FP-Growth(Tree, null)
Root
f:4
c:3
c:1
b:1
a:3
m:2
b:1
p:1
b:1
Đối với nút “p”
 =“p” U null = “p”, xuất kết quả
p:3
 Cơ sở điều kiện là:
(f:2, c:2, a:2, m:2)
(c:1, b:1)
Root
 Cây FP với điều kiện trên
{(c:3)}p
c:3
p:2
m:1

Xuất kết quả là: cp:3
Vậy nút p có các mẫu tuần tự phổ biến là: p:3, cp:3
22
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP (tt)
Root
f:4
Đối với nút “m”
 =“m” U null = “m”, Xuất kết quả m:3
c:1

Cơ sở điều kiện của nút “m”:
(f:2, c:2, a:2)
c:3
b:1
a:3
m:2
p:2
b:1
p:1
b:1
m:1
Root
f:3
(f:1, c:1, a:1, b:1)

Cây điều kiện FP của “m”:
c:3
a:3

Gọi FP-Growth(Treem, “m”)

Vì Treem có chứa đường đi đơn
Nên nút m có các mẫu tuần tự phổ biến là: {(m:3), (am:3),
(cm:3), (fm:3), (cam:3), (fam:3), (fcm:3), (fcam:3)}
23
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP (tt)

Bảng kết quả của tất cả các item:
Cơ sở điều kiện
Item
Cây điều kiện FP
p
{(f:2, c:2, a:2, m:2), (c:1, b:1)}
{(c:3}|p
m
{(f:2, c:2, a:2), (f:1, c:1, a:1, b:1)} {(f:3, c:3, a:3)}|m
b
{(f:1, c:1, a:1), (f:1), (c:1)}

a
{(f:3, c:3)}
{(f:3, c:3)}|a
c
{(f:3)}

f


24
Nội
1.
2.
3.
4.
5.
6.
dung báo cáo
Giới thiệu khai khoáng mẫu tuần tự
Cách tiếp cận Apriori
Thiết kế cây và xây dựng cây FP
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP
Đánh giá các kết quả thực nghiệm
Các vấn đề đang còn thảo luận
25
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP (tt)
Hiệu quả hơn so với Apriori.
 Phân chia và kiểm soát quá trình xử lý.
 Sử dụng cây FP để biểu diễn các mẫu phổ
biến thì dữ liệu giảm rất đáng kể so với cách
biểu diễn trong CSDL.

26
So sánh FP-growth và Apriori
27
So sánh FP-growth và Apriori
28
Nội
1.
2.
3.
4.
5.
6.
dung báo cáo
Giới thiệu khai khoáng mẫu tuần tự
Cách tiếp cận Apriori
Thiết kế cây và xây dựng cây FP
Khai khoáng các mẫu phổ biến bằng
cách sử dụng cây FP
Đánh giá các kết quả thực nghiệm
Các vấn đề đang còn thảo luận
29
Các vấn đề đang còn đang thảo luận

Vấn đề xây dựng cây FP cho các projected
database.

Vấn đề tổ chức lưu trữ cây FP trên đĩa.

Vấn đề cập nhật lại cây khi cây tăng trưởng về
mặt kích thước.
30
Vấn đề xây dựng cây FP cho projected
database

Không thể xây dựng cây FP trong bộ nhớ
chính khi CSDL là lớn.

Đầu tiên phân chia CSDL vào trong các
projected database và sau đó xây dựng một
cây FP và khai thác cây này trong mỗi
projected database.
31
Vấn đề tổ chức lưu trữ cây FP trên đĩa

Lưu trữ cây FP trong các đĩa cứng.
Sử dụng cấu trúc B+Tree.
32
Vấn đề cập nhật lại cây khi cây tăng
trưởng về mặt kích thước

Các thông tin bị mất.

Việc tái xây dựng lại cây có thể xảy ra.
33
Tài liệu tham khảo







[1] Jiawei Han, Jian Pei, and Yiwen Yin (2000). Mining Frequent Patterns without
Candidate Generation. The Natural Sciences and Engineering Research Council of
Canada.
[2] H. Huang, X. Wu, and R. Relue (2002). Association analysis with one scan of
databases. In IEEE International Conference on Data Mining, pages 629-636.
[3] J. Liu, Y. Pan, K. Wang, and J. Han (2002). Mining frequent item sets by
oppotunistic projection. In Eight ACMSIGKDD Internationa Conf. on Knowledge
Discovery and Data Mining, pages 229-238, Edmonton, Alberta.
[4] F. Frahne, L. Lakshmanan, and X.Wang (2000). Efficient mining of constrained
correlated sets. In ICDE’00.
[5] R. Agrawal and R.Srikant (1995). Mining sequential patterns. In ICDE’95 pp. 314.
[6] R. J. Bayardo (1998). Efficiently mining long patterns from databases. In
SIGMOD’98 pp. 85-93.
[7] J. Han, J. Pei, and Y. Yin (1999). Mining partial periodicity using frequent
pattern trees. In CS Tech. Rep. 99-10, Simon Fraser University.
34