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

Khai Phá Dữ Liệu-Phát hiện các luật kết hợp ppt

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 (547.29 KB, 47 trang )

Khai Phá Dữ Liệu
Nguyễn Nhật Quang

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

 Giới thiệu v

công cụ WEK
A
 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ớpvàdự đoán

Các

kỹ

thuật

phân

lớp



dự



đoán
 Các kỹ thuật phân nhóm
2
Khai Phá Dữ Liệu
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
ập
các
g
iao d

ch
(
transactions
)
cho trước
,
cần tìm các
ộ ậpgị (),
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:
{Diaper}


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


{Beer}
{Milk, Bread} → {Eggs, Coke}
{Beer, Bread} → {Milk}
4

Bread,

Milk,

Diaper
,

Beer
5 Bread, Milk, Diaper, Coke

3
Khai Phá Dữ Liệu
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
ổ ố ỗ (S )
TID Items
1 Bread, Milk
2
Bread Diaper Beer Eggs
 T

ng s

h

trợ
(S
upport count
)

σ
 Số lần xuất hiện của một tập mục
 Ví dụ: σ({Milk, Bread, Diaper}) = 2
2

Bread
,
Diaper
,
Beer

,
Eggs
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer
5
Bread Milk 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
5

Bread
,
Milk
,
Diaper
,
Coke


 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
4
Khai Phá Dữ Liệu
Các định nghĩa cơ bản (2)
 Luật kết hợp (Association

rule)

TID Items
1 Bread, Milk

 Một bi

u thức kéo theo có
dạng: X → Y, trong đó X và Y
là các tập mục

Ví dụ: {Milk Diaper}

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



dụ:

{Milk
,
Diaper}


{Beer}
 Các độ đo đánh giá luật


Độ
hỗ tr


