Hệ thống các thuật toán

Một phần của tài liệu Khai phá luật kết hợp (Trang 32 - 40)

15. Gọi thủ tục Ap-genluat (ỉk, Hm+Ì);

2.4.3 Hệ thống các thuật toán

Trong phần này mô tả và hệ thốna lại các thuật toán. Phần này không đi chi tiết vào các thuật toán mà chi đưa ra các thuật (oán cơ bản và sự khác nhau giữa các cách tiếp cặn.

a) Hệ thõng các thuật toán

Các thuật toán xem xét trong mục này được hệ thống trên hình 2.3. Đầu liên ta phân loại theo chiến lược tìm kiếm: tìm kiếm theo chiểu rộng (B F S - Breadth First Search) và lìm kiếm theo chiểu sâu (D F S - Depth First Search). Sau đó tiếp tục phân loại theo cách xác định giá trị độ hỗ trợ cho các tập mục. Các thuật toán có thể được phát triển để tối ưu vẻ mặt tốc độ.

32

b) BFS v à tính biến đêm

B F S \

D F S

/

/

• ằ

t í a li b iê a Ạ Iim tậ p Ạ tim tậ p

đêm / \ giao' / \ giao

/ \ lía h . b i è a / \

/ V đ ếm / \

/ \ ” / \

Aprioci PaaitLoa FP-Growth. Eclai AprioriTid

D IC

Hình 2.3 Hệ thống các thuật toán tuần tự

Thuật toán phổ biến nhát loại này là Apriori. Thuật toán thực hiện tia bớt những tập ứng cứ viên có tập con là không phổ biến trước khi tính độ hỗ trợ. Cách thức tôi uni nàv hoàn toàn c ó thể thực hiện được vì B F S chác chắn rằn g đ ộ h ỏ trợ c ù a c á c tập c o n CÚ2

tập ứng cừ viên đã được biết trước. AprioriTid là ihuật toán mở rộng của thuật loár Apriori. Thay vì dựa vào từng hàng trong C SD L. AprioriTid thay mỗi tác vụ bằng tậ£

ứng cử viên hiện tại mà nó bao hàm. Thuật toán ArioriHybriđ kết hợp cà hai cách tiếp cận của hai thuật toán trên. S E M T là thuật toán tựa AprioriTid thực hiện trực tiếp irons SQL.

DIC là sự kết hợp đa dạns của các thuật toán Apriori. D IC hạn ch ế sự tách biệt giữí việc tính độ hỗ trợ và sự phát sinh các tập ứna cử viên. Mỗi khi tập ứna cử viên đạ dược minsup, thậm chí ngay cả khi tập ứng cử viên nàv chưa duyệt hết các tác vụ, DIC hắt đầu phát sinh tập ứng cử viên tiếp dựa trên nó.

c) B F S và tập giao T ĨD -List

Thuật toán Partition là loại thuậi toán tựa Apriori sử dụng tập giao để xác định độ hỗ trợ. Như đã trình bày ớ trên thuật toán Apríori xác định độ hỗ trợ của tất cá các ứne cử viên k-1 trước khi tính độ hỗ trợ của các k - ứng cử viên. Vàn đế ở chỗ là thuật toán Partition sừ dụng tidlist của k-1 ứng cử viên phổ biến để phát sinh tidlist của k- ứng cử viên. Để thực hiện thuật toán này người ta chia CSDL thành nhiều phần và thực hiện thuật toán trên các phần. Sau khi xác định được các tập mục phổ biến trên mỗi phần thuậi toán thực hiện một lần duyệt mờ rộng để khầng định chắc chắn rằng các tập mục phổ biến cục bộ cũng chính là các tập mục phổ biến toàn bộ.

d) D F S và tính các biến đèm

Giá sử các tập ứng cử có kích thước hợp lý. Đối với mỗi tập ứng cử cần phải duvệt CSDL. Chẳng hạn thuật toán Apriori sử dụna tìm kiếm B F S cho việc duyệt CSDL cho mỗi tập ứns cử kích thước k. Khi sử dụng DFS tập ứng cử bao gồm các tập mục cùa một nút của cày. Duyệt C SD L cho mỗi nút đòi hỏi chi phí rất lớn. Một cách kết hợp đơn gian cùa D FS với tính toán các biến đếm là không thích hợp với thực tế.

