Tải bản đầy đủ (.pptx) (51 trang)

Khai phá luật kết hợp trong khai phá dữ liệu

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 (919.54 KB, 51 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN II

Báo cáo tốt nghiệp đại học

Khai thác luật kết hợp
trong khai phá dữ liệu
GVHD ThS Lưu Nguyễn Kỳ Thư
Lớp
Đ07THPM


Nội dung
Tổng quan khai phá dữ liệu
Luật kết hợp
Giới thiệu
Giá trị support và confident

Thuật toán Apriori
Thuật toán AprioriTID
Thuật toán FP Growth
Cải tiến tốc độ bằng kỹ thuật mảng

Ứng dụng trong bài toán CK
Kết luận


Tổng quan khai phá dữ liệu
Là quá trình trích xuất thông tin, khám phá tri thức
có mối tương quan nhất định từ một kho dữ liệu
khổng lồ nhằm mục đích dự đoán các xu thế, hành vi


trong tương lai, hoặc tìm kiếm tập các thông tin hữu
ích mà bình thường không thể nhận diện được.
Giải quyết các vần đề thực tế:
Siêu thị wallmart có hơn 2triệu giao dịch/ngày
Google, Youtube, ...


Tổng quan khai phá dữ liệu
Các giai đoạn của của quá trình khai phá:
1. Data cleaning
2. Data integration
3. Data seletion
4. Data Transformation
5. Data mining
6. Pattern Evaluation
7. Knowledge Presentation


Luật kết hợp (Agrawal)
I = {i1,i2, … ,in} là tập n thuộc tính nhị phân.
D = {t1,t2, … ,tn} là tập các giao tác gọi là cơ sở dữ
liệu, mỗi ti có một ID duy nhất và chứa tập các mục
trong I
Một luật định nghĩa sự kéo theo có dạng X ⇒ Y
trong đó X,Y ⊆ I và X ∩ Y = ∅.
X gọi là phần mệnh đề điều kiện
Y gọi là mệnh đề kết quả của luật tương ứng


Luật kết hợp

Độ phổ biến:
Supp(X) = |X|/|D|
Supp(X⇒Y)=|{T⊆D:X∪Y⊆T}|/|D|

Độ tin cậy:
Ví dụ:
|D|=10;|X∪Y|=5; |X|=7;|Y|=6
Supp(X⇒Y) = 5/10 = 0,5
Conf(X⇒Y) = 5/7 ≈ 0,71


Dữ liệu mẫu
Từ bảng lịch sử giá

Trích những mã CP theo nhu cầu nhà đầu tư
Biến động giảm trong ngày
Biến động tăng trong ngày


Dữ liệu mẫu
Dữ liệu thô

Danh sách mã CP có biến
động tăng trong ngày


Dữ liệu mẫu
Dữ liệu nhị phân

Mã không có biến động

giá hoặc giảm trong
ngày

Mã có giá biến động
tăng trong ngày

Biến động giá của các
CP trong một ngày
Tìm những tập cácmã
item
xuất hiện cùng nhau ít
nhất 4 lần.

minSup = 0,4


Bài toán tìm các mã CP tăng đồng
thời với tần suất ≥ minSup
Input:

Cơ sở dữ liệu giao dịch
Giá trị minSup

Output:
Tất cả các tập chứa các mã CP có đồng thời biến động tăng
trong ngày với tần suất xuất hiện của tập ≥ minSup


Bài toán tìm các tập phổ biến
Largek

• Mỗi phần tử thuộc tập có
Cơ sở dữ liệu giao dịch
dạng <{a1,a2,…,ak},sup>
Giá trị minSup
• ai là một item
• sup: Tần suất xuất hiện cùng
Output:
nhau của các item.
Tất cả tập Largek
• sup ≥ minSup
(với 1 ≤ k ≤ số lượng item thuộc CSDL )

Input:


Thuật toán Apriori (Agrawal-1994)

acd
ace

acde

Tìm kiếm theo chiều rộng
Sinh ra ứng viên k item từ tập k-1 item
Loại dần các tập không đủ điều kiện


Thuật toán Apriori (Agrawal-1994)
Tính tần suất xuất hiện
subset(Ck,t)

từng item
for (k=2; Largek-1 <> Ø; k++)
do {
Ví dụ
Lọc ra những phần tử thuộc
Large1
Candidatek = apriori-gen(Largek-1)
Ck xuất hiện ở giao tác t
[1] {DRC},8
for tất cả giao dịch t ∈ Db do { apriori-gen(Lk-1)
[2] {NAG},4
Candidatek
Ct = subset (Candidatek, t)Sinh ra tất cả ứng viên
độ
[3] {TCR},9
• Mỗi phần tử thuộc
lớn
k item từ tập L có
[4]độ
{VLA},3
cả ứng
viên c ∈ Ct do
c.count++
tậpfor
có tất
dạng:
<{a1,a2,
lớn k-1 item.
[5] {VSH},7
}

…,ak}>
[6] {ACB},3
• ai làLargek
một item
= {c ∈ Ct | c.count ≥ minSup}
Large1 = { large 1-itemsets }

}
return

∪k Largek


Thuật toán Apriori
Ví dụ

Đầu tiên
k=2

Item1
{DRC}
{NAG}
{TCR}
{VSH}

Sup
8
4
9
7


Danh sách
ứng viên 2 item
{DRC,NAG}
{DRC,TCR}
{DRC,VSH}
{NAG,TCR}
{NAG,VSH}
{TCR,VSH}
Item2
{DRC,TCR}
{DRC,VSH}
{NAG,TCR}
{NAG,VSH}
{TCR,VSH}

3
7
6
4
4
7
Sup
7
6
4
4
7



Thuật toán Apriori
Ví dụ

k=3

Item2
{DRC,TCR}
{DRC,VSH}
{NAG,TCR}
{NAG,VSH}
{TCR,VSH}

Sup
7
6
4
4
7

Danh sách
ứng viên 3 item
{DRC,TCR,VSH}
{NAG,TCR,VSH}

Item3
{DRC,TCR,VSH}
{NAG,TCR,VSH}

6
4


Sup
6
4


Thuật toán Apriori
Ví dụ

k=4

Item3

Sup

{DRC,TCR,VSH}
Item2
{NAG,TCR,VSH}

6
Sup
4

{DRC,TCR}
{DRC,VSH}
{TCR,VSH}
{NAG,TCR}
Item1
{NAG,VSH}
{DRC}

{NAG}
{TCR}
{VSH}

7
6
7
4
Sup
4
8
4
9
7

Xuất kết quả tìm được

Danh sách
ứng viên 3 item



Thuật toán AprioriTID
Nhận xét về thuật toán Apriori:
Tại mỗi bước, quét toàn bộ CSDL, so sánh tập ứng viên gây
lãng phí thời gian

Ý tưởng AprioriTID:
Chỉ quét CSDL cho lần đầu tiên
Dùng đối tượng Transk để lưu các tập đủ điều kiện CSDL tại

mỗi bước k
Mỗi phần tử Transk có dạng:
<t.TID,{c ∈ Candidatek|giao tác t chứa c}>


Thuật toán AprioriTID
Transk
Trans1 = database
ChứaDbcác tập phổ biến độ lớn k cho từng giao tác
Trans1
Mỗi<>phần
tử{ thuộc Transk có dạng:
for (k=2; Largek-1
Ø; k++)
[1] <1,{{DRC}
}>

Candidatek|giao
tác
t
chứa
c}>
Candidatek = apriori-gen(Largek-1)
[2]<2,{{TCR},{VLA}
}>
Transk = ØTID : nhận dạng cho từng giao tác
Large1 = { large 1-itemsets }

}


