1. Trang chủ
  2. » Công Nghệ Thông Tin

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

51 555 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 51
Dung lượng 1,52 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

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

KHOA CÔNG NGHỆ THÔNG TIN II

Trang 2

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

Trang 3

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, .

Trang 4

Tổng quan khai phá dữ liệu

Các giai đoạn của của quá trình khai phá:

Trang 5

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

Trang 7

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

Trang 8

Dữ liệu mẫu

Dữ liệu thô

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

Trang 9

nhất 4 lần.

Trang 10

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

Trang 11

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

• sup: Tần suất xuất hiện cùng

nhau của các item.

• sup ≥ minSup

Trang 12

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

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

a c d

Trang 13

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

Large1 = { large 1-itemsets }

subset(Ck,t)

Lọc ra những phần tử thuộc

Ck xuất hiện ở giao tác t

Trang 14

Danh sách ứng viên 2 item

Trang 15

Thuật toán Apriori

{DRC,TCR,VSH}

{NAG,TCR,VSH}

64

Item3 Sup

{DRC,TCR,VSH} 6{NAG,TCR,VSH} 4

Trang 16

Item3 Sup

{DRC,TCR,VSH} 6{NAG,TCR,VSH} 4

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

Trang 17

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,{cCandidatek |giao tác t chứa c}>

Trang 18

Thuật toán AprioriTID

Large1 = { large 1-itemsets }

Trans1 = database Db

for (k=2; Largek-1 <> Ø; k++) {

Candidatek = apriori-gen(Largek-1)

Transk = Ø

for tất cả giao dịch t Transk-1 do {

C’t = {c Candidatek | c\c.ak t Ʌ c\c.ak-1 t}

for tất cả ứng viên c C’t do c.count++

if (Ct ≠∅) then Transk += <t.TID, C’t>

Chứa các tập phổ biến độ lớn k cho từng giao tác

Mỗi phần tử thuộc Transk có dạng:

<t.TID,{cCandidatek |giao tác t chứa c}>

TID : nhận dạng cho từng giao tác

[7]<7,{{DRC},{NAG},{TCR},{VLA},{VSH}}>[8]<8,{{DRC},{TCR},{ACB} }>

[9] <9,{{DRC},{TCR},{VSH},{ACB} }>

[10]<10,{{DRC},{TCR},{VSH},{ACB} }>

Trang 20

TID Danh sách tập 3 item

Trang 21

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

Trang 22

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

Trang 23

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< minSup

Trang 24

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

Trang 25

Thuật toán FP-Growth

Trang 26

Thuật toán FP-Growth

Cây FP

Giải thuật xây dựng cây FP:

Header ={<name,sup,link*>|sup>= minSup }

getFP(t,Flist)

• Đọc các item phổ biến trong giao tác t theo thứ tự Flist

Trang 27

Thuật toán FP-Growth

Trang 28

Thuật toán FP-Growth

Trang 29

Thuật toán FP-Growth

Trang 30

Thuật toán FP-Growth

Trang 31

Thuật toán FP-Growth

Trang 32

Thuật toán FP-Growth

Trang 33

VSH:3

NAG:2 VSH:4 DRC:4

Thuật toán FP-Growth

Trang 35

TCR:7

VSH:4 DRC:6

Trang 36

TCR:8

VSH:5 DRC:7

Trang 38

Thuật toán FP-Growth

Trang 39

Thuật toán FP-Growth

Khai phá cây FP

Ý tưởng cho việc khai phá

Chia cây FP làm 2 phần

P: Chứa chuỗi nút liên tục từ gốc chỉ có 1 con (1 nhánh

đơn từ gốc đến k) gọi là nhánh tiền tố đơn

Q: phần chứa các nút thuộc phần nhiều nhánh

Trang 40

Thuật toán FP-Growth

Khai phá cây FP

Input

Cây FP Giá trị minSup

Output

Tập các mẫu phổ biến

Trang 41

Thuật toán FP-Growth

Giải thuật khai phá cây FP

PROCEDURE FP-growth(Tree, α){

if(Tree chứa đường dẫn prefix đơn) {

P = phần chứa nhánh prefix đơn của Tree

Q = phần chứa nhiều nhánh của cây Tree, Q.root= NULL;

foreach tổ hợp các node thuộc P(kí hiệu β) do

Sinh ra các mẫu β∪α với support=support nhỏ nhất trong β

Gán freq_pattern_set(P) là tập các mẫu được sinh ra

}else gán Q là Tree;

foreach (item ai thuộc Q) do{

Sinh ra mẫu β=ai∪α với support=ai.support

Xây dựng cơ sở mẫu ước định của β và cây ước định Treeβ

Gọi FP-growth (Treeβ,β)

Gán freq_pattern_set(Q) là tập các mẫu được sinh ra

} RETURN freq_pattern_set(P) ∪ freq_pattern_set(Q) ∪ (freq_pattern_set(P)×

freq_pattern_set(Q))

}

Trang 42

Thuật toán FP-Growth

Ví dụ:

Trang 43

Thuật toán FP-Growth

Ví dụ cách xây dựng cây FP β ={NAG}

Trang 44

Cải tiến tốc độ FP-growth bằng kỹ thuật mảng

Nhận xét FP-Growth

80% thời gian duyệt các node trên cây FP

Công việc chính cho mỗi bước khai phá

Xây dựng cây FP β ={ai} chưa hoàn chỉnh từ cây FP cha Đếm count của các node trên cây mới FP

Xóa các node không đủ điều kiện Cấu trúc lại các node trên cây theo thứ tự mớiGiải pháp nào tối ưu hơn?

Trang 45

Cải tiến tốc độ FP-growth bằng kỹ thuật mảng

Ý tưởng: Khi xây dựng cây FP

Dựa trên thứ tự support giảm dần của bảng header Đối với mỗi item x, ta có các item yi ∉ cây FP β ={x} ⇒

yi.support<x.support (yi cùng nhánh x) Trong khi xây dựng cây FP, ta có thể tính support của một item yj bất kỳ chung nhánh với item x (với

yj.support ≥ x.support) cho cây FP β ={x}

Trang 46

Cải tiến tốc độ FP-growth bằng kỹ thuật mảng

6

Trang 47

Ứng dụng trong bài toán CK

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

Xây dựng bảng dữ liệu nhị phân

Trang 48

Ứng dụng trong bài toán CK

Trang 49

Ứng dụng trong bài toán CK

Hiệu suất thực thi:

0 500 1000 1500 2000 2500

3000

FPGrowth Apriori AprioriTID

Trang 50

Hướng lưu trữ hợp lý khi dữ liệu không thể chứa trong bộ nhớ trong

Chưa ứng dụng khả năng sử dụng lại kết quả khai phá

Trang 51

Kết thúc

Cảm ơn thầy cô và các bạn đã quan theo dõi!

Ngày đăng: 24/02/2016, 16:40

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w