Gần đây nạười ta đưa ra thuật toán FP-growth. Trong bước tiền xử lý FP-growth tìm ra các đại diện của các tác vụ dữ liệu, được gọi là FP-tree. V iệc phát sinh FP-tree được thực hiện bằng c á ch tính các thể hiện và DFS. Nsược lại đối với cách tiếp cận DFS, FP- growth khỏne đuvệt theo nút của cây trên hình 2.2. mà nó duyệt trực tiếp tới một phần nào đó của tập mục trong không gian tim kiếm. Tron° bước thứ hai cúa thuật toán FP- growth sử dụng FP-tree để tính độ hỗ trợ của tất cả các tập mục phố biến.

e) DFS và tập giao T ID -List

Thuật toán Eclat [9J kết hợp D F S vói tập giao tidlist. Khi sừ dụns DFS khôna cần thiết phái chia C S D L ra làm nhiều phần như thuật toán Partition.

Tập mục phổ biến cực đại là tập mục mà ta thêm vào bất kỳ mục nào không thuộc nó thì tập đó sẽ không còn là tập mục phổ biến.

Eclat sử dụng cách tối ưu gọi là “fast intersection” . M ỗi khi ta lấy giao của hai tidlist ta được tập kết quả tidlist nếu số các phần tử đạl minsup. Trườns hợp khác ta

34

dims mỗi phép giao ngay khi biết chác rằng nó không đạt được ngưỡng. Eclat phát sinh chi tập mục phổ biến có kích thước lớn hơn 3. Ta sửa Eclat để khai phá các tậpl -2 mục phò b iến b à n s c á c h 2ỌÍ n ó tron g lớ p b a o s ó m 1- lập m ụ c c ù n ạ với tập tidlist cù a ch ú n g.

Tóm lại cách tiếp cận của thuật toán Eciat : - X ây dựnsỉ dàn tập mục phổ biến.

- Tiếp cặn iheo phân hoạch dọc tập định danh.

Phân chia dàn thành các dàn con.

Sứ đụng chiến lược ùm kiếm hiệu quà.

tâpm uc

n a h o c A

l ie hi l ừ 1'

m e t h o c 0

đia lý I

va ũ h o c w

CSDL

Caằ

ta c vu c a c m u c A í' ' 'A'

A ; w

•1 A c 'iV

A r; I) 1 'A'

I) CO •

Gác íâpmuc phổ biÍQ nÚQ5up=50%

su pp t i p m ụ c

IC C -' , ;cj!

ô V . •.V. cw

.4; A. Ij. • AC aw,

: 1 Aỉ:v/

'X' \ A' IM . 'W ACI A IV/,

• m 1 1 w a::iw

các luât ket boprmacouf = 100%

ô4

A — * !' ! ô l •w: — w It M l 't1J c ' i ’ T- A — ằ’.v < .ii i l — z •V'3i A l --- A — - i.'jV >M — w 1 V ll ■'.V — * A i; : 3/31 u — *1 :-M: vu--- c •t:.t i AC --- W ; 3 iJ !

i ----*>. •!,'<! ,)W — - :: M l A!-.v—

w — IS' 51 IV,1 — A 3.-3I ciür— A :.v:<

Hình 2.4 a) C SD L ví dụ vể hán sách b) các tập mục phổ biến V í dụ thuật toán Eclat thực hiện đối với CSDL bán sách.

A C D v a c t) A C W ; A D T A D W lA T W ; C O T I C D W ) C T W D T W