(
Su
pp
ort
)
s
Beer
}
Diaper
Milk
{

5 Bread, Milk, Diaper, Coke

ộ ợ (pp)
 Tỷ lệ các giao dịch chứa cả
X và Y đối với tất cả các
giao dịch
Beer
}
Diaper
,
Milk
{

4.0

5
2
|
T
|
)Bee
r
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
chứaX
5
|
T
|
67.0
3
2
)Diaper,Milk(
)BeerDiaper,Milk,(
===
σ
σ
c

chứa

X
5
Khai Phá Dữ Liệu
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ệnluậtkếthợp là tìm ra tấtcả các luậtcó:
hiện

luật

kết

hợp



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 t á độ hỗ t à độ ti ậ h ỗil ật


n
h

t
o
á
n
độ

hỗ

t
rợ v
à

độ

ti
n c

y c
h

o m
ỗi

l
u
ậ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ế!
6
Khai Phá Dữ Liệu
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

2
BdDi B E
{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)
{Diaper}

{Milk Beer} (s
=
04 c
=
05)

2

B
rea
d
,
Di
aper,
B
eer,
E
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
{Diaper}


{Milk
,
Beer}

(s 0

.
4
,
c0
.
5)

{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ợ,
nhưng có thể khác về độ tin cậy
nhưng



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
7
Khai Phá Dữ Liệu
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:
đ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ấtcả các luậtcóđộ tin cậycao(

minconf
)
tất

cả

các

luật




độ

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!
8
Khai Phá Dữ Liệu
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
đến
2
d
A
B C D E
đến


2
các tập
mục có
thể!
AB AC AD AE BC BD BE CD CE DE
thể!
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
ABCD ABCE ABDE ACDE BCDE
9
Khai Phá Dữ Liệu
ABCDE
Sinh ra các tập mục thường xuyên
TID Items
1
BdMilk
1

B
rea
d
,
Milk
2 Bread, Diaper, Beer, Eggs

3 Milk, Diaper, Beer, Coke

4
Bread, Milk, Diaper, Beer
Phương pháp vét cạn(Brute

force)
4

Bread,

Milk,

Diaper,

Beer
5 Bread, Milk, Diaper, Coke



Phương

pháp

vét

cạn

(Brute
-
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
idị h
g
i

ao
dị
c
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 = 2
d
, thì độ phức tạp này là quá lớn!
10
Khai Phá Dữ Liệu
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
)
đầ
y
đủ: M=2
d
()y
 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
g
các
g
iao d


ch cần xét
(
N
)
ợ ggị
()
 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
g
iao 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ầnphải so sánh mỗitậpmụcvớimỗigiaodịch

Không

cần

phải


so

sánh

mỗi

tập

mục

với

mỗi

giao

dịch
11
Khai Phá Dữ Liệu
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ựatrênđộ hỗ trợ
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ếumộttậpmục là không thường xuyên (not frequent) thì tấtcả

Nếu

một

tập

mục



không

thường

xuyên

(not

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ợ
 Độ hỗ trợ của một tập mục nhỏ hơn độ hỗ trợ của các tập con
)()()(:, YsXsYXYX ≥⇒⊆∀
của nó
12
Khai Phá Dữ Liệu
Apriori: Loại bỏ dựa trên độ hỗ trợ
Tập mục
không
không

thường
xuyên
Các tập cha của tập
m c đó (AB) bị loạibỏ
13
Khai Phá Dữ Liệu
m

c

đó

(AB)


bị

loại

bỏ
Apriori: Loại bỏ dựa trên độ hỗ trợ
Item Count
Bread 4
Ck
2
Các tập mục mức 1 (1-itemsets)
C
o
k
e
2
Milk 4
Beer 3
Diaper 4
Eggs
1
Itemset Count
{Bread,Milk} 3
{Bread,Beer} 2
Các tập mục mức 2 (2-
itemsets)
(Không cầnxétcáctập
Eggs
1
{Bread,Diaper} 3

{Milk,Beer} 2
{Milk,Diaper} 3
{Beer,Diaper} 3
(Không

cần

xét

các

tập

mục có chứa mục
Coke
hoặc
Eggs
)
Item set
Count
Các tập mục mức 3
(3-itemsets)
minsu
p
= 3
•Nếu xét tất cả các tập mục có thể:
6
6
6
Item set


Count
{Bread,Milk,Diaper} 3

6
C
1
+
6
C
2
+
6
C
3
= 41
•Với cơ chế loại bỏ dựa trên độ hỗ trợ:
6 + 6 + 1 = 13
14
Khai Phá Dữ Liệu
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): các tậpmụcthường xuyên chỉ chứa1mục
1
itemsets):

các


tập

mục

thường

xuyên

chỉ

chứa

1

mục
 Gán k = 1
 Lặ
p
lại, cho đến khi khôn
g
có thêm bất k

tậ
p
mục
p g ỳ p
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ậpmụcmứcmức(k
+

1) cầnxét
tập

mục

mức

mức

(k 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ủamỗitậpmụcmức(k+1) bằng cách duyệt qua

Tính

độ

hỗ

trợ

của

mỗi


tập

mục

mức

(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 đượccáctậpmụcthường xuyên mức(k+1)

Thu

được

các

tập

mục


thường

xuyên

mức

(k+1)
15
Khai Phá Dữ Liệu
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 (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

16
Khai Phá Dữ Liệu

Sinh ra cây băm (hash tree)
 Giả sử chúng ta có 15 tậpmụcmức3 cầnxé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
45} {356} {357} {689} {367} {368}
4

5}
,
{3

5

6}
,
{3


5

7}
,
{6

8

9}
,
{3

6

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ướctối đacủa nút lá (Max leaf size): Số lượng tối đãcáctập
mục đượclưu ở một nút lá (Nếusố lượng các tậpmụcvượt quá giá trị
này, nút đósẽ tiếptụcbị phân chia) – Ví dụ: Max leaf size = 3
2 3 4
5 6 7
145
345

356
367
147
3,6,9
(Hàm băm)
1

4

5
1 3 6
1 2 4
457
125
159
3

4

5
3

5

6
3 5 7
6 8 9
3

6


7
3 6 8
1
,
4
,
7
2,5,8
17
Khai Phá Dữ Liệu
4

5

7
1

2

5
4 5 8
1

5

9
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
258
3,6,9
2 3 4
5 6 7
2
,
5
,
8
145 1 3 6
3 4 5 3 6 7
368
3 5 6
357
Băm
(hash)
đốivới
1 5 9
3

6

8
3

5

7
6 8 9

1 2 4
4 5 7
1 2 5
4 5 8
đối

với

1, 4,
hoặc 7
18
Khai Phá Dữ Liệu
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
258
3,6,9
2 3 4
5 6 7
2
,
5
,
8
1 4 5 1 3 6
3 4 5 3 6 7
368
3 5 6
3

5
7
Băm
(h h)
1 5 9
3

6

8
3

5
7
6 8 9
1 2 4
4 5 7
1 25
4 58
(h
as
h)

đối với
2, 5,
hoặc8
19
Khai Phá Dữ Liệu
hoặc


8
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
258
3,6,9
2 3 4
5 6 7
2
,
5
,
8
1 4 5 1 3 6
3 4 5 367
3
6
8
3 5 6
3
57
Băm
(hash)
1 5 9
3
6
8
3
5


7
6 8 9
1 2 4
4 5 7
1 2 5
4 5 8
(hash)

đối với
3, 6,
ho

c 9
20
Khai Phá Dữ Liệu

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
dịch

t
,

hãy

xác


định các tập
mục mức 3?

G
i


sử
tr
o
n
g

G ả sử og
mỗi tập mục,
các mục
được liệt kê
theo thứ tự
theo

thứ

tự

từ điển
21
Khai Phá Dữ Liệu
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 +
56
3+
1,4,7
2,5,8
3,6,9
2 3 4
5

6
3

+
1 4 5 1 3 6
3 4 5 3 6 73 5 6
5 6 7
1 5 9
3 6 83 5 7
6 8 9
1 2 4
457
1 2 5
458
22
Khai Phá Dữ Liệu
4


5

7
4

5

8
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,7
2,5,8
3,6,9
3 5 61 2 +
3 5 62 +
56
3+
1 + 2 3 5 6
2 3 4
567
5 61 3 +
61 5 +
5

6
3

+

1 4 5 1 3 6
3 4 5 3 6 7
3 5 6
5

6

7
1 5 9
3 6 8
3 5 7
6 8 9
1 2 4
4 5 7
1 2 5
458
Chỉ c

n so sánh
g
iao dịch
t
với 11
23
Khai Phá Dữ Liệu
4

5

8

g
(trong tổng số 15) tập mục cần xét!
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ệtcâybămcũng tăng
tăng
,


chi

phí


duyệt

cây

băm

cũng

tăng
24
Khai Phá Dữ Liệu
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ấtlớn
sinh

ra

từ

một

csdl

giao

dịch




thể

rất

lớn
 Cần một cách biểu diễn ngắn gọn (compact
representation)
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
khác
 Có 2 cách biểu diễn như vậy

Các tậpmụcthường xuyên lớnnhất (Maximal frequent itemsets)

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)
25
Khai Phá Dữ Liệu

×