Tải bản đầy đủ (.pdf) (52 trang)

Bài giảng khai phá dữ liệu chương 2 phan mạnh thường

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 52 trang )

Chương 2

LUẬT KẾT HỢP
(Association Rules)
Nội dung
1

Khái niệm cơ bản

2

Thuật toán Apriori

3

Tìm tập phổ biến tối đại với FP-Tree

4

Phân loại luật kết hợp

5

Tối ưu tập luật


Các khái niệm cơ bản
Bài toán phân tích giỏ hàng
 Phân tích thói quen mua
hàng của khách hàng
bằng cách tìm ra những


“mối kết hợp” giữa
những mặt hàng mà
khách đã mua
 Mục tiêu giúp gia tăng
doanh số, tạo thuận lợi
cho khách khi mua hàng
trong siêu thị
 Bài toán được Agrawal
thuộc nhóm nghiên cứu
của IBM đưa ra vào năm
1994
7/12/2014

www.lhu.edu.vn


Các khái niệm cơ bản
Luật kết hợp
 Khai phá luật kết hợp:
 Tìm tần số mẫu, mối kết hợp, sự tương quan, hay các cấu trúc
nhân quả giữa các tập đối tượng trong các cơ sở dữ liệu giao
tác, cơ sở dữ liệu quan hệ, và những kho thông tin khác.

 Tính hiểu được: dễ hiểu
 Tính sử dụng được: Cung cấp thông tin thiết thực
 Tính hiệu quả: Đã có những thuật toán khai thác hiệu
quả
 Các ứng dụng:
 Phân tích bán hàng trong siêu thị, cross-marketing, thiết kế
catalog, loss-leader analysis, gom cụm, phân lớp, ...

7/12/2014

www.lhu.edu.vn


Các khái niệm cơ bản
Luật kết hợp
 Định dạng thể hiện đặc trưng cho các luật kết
hợp:
 khăn  bia [0.5%, 60%]
 mua:khăn  mua:bia [0.5%, 60%]
 “Nếu mua khăn thì mua bia trong 60% trường hợp. Khăn và
bia được mua chung trong 0.5% dòng dữ liệu."

 Các biểu diễn khác:
 mua(x, “khăn")  mua(x, “bia") [0.5%, 60%]
 khoa(x, "CS") ^ học(x, "DB")  điểm(x, "A") [1%, 75%]


Các khái niệm cơ bản
Luật kết hợp
khăn
1

 bia [0.5%, 60%]
2

3

4


“NẾU mua khăn
THÌ mua bia
trong 60% trường hợp
trên 0.5% số dòng dữ liệu"