: a o ỉ a d (a t) (AW (c ọ (err) c w Õ T íD v ỳ í n r w

:'a> '"c) T-1 yv;

o

Các tập m ục ph.0 biêa cực đại: CDW, A CTW

Hình 2.5 Dàn tập mục phổ biến

A C O T W

A C D T A C D W A O T W C D T W

A C W A D T

(a c) a d ( . a tV

ế

A O W ( A T ^ C O i i C D ^ Ç T W I OTW

( c ạ ( c y ( c w DT (ciw> (tvw)

P h ả n , l ợ p tư ctkg đ ư ơ n g

()

[A I ( Ã . A C . AT. AW A C T . A C W . A T’A/. A C T W fC] - j c . C D , C T . c w . C O W . C T W i

ỈD I - • u . u w I ! n _ ■ t. I w !

Hình 2.6 Phân chia dàn thành các dàn con

36

Cpj <-T> <w>

ị II ị - J-

T w C DO P

2

4

9 I 6 giao t c & E3

e w 1

2

3

4-

tàp dinh danh cùa các tác vu tld-list

c o w

!

giao C D & c w

Hình 2.7 Tính độ hỗ trợ theo theo thuật toán Eclat Các chiến lược xày dựng dàn

- Theo cách tiếp cận Bottum up hình 2.8 - Theo cách tiếp cận top-down hình 2.9

A C D T W

A C D T A C D W A C T W ) A D T W

Các phân lớp tLíơng dương

in [Muj _ J MUI, MUf*. vv f [ATI - i AT, ATW }

g [AW) A W

Các tập mục ptxố b iế a c ự c đại CDW- CTW đâ được biêi

Hình 2.8 Theo cách tiếp cận bottom -up

I ACDTw)

ACDT l,ACDW (aCTW) IADTW]

• ACỌ ACT ACW ADT.IẠOV* ATW

AC .a d) a t a w

Hình 2.9 Theo cách tiếp cận iop - down

38

Ọ M ột số thuật toán khác

Một số thuật toán mới sử dụng lược đồ phàn cụm tập mục để sinh ra các tập mục cực dại tiểm năns. Mỗi cụm là một dàn con và sứ dụng chiến lược bottum - up để sinh ra tất cà các tập mục phổ biến, hoặc sử dụng chiến lược lai chỉ sinh ra chi các tập mục phổ hiên cực đại [18].

- Clique: bài toán tim clique lai cực đại và chiến lược tìm kiếm bottom - up.

MaxClique : bài toán tìm clique lai cực đại và chiến lược tìm kiếm lai (hybrid).

- C H A R M : tim các tập mục phổ biến đóng. Chi tiết thuật toán (xem chương 3).

Thuật toán dC H A R M là cái tiến của CHARM sử dụng diffset [13]. Diffset là đại diện cùa dữ liệu theo cách tiếp cặn phân hoạch dọc.

Các thuật toán song song: song song vé mặt xử lý. hoặc song song vé mặt dữ liệu hoặc song song lai (kết hợp của song song vé mật xử lý và dữ liệu). Một số ihuật toán sons sons điển hình như: ParClique. ParEclat. CouniDist, Pear [15] v.v.

Thuật toán phân tán: điển hình ỉà voting. M eta-learning, [15] v.v.

Các thuật toán online [14]: điển hình là thuật toán C A R M A (Continues Association Rule Mining Algorithm). Các thuật toán dựa trên ý tưởng của thuật toán Apriori cơ bán thực hiện theo hai bước:

1. Tìm tất cả các tập mục phổ biến.

2. Với mỗi tập mục phổ biến z . tìm tất cả các tập con X cùa z mà độ tin cậy cùa luật X => z \ x lớn hơn hoặc bằng minconf.

Nếu ta đã hoàn thành được bước 1 thì bước 2 có thè tính toán trực tuvến. Các thuật toán đang tồn tại tính toán các tập mục phổ biến không trực tuyến. Thuật toán được gọi là trực tuycn nếu nó đáp ứng được các yêu cầu sau:

- Trá lại các phản hồi liên tục.

- Có thể điểu khiển được trong quá trình xử lý.

- Cho lại kết quá xác định và chính xác.

Thuật toán C A R M A gồm hai pha:

- Cho phép người sử dụns thay đổi độ hỏ trợ bất kỳ lúc nào.

- Cho lại phản hói trons quá trình thực hiện.

- Cần ít nhất hai lần duyệt C SD L.

Một số thuật toán dựa trên c ơ sở của thuật toán Apriori đòi hỏi phải cập nhật lại các rinh toán tìm ra c á c tập mục phổ biến trước dó khi có các thao tác chèn thêm hoặc loại bó các giao tác trong C SD L. Các thuật toán này yêu cầu phải duyệt lại toàn bộ các giao lác mỗi khi một tập mục trờ thành tập mục phổ biến do phép chèn vào C SD L. Ngược lại C A R M A chỉ duyệt lại những dữ liệu mà người dùng cần thiết. Hơn nữa C A R M A thực hiện cà hai bước trực tuyến và không cần phái tính toán lại toàn bộ.

Một phần của tài liệu Khai phá luật kết hợp (Trang 32 - 40)

Tải bản đầy đủ (PDF)

(97 trang)