[3]<3,{{DRC},{TCR},{VSH}
}>
for tất cả giao dịch t ∈ Transk-1 do[4]<4,{{NAG},{TCR},{VSH}
{
}>
C’t = {c ∈ Candidatek | c\c.ak ∈ t Ʌ[5]<5,{{DRC},{NAG},{TCR},{VLA},{VSH}
c\c.ak-1 ∈ t}
}>
[6]<6,{{DRC},{NAG},{TCR},{VSH} }>
for tất cả ứng viên c ∈ C’t do c.count++
[7]<7,{{DRC},{NAG},{TCR},{VLA},{VSH}}>
if (Ct ≠∅) then Transk += <t.TID, C’t>
[8]<8,{{DRC},{TCR},{ACB}
}>
}
[9] <9,{{DRC},{TCR},{VSH},{ACB} }>
Largek = {c ∈ C’t | c.count ≥ minSup}
[10]<10,{{DRC},{TCR},{VSH},{ACB} }>

return ∪k Largek


Thuật toán AprioriTID
Ví dụ

Đầu tiên
k=2

Danh sách

ứng viên 2 item
{DRC,NAG}
{DRC,TCR}
{DRC,VSH}
{NAG,TCR}
{NAG,VSH}
{TCR,VSH}

TID
Danh sách tập 1 item
1 {DRC}
8
2 {TCR}
4
3 {DRC}, {TCR}, {VSH}
9
4 {NAG},{TCR},{VSH}
7
5 {DRC}, {NAG}, {TCR}, {VSH}
Support<4 6 {DRC}, {NAG}, {TCR}, {VSH}
TID
Danh sách tập 2 item
7 {DRC}, {NAG}, {TCR}, {VSH}
3 {DRC,TCR},{DRC,VSH},{TCR,VSH}
8 {DRC}, {TCR}
4 {NAG,TCR},{NAG,VSH},{TCR,VSH}
9 {DRC}, {TCR}, {VSH}
{DRC,NAG},{DRC,TCR},{DRC,VSH},
10 {DRC}, {TCR}, {VSH}
5 {DRC,VSH},{NAG,TCR},{NAG,VSH},{TCR,VSH}