1 Tiền đề, vế trái luật
2 Mệnh đề kết quả, vế phải luật
3 Support, tần số, độ hỗ trợ (“trong bao nhiêu phần trăm dữ liệu thì
những điều ở vế trái và vế phải cùng xảy ra")
4 Confidence, độ mạnh, độ tin cậy (“nếu vế trái xảy ra thì có bao nhiêu
khả năng vế phải xảy ra")


Các khái niệm cơ bản
Luật kết hợp

• Độ ủng hộ:

biểu thị tần số luật có trong các giao tác.

support(A  B [ s, c ]) = p(AB) = support ({A,B})

• Độ tin cậy:
biểu thị số phần trăm giao tác có chứa luôn B
trong số những giao tác có chứa A.
confidence(A  B [ s, c ]) = p(B|A) = p(AB) / p(A) =
support({A,B}) / support({A})



Các khái niệm cơ bản
Luật kết hợp
 Độ hỗ trợ tối thiểu  : (minsupp)
 Cao
 ít tập phần tử (itemset) phổ biến
 ít luật hợp lệ rất thường xuất hiện
 Thấp  nhiều luật hợp lệ hiếm xuất hiện
 Độ tin cậy tối thiểu  : (minconf)
 Cao
 ít luật nhưng tất cả “gần như đúng"
 Thấp  nhiều luật, phần lớn rất “không chắc
chắn"
 Giá trị tiêu biểu:  = 2 -10 %,  = 70 - 90 %


Các khái niệm cơ bản
Luật kết hợp
 Giao tác:
 Dạng quan hệ
<Tid,item>
<1, item1>
<1, item2>
<2, item3>
 Item và itemsets:

Dạng kết
<Tid,itemset>
<1, {item1,item2}>
<2, {item3}>
phần tử đơn lẻ và tập phần tử


 Support của tập I:
số lượng giao tác có chứa I
 Min Support : ngưỡng cho support
 Tập phần tử phổ biến: có độ ủng hộ (support)  


Các khái niệm cơ bản
Ví dụ
 Cho: (1) CSDL các giao tác, (2) mỗi giao tác là một
danh sách mặt hàng được mua (trong một lượt mua
của khách hàng) Frequent item sets
ID của giao tác Hàng mua
100
A,B,C
200
A,C
400
A,D
500
B,E,F

Tập phổ biến
{A}
{B} và {C}
{D}, {E} và {F}
{A,C}
Các cặp khác

support

3 or 75%
2 or 50%
1 or 25%
2 or 50%
max 25%

 Tìm: tất cả luật có support >= minsupport
 If min. support 50% and min. confidence 50%, then
A  C [50%, 66.6%], C  A [50%, 100%]


Khai phá luật kết hợp
 Quá trình hai buớc để khai phá luật kết hợp:

BƯỚC 1: Tìm các tập phổ biến: các tập
các phần tử có độ support tối thiểu.
 Mẹo Apriori: Tập con của tập phổ biến cũng là một tập phổ
biến:
• ví dụ, nếu {AB} là một tập phổ biến thì cả {A} và {B} đều
là những tập phổ biến
 Lặp việc tìm tập phổ biến với kích thước từ 1 đến k (tập có
kích thước k)

BƯỚC 2: Dùng các tập phổ biến để tạo
các luật kết hợp.Rakesh Agrawal, 1993


Thuật toán Apriori
 Bước kết hợp:
Ck được tạo bằng cách kết Lk -1 với chính nó

 Bước rút gọn:
Những tập kích thước (k-1) không phổ biến
không thể là tập con của tập phổ biến kích thước k
 Mã giả:
Ck : Tập ứng viên có kích thước k; Lk : Tập phổ biến có kích
thước k
L1 = {các phần tử phổ biến};
for (k = 1; Lk !=; k++) do begin
Ck +1 = {các ứng viên được tạo từ Lk };
for each giao tác t trong database do
tăng số đếm của tất cả các ứng viên trong Ck+1
mà được chứa trong t

Lk +1 = {các ứng viên trong Ck +1 có độ ủng hộ tối tiểu}
end
return k Lk ;


Thuật toán Apriori

 Nguyên tắc Apriori:






Những tập con của tập phổ biến cũng phải phổ biến
L3={abc, abd, acd, ace, bcd}
Tự kết: L3*L3

 abcd từ abc và abd
 acde từ acd và ace
Rút gọn:
 acde bị loại vì ade không có trong L3
C4={abcd}


Thuật toán Apriori
Ví dụ
Database D

C1
Tập

ID giao tác Phần tử

100
200
300
400

1
2
1
2

34
35
235
5


{1}
Duyệt D {2}
{3}
{4}
{5}

L1

Độ ủng hộ

2
3
3
1
3

Tập

{1}
{2}
{3}
{5}

Độ ủng hộ

2
3
3
3



Thuật toán Apriori
Ví dụ
C2

Tập
{1 2}
{1 3}
{1 5}
{2 3}
{2 5}
{3 5}

C2

Duyệt D

Tập Độ ủng hộ
{1 2}
1
{1 3}
2
{1 5}
1
{2 3}
2
{2 5}
3
{3 5}

2

L2

Tập Độ ủng hộ
{1 3}
2
{2 3}
2
{2 5}
3
{3 5}
2


Thuật toán Apriori
Ví dụ
C3

Tập
{2 3 5}

L3

Duyệt D

Tập Độ ủng hộ
{2 3 5}
2



Thuật toán Apriori
Ví dụ
12345

Không gian tìm
kiếm của CSDL D
1234

123

12

124

13

1235

1245

125

134

135

14

15


23

1

2

145

24
3

1345

234

25
4

2345

235

34

35
5

245


45

345


Thuật toán Apriori
Ví dụ
Áp dụng mẹo
Apriori
trên Cấp 1

12345

1234

123

124

12

13

125

14
1

1235


1245

1345

134

135

145

234

15

23

24

25

2

3

4

2345

235


34

245

35
5

345

45


Thuật toán Apriori
Ví dụ
Áp dụng mẹo
Apriori
trên Cấp 2

12345

1234

123

124

12

125


13

14
1

1235

1245

1345

134

135

145

234

15

23

24

25

2

3


4

2345

235

34

245

35
5

345

45


Tập phổ biến tối đại ( maximal frequent sets).

 Tập phổ biến (frequent sets)
 Tập phổ biến tối đại ( maximal frequent sets).
 Định nghĩa: M là tập phổ biến tối đại nếu M là
tập phổ biến và không tồn tại tập phổ biến S
khác M mà M  S


Thuật toán Apriori


 Phần cốt lõi của thuật toán Apriori: FP tree
 Dùng các tập phổ biến kích thước (k – 1) để tạo các tập phổ
biến kích thước k ứng viên
 Duyệt CSDL và đối sánh mẫu để đếm số lần xuất hiện của
các tập ứng viên trong các giao tác

 Tình trạng nghẽn cổ chai của thuật toán Apriori:
việc tạo ứng viên
 Các tập ứng viên đồ sộ:
• 104 tập phổ biến kích thước 1 sẽ tạo ra 107 tập ứng viên
kích thước 2
• Để phát hiện một mẫu phổ biến kích thước 100, ví dụ
{a1, a2, …, a100}, cần tạo 2100  1030 ứng viên.
 Duyệt CSDL nhiều lần:
• Cần duyệt (n +1 ) lần, n là chiều dài của mẫu dài nhất


Thuật toán Apriori
Hạn chế của thuật toán Apriori
 Thực tế:
 Đối với tiếp cận Apriori căn bản thì số lượng thuộc tính trên
dòng thường khó hơn nhiều so với số lượng dòng giao tác.
 Ví dụ:
• 50 thuộc tính mỗi cái có 1-3 giá trị, 100.000 dòng (không quá tệ)
• 50 thuộc tính mỗi cái có 10-100 giá trị, 100.000 dòng (hơi tệ)
• 10.000 thuộc tính mỗi cái có 5-10 giá trị, 100 dòng (quá tệ...)

 Lưu ý:
• Một thuộc tính có thể có một vài giá trị khác nhau
• Các thuật toán luật kết hợp có đặc trưng là xem một cặp thuộc

tính-giá trị là một thuộc tính (2 thuộc tính mỗi cái có 5 giá trị =>
"10 thuộc tính")

 Cách khắc phục vấn đề ?


Thuật toán FP-Tree
 Ý tưởng: Dùng đệ quy để gia tăng độ dài của
mẫu phổ biến dựa trên cây FFP và các mẫu
được phân hoạch
 Phương pháp thực hiện:
 Với mỗi item phổ biến trong Header Table, xây
dựng cơ sở điều kiện và cây điều kiện của nó
 Lặp lại tiến trình trên với mỗi cây điều kiện mới
được tạo ra
 Cho tới khi cây điều kiện được tạo ra là cây rỗng
hoặc chỉ bao gồm một đường đi đơn thì ngừng. Mỗi
tổ hợp con các item trên đường đi đơn được tạo ra
sẽ là một tập phổ biến


Thuật toán FP-Tree
Các bước xây dựng cây FP-Tree
 Bước 1: Duyệt CSDL, xác định tập F các item phổ
biến một phần tử, sau đó loại bỏ các Item không thoả
ngưỡng minsup. 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 ta 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


Thuật toán FP-Tree

Xây dựng cây FP-Tree


Thuật toán FP-Tree
null

Thêm TID=1 vào cây:

TID
1
2
3
4
5
6
7
8
9
10

Items
{A,B}
{B,C,D}

{A,C,D,E}
{A,D,E}
{A,B,C}
{A,B,C,D}
{B,C}
{A,B,C}
{A,B,D}
{B,C,E}

B:1
A:1
Thêm TID=2 vào cây:
null
B:2
A:1

C:1
D:1


×