{DRC,NAG},{DRC,TCR},{DRC,VSH},
6 {DRC,VSH},{NAG,TCR},{NAG,VSH},{TCR,VSH}
{DRC,NAG},{DRC,TCR},{DRC,VSH},
7 {DRC,VSH},{NAG,TCR},{NAG,VSH},{TCR,VSH}
8 {DRC,TCR}
9 {DRC,TCR},{DRC,VSH},{TCR,VSH}
10 {DRC,TCR},{DRC,VSH},{TCR,VSH}

Item1
{DRC}
{NAG}
{TCR}
{VSH}

Sup


Thuật toán AprioriTID

TID
Danh sách tập 2 item
3 {DRC,TCR},{DRC,VSH},{TCR,VSH}
{DRC,TCR}
7
4 {NAG,TCR},{NAG,VSH},{TCR,VSH}
k=3
{DRC,VSH}
4
{DRC,TCR},{DRC,VSH},{DRC,VSH},
{TCR,VSH}

7
5 {NAG,TCR},{NAG,VSH},{TCR,VSH}
{DRC,TCR},{DRC,VSH},{DRC,VSH},
{NAG,TCR}
4
6 {NAG,TCR},{NAG,VSH},{TCR,VSH}
{NAG,VSH}
4
{DRC,TCR},{DRC,VSH},{DRC,VSH},
7 {NAG,TCR},{NAG,VSH},{TCR,VSH}
Danh sách
8 {DRC,TCR}
TID
Danh
sách tập 3 item
ứng viên 3 item
9 {DRC,TCR},{DRC,VSH},{TCR,VSH}
3{DRC,TCR,VSH}
{DRC,TCR,VSH}
10 {DRC,TCR},{DRC,VSH},{TCR,VSH}
4{NAG,TCR,VSH}
{NAG,TCR,VSH}
5{DRC,TCR,VSH},{NAG,TCR,VSH}
6{DRC,TCR,VSH},{NAG,TCR,VSH}
7{DRC,TCR,VSH},{NAG,TCR,VSH}
9{DRC,TCR,VSH}
10{DRC,TCR,VSH}

Ví dụ


Item2

Sup


Thuật toán AprioriTID
Ví dụ

k=4

Item3

{DRC,TCR,VSH}
Item2
{NAG,TCR,VSH}

{DRC,TCR}
{DRC,VSH}
Danh sách {TCR,VSH}
{NAG,TCR}
ứng viên 4 item
Item1
{NAG,VSH}
ø
{DRC}
{NAG}
{TCR}
{VSH}

Sup


6
Sup
4
7
6
7
4
Sup
4
8
4
9
7

TID
Danh sách tập 3 item
3{DRC,TCR,VSH}
4{NAG,TCR,VSH}
5{DRC,TCR,VSH},{NAG,TCR,VSH}
6{DRC,TCR,VSH},{NAG,TCR,VSH}
7{DRC,TCR,VSH},{NAG,TCR,VSH}
9{DRC,TCR,VSH}
10{DRC,TCR,VSH}

Xuất kết quả tìm được


Thuật toán FP-Growth
Giới thiệu


Khuyết điểm của các thuật toán trước đây:
Tốn kém do việc sinh ra và kiểm tra các ứng viên

FP-Growth: (Frequent Pattern Growth)
Không cần sinh và kiểm tra ứng viên
Xây dựng cấu trúc Cây FP để lưu trữ toàn bộ CSDL
Khai phá cây FP để tìm các mẫu phổ biến


Thuật toán FP-Growth
Cây FP

Mục đích
Tránh quét lại CSDL nhiều lần
Giảm thiểu lưu trữ đối với các giao tác chứa cùng các tập phổ
biến

Xây dựng cây FP chỉ cần 2 lần quét CSDL:
1. Tính support từng item tìm ra các item phổ biến
2. Đọc lại CSDL theo thứ tự support giảm dần, loại những item
có support

Thuật toán FP-Growth
Cây FP

Xây dựng cây FP
Nút gốc có giá trị NULL (cấp độ 0)
Thông tin mỗi nút:

<name, support, parent_node>
Trên cùng 1 nhánh, nút cấp độ k có giá trị support lớn hơn
hoặc bằng nút có cấp độ k+1
(1 ≤ k ≤ N)
N: số lượng item phổ biến


Thuật toán FP-Growth
Cây FP
Input:

CSDL giao tác
Giá trị minSup

Output
Cây FP


×