Cải tiến hiệu quả thuật toán Apriori

Một phần của tài liệu khai phá dữ liệu trên cơ sở phương pháp luật kết hợp và ứng dụng (Trang 29 - 79)

Có nhiều biến thể của thuật toán Apriori đã được đề xuất nhằm cải tiến hiệu quả của thuật toán [8]. Các phương pháp đó là:

20

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.2.3.1. Phƣơng pháp dựa trên bảng băm

Phương pháp này sử dụng bảng băm để làm giảm kích thước của Ck với k > 1. Chẳng hạn, khi chúng ta quét mỗi giao dịch T trong CSDL để sinh L1 từ C1, chúng ta có thể sinh ra tất cả 2 - itemset cho giao dịch T và băm các 2 - itemset này vào các ngăn chứa (bucket) khác nhau của cấu trúc bảng băm, đồng thời tăng bộ đếm ngăn chứa (bucket count) lên. Những 2 - itemset mà bucket count của nó nhỏ hơn min_sup _count, thì nó không thể là frenquent nên ta loại nó khỏi tập ứng cử viên. Tương tự như vậy, ta có thể giảm được kích thước của Ck với k bất kỳ.

Ví dụ: Tạo bảng băm H2 với hàm băm là:

h( x, y) = ((thứ tự của x)*10 + (thứ tự của y)) mod 7 Bucket address 0 1 2 3 4 5 6 Bucket count 2 2 4 2 2 4 4 Bucket contens {I1,I4} {I3,I5} {I1,I5} {I1,I5} {I2,I3} {I2,I3} {I2,I3} {I2,I3} {I2,I4} {I2,I4} {I2,I5} {I2,I5} {I1, I2} {I1, I2} {I1, I2} {I1, I2} {I1, I3} {I1, I3} {I1, I3} {I1, I3} Như vậy, nếu min_sup_count là 3 thì ta có thể loại bỏ các itemset ở ngăn chứa 0, 1, 3 và 4 khỏi C2.

2.2.3.2. Giảm số giao dịch

Một giao dịch T không chứa bất kỳ một frequent k -itemset nào cả, thì T không thể một chứa frequent (k+1)-itemset. Do đó, T có thể được xoá khỏi những bước quét CSDL để tìm j-itemset, với j > k.

21

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.2.3.3. Phân đoạn

Kỹ thuật phân đoạn chỉ cần hai lần quét CSDL để tìm các frequent itemset. Nó có hai giai đoạn như Hình 2.3. Giai đoạn 1, thuật toán chia các giao dịch chính của CSDL thành n phần không trùng lắp nhau. Đối với phần, tìm tất cả các itemset của phần đó và xem đây là các frequent itemset cục bộ. Các frequent itemset cục bộ có thể hoặc không thể là frequent itemset toàn cục. Do đó tất cả frequent itemset cục bộ của tất cả các phần được xem như là các itemset ứng của viên của CSDL D. Giai đoạn 2, quét CSDL D lần thứ hai để tìm support count thực sự của mỗi itemset ứng cử viên và xác định các frequent itemset toàn cục. Kích thước của các phần và số phần được thiết lập sao cho mỗi phần khớp với bộ nhớ. Do đó, chỉ đọc CSDL D một lần với mỗi giai đoạn.

Hình 2.3: Hai giai đoạn của kỹ thuật phân đoạn

2.2.3.4. Lấy mẫu

Theo cách tiếp cận này là lấy một mẫu ngẫu nhiên S của cơ sở dữ liệu D và tiến hành tìm kiếm frequent itemset trên mẫu đó [8, 13]. Tuy nhiên, thực hiện các phương pháp này thì sẽ tạo ra sự bù trừ giữa tính chính xác và hiệu quả của phương pháp.

2.2.4. Khai phá các frequent itemset bằng cách không sinh ứng cử viên

Mặc dù, đã có nhiều cách để cải tiến hiệu quả thuật toán, tuy nhiên thuật toán Apriori có thể vẫn chịu ảnh hưởng hai chi phí lớn sau [8, 9].

Chia D thành n phần Kết hợp tất cả các frequent itemset cục bộ thành các itemsset ứng cử viên Tìm các frequent itemset trong số các ứng cử viên (2nd scan) Các frequent itemset trong D Các giao dịch trong D Tìm các frequent itemset cục bộ trong mỗi phần (1st scan)

22

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Nó có thể cần phải sinh một số khổng lồ các tập ứng cử viên. Chẳng hạn, nếu có 104 frequent 1 -itemset , thì thuật toán Apriori sẽ cần phải sinh ra hơn 107 2- itemset ứng cử viên.

- Nó có thể cần phải quét CSDL lặp đi lặp lại và kiểm tra một tập lớn các ứng cử viên bằng cách đổi sách mẫu, đặc biệt với các mẫu dài.

Để giải quyết vấn đề này, một phương pháp khai phá các frequent itemset không sinh ra các ứng cử viên được đề xuất là frequent -Pattern Growth (FP - growth). Phương pháp này dựa trên chiến lược chia để trị như sau: nén CSDL đại diện cho các frequent item vào một cây FP -Tree (Frequent pattern tree) nhưng vẫn giữ lại những thông tin kết hợp với các itemset. Sau đó nó chia CSDL được nén này thành một tập các CSDL điều kiện (conditional database) và tiến hành khai phá trên mỗi dữ liệu điều kiện riêng lẻ, mỗi conditional database được chuyển thành bài toán khai phá trên cây FP -tree.

Để thuận tiện cho việc duyệt cây, chúng ta xây dựng một bảng header item sao cho mỗi item trỏ vào một tần số xuất hiện của nó trong cây thông qua một chuỗi các liên kết nút (node -link).

Thuật toán: FP _growth

Input: Một CSDL giao dịch, min_sup_count;

Output: L tập các frequent itemset

+ Xây dựng FP -tree

Quét CDSL để tìm tập các frequent item F và support_count của chúng sắp xếp F giảm dần theo support_count ta được L.

Tạo nút gốc của FP-tree và gán nhãn "null". đối với mỗi giao dịch Trans (adsbygoogle = window.adsbygoogle || []).push({});

trong D thực hiện bước sau:

Chọn và sắp xếp các frequent item trong Trans theo thứ tự của L. Đặt [pP] là danh sách frequent itemset trong Trans đã được sắp xếp, với p là phần tử đầu tiên, P là phần còn lại trong danh sách. Gọi thủ tục insert_tree ([pP],T), được thực hiện như sau: Nếu T có con là N sao cho N.item-name = p.item-name, thì tăng biến đến (count) của

23

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

N lên 1, ngược lại tạo một nút mới là N và gán biến đếm của N là 1, gán liên kết từ T đến N (T là cha của N). Nút liên kết (node - link) của nó sẽ trỏ vào các nút có cùng item-name thông qua cấu trúc node-link. Nếu P không rỗng, gọi đệ qui Insert -tree (P, N).

+ Khai phá cây FP -tree bằng cách gọi thủ tục FP_growth (Fp_tree, null).

Thủ tục FP_growth được cài đặt như sau: Procedure FP_growth (Tree, );

1. If tree contain a single path P then

2. for each combination (denote as ) of the nodes in the path P

3. gennerate pattern   with support = minimun support of nodes in ; 4. else for each ai in header of tree{

5. generate pattern  = ai with support = ai support ;

6. construct 's conditional pattern base and then 's conditinal FP_tree Tree 7. if Tree  then

8. call FP_growth (Tree, ;}

Khi khai phá FP - Tree, chúng ta phải xuất phát từ item ở cuối L rồi đến các item trên đó.

Ví dụ: Xét CSDL D như hình 2.1 và min_sup_count = 2. Ta có cây FP - tree

đựơc xây dựng như hình 2.4.

Hình 2.4: Cây FP - tree ItemID Support count Node Link I2 7 I1 6 I3 6 I4 2 I5 2 I3:2 null {} C2 I1:2 I4:1 I4:1 I5:1 I3:2 I5:1 I3:2 I1:4 I2:7

24

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Quá trình khai phá FP – tree (Hình 2.4) được tóm tắt như Bảng 2.1.

ItemID Conditional patern

base

Conditional FP – tree

Frequent patterns generated

I5 {(I2I1:1), (I2I1I3:1)} (I2:2, I1:2) I2I5:2, I1I5:2, I2I1I5:2

I4 {(I2I1:1), I2:1} (I2:2) I2I4:2

I3 {(I2I1:2), (I2:2), (I1:2)} (I2:4, I1:2), (I1:2) I2I3:4, I1I3:4, I2I1I3:2

I1 {(I2:4)} (I2:4) I2I1:4

Bảng 2.1: Tóm tắt quá trình khai phá cây FP – Tree

Chẳng hạn, xét I3 ta có conditional pattern base của nó là ((I2I1:2), (I2:2), (I1:2)), cho nên cây conditional FP – tree của nó như hình 2.5 và sinh ra tập các frequent itemset là {I2I3:4, I1I3:4, I1I3:4, I2I1I3:2 }. (adsbygoogle = window.adsbygoogle || []).push({});

ItemID Support count Node Link I2 4 I1 4

2.3. Khai phá luật kết hợp đa thức từ CSDL giao dịch 2.3.1. Luật kết hợp đa thức [7, 8] 2.3.1. Luật kết hợp đa thức [7, 8]

Trong nhiều ứng dụng, chúng ta khó mà có thể khám phá những kết hợp mạnh giữa các Item dữ liệu ở mức trừu tượng thấp hay nguyên thuỷ, do sự thưa thớt của dữ liệu không gian đa chiều. Do đó, một hệ thống KPDL nên hỗ trợ những khả năng để khai phá luật kết hợp các mức trừu tượng khác nhau.

Ví dụ: Cho tập dữ liệu giao dịch của cho nhánh AllElectronecs như Bảng 2.2.

I1:2

I1:2 I2:4

null{}

25

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

all

computer software Printer

lattop uter color wris t pad computer accesory b/w desktop education fnancial

managemen t microsoft HP l son y mouse

TID Items purchased

T1 T2 T3 T4 T5 …..

IBM destop computer, Sony b/w printer

Microsoft educational software, Microsoft financial management software Logitech mouse computer accessory, Ergoway wrist pad computer accessory IBM destop cumputer, Microsoft financial management sofrware

IBM destop cumputer ………

Bảng 2.2

Một hệ thống phân cấp khái niệm cho các item như Hình 2.6. Hệ thống phân cấp khái niệm này có bốn mức 0,1,2,3.

Việc tìm kiếm những mẫu hàng đáng quan tâm ở mức thấp là rất khó. Chẳng hạn, nếu “IBM desop computer” hoặc “Sony b/w printer” xuất hiện trong phần rất nhỏ của các giao dịch, thì khó mà có thể tìm những sự kết hợp mạnh liên quan đến chúng. Tuy nhiên, nếu xét sự khái quát của “Sony b/w priner” “b/w printer” , thì việc tìm kiếm kết hợp mạnh giữa “IBM destop computer”“b/w printer” sẽ dễ dàng hơn giữa “IBM destop computer”“Sony b/w printer” .

M ức 0

M ức 1

M ức 2

M ức 3 logitech

26

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hay nói cách khác, những itemset chứa các item được khái quát hoá hơn thì có nhiều khả năng thoả min_sup hơn so với những itemset chứa item ở mức nguyên thủy.

2.3.2 Các phƣơng pháp khai phá luật kết hợp đa mức (adsbygoogle = window.adsbygoogle || []).push({});

Các phương pháp khai phá luật kết hợp đa mức thường sử dụng chiến lược top-down. Khởi đầu từ mức khái niệm 1 và tiếp tục tại mức thấp hơn cho đến khi không còn frequent itemset nào được tìm thấy [8]. Ở mỗi mức chúng ta có thể sử dụng bất kỳ thuật toán nào để tìm các frequent itemset, chẳng hạn thuật toán Apriori và các biến thể của chúng.

Một số phƣơng pháp:

2.3.2.1. Đồng nhất độ hỗ trợ tối thiểu cho tất cả các mức

Cùng một min_sup được sử dụng khi khai phá ở các mức trừu tượng khác nhau. Ví dụ như hình 2.7, với min_sup=5% thì các “computer” và “laptop computer” được tìm thấy là frequent, nhưng “desktop computer” thì không.

Ƣu điểm:

- Cách thực hiện đơn giản.

- Có thể tránh được việc xem xét những itemset chứa các item mà tổ tiên của nó không phải là frequent.

Nhƣợc điểm:

- Nếu min_sup quá cao, thì một số luật kết hợp có ý nghĩa ở mức thấp có thể bị bỏ qua.

- Nếu min_sup quá thấp, thì ta có thể sinh ra một số luật kết hợp không có nghĩa ở mức cao.

Hình 2.7

Mức 2

Min_sup = 5%

Computer[support=10%]

Laptop computer[support=6%] Desktop Computer[support=4%]

Mức 1

27

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.3.2.2. Giảm dần độ hỗ trợ tối thiểu ở mức thấp hơn

Mỗi mức trừu tượng có mỗi min_sup riêng. Ở mỗi mức trừu tượng thấp hơn, thì có min_sup thấp hơn.

Ví dụ: Như hình 2.8, thì có tất cả “computer”, “laptop computer”

“desktop computer” đều là frequent.

Hình 2.8

2.3.2.3. Độc lập theo từng mức ( Level – cross filtering by single item)

Một item tại mức i được xét, nếu nút cha của nó tại mức (i-1) là frequent.

Ví dụ: Như hình 2.9, hai nút con của nút “Computer” là “Laptop Computer”

“Destop Computer” sẽ không được xét, vì nút “computer” không là frequent.

Mức 1

Min_sup = 12%

Mức 2 (adsbygoogle = window.adsbygoogle || []).push({});

Min_sup = 3%

2.3.2.4. Lọc chéo mức bởi một itemset (Level – cross filtering by k-itemset)

Một k-itemset tại mức thứ i được xem xét nếu và chỉ nếu k-itemset cha của nó tại mức (k-1) là frequent.

Ví dụ: Như hình 2.10, 2-itemset “{computer, printer}” là frequent. Do đó, các nút

“{laptop computer, b/w printer}”, “{laptop coputer, color printer}”, “{desktop computer,b/w printer}”, “{desktop computer,color printer}” đều được xem xét.

Computer[support=7%]

Laptop (not examined) Desktop Computer (not examined)

Computer[support=10%]

Laptop computer[support=6%] Desktop Computer[support=4%]

Mức 1

Min_sup = 5%

Mức 2

Min_sup = 3%

28

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 2.10

2.4. Khai phá luật kết hợp đa chiều từ CSDL quan hệ và kho dữ liệu

Trong phần này, chúng tôi sẽ trình bày các phương pháp khai phá luật kết hợp đa chiều, tức là những luật có nhiều hơn một chiều hoặc vị từ (predicate)[8].

2.4.1. Luật kết hợp đa chiều

Từ đầu chương cho đến phần này, chúng ta chỉ xem xét những luật kết hợp hàm ý là đơn chiều, tức là những luật chỉ liên quan đến một vị từ buys. Chẳng hạn, luật “IBM destop computer Sony b/w printer” có thể viết lại là:

Buys(X, “IBM destop computer”) buys (X, “Sony b/w printer”) (9) Trong đó: X là khách hàng

Luật (9) được gọi là luật đơn chiều, vì nó chỉ chứa một vị từ phân biệt (buys) mặc dù nó xuất hiện nhiều lần trong luật.

Những luật có hơn một vị từ được gọi là luật kết hợp đa chiều. Ví dụ luật: age (X, “20…29”) occupation (X, “student”) buys (X, “laptop”) (10) Luật 10 được goi là luật kết hợp đa chiều vì nó chứa ba vị từ (age, occupation và buys), mỗi vị từ chỉ xuất hiện một lần trong luật . Những luật kết hợp đa chiều không có sự lặp lại của các vị từ được gọi là các luật interdimension, ngược lại gọi là các luật hybriddimension. Ví dụ luật

age (X, “20…29”) buys (X, “laptop”) buys (X, “b/w printer”) (11) là luật kết hợp là hybriddimension.

Các thuộc tính của các CSDL có thể phân thành hai loại phân hạng (categorical) và số lượng (quantitative). Miền giá trị của thuộc tính phân hạng là

Computer and printer [support=7%]

Laptop computer and b/w printer [support =1%] Laptop computer and color printer [support =2%] Destop computer and b/w printer [support =1%] Destop computer and color printer [support =3%] Mức 1 Min_sup = 5% Mức 2 Min_sup = 2%

29

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

hữu hạn và là tập không có thứ tự. Thuộc tính số lượng là những con số, các giá trị của nó có thứ tự rõ ràng. Có ba phương pháp cơ bản để khai phá luật kết hợp đa chiều tuỳ thuộc vào phương diện xử lý thuộc tính số lượng. Ba phương pháp đó là khai phá luật kết hợp đa chiều sử dụng việc rời rạc hoá tĩnh các thuộc tính số lượng, khai phá luật kết số lượng và khai phá luật dựa trên khoảng cách. (adsbygoogle = window.adsbygoogle || []).push({});

2.4.2. Khai phá luật kết hợp đa chiều sử dụng việc rời rạc hoá tĩnh các thuộc tính số lƣợng. thuộc tính số lƣợng.

Việc rời rạc hoá các thuộc tính số lượng được thực hiện trước khi khai phá, với các giá trị số được thay thế bởi các miền (range). Các thuộc tính categorical cũng có thể được khái quát hoá thành những khái niệm cao hơn nếu cần.

Dữ liệu bài toán được biến đổi để có thể được lưu trữ ở dạng khối dữ liệu (data cube). Các data cube rất phù hợp cho việc khai phá luật kết hợp đa chiều. Data cube là một mạng các khối lập phương (cuboid), cuboid là một cấu trúc dữ liệu đa chiều. Những cấu trúc dữ liệu này có thể chứa dữ liệu bài toán đã cho, cũng như kết tâp, nhóm thông tin. Ví dụ như hình 2.11 là một mạng các cuboid xác định một data cube cho các chiều age, income và buys. Các ô của cuboid n - chiều được sử dụng để lưu trữ support count cho các tập n – predicate. Cuboid cơ sở kết tập dữ liệu bài toán theo age, income và buys; 2-D cuboid (ví dụ: age, income ) kết tập theo age, income. 0 – D cuboid chứa tổng số giao dịch trong bài toán đã cho.

Hình 2.11: Mạng cuboids tạo thành một data cube 3D

0

(age) (income) (Buys)

(income, buys) (age, buys)

(age, income, buys) (age, income)

0 – D cuboid

1 – D cuboids

2 – D cuboids

30

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.4.3. Khai phá luật kết hợp số lƣợng

Luật kết hợp số lượng là luật kết hợp đa chiều với những thuộc tính số lượng được rời rạc hoá trong quá trình khai phá nhằm thoả mãn một số tiêu chuẩn như cực đại hoá độ tin cậy của các luật khai phá. Trong phần này, chúng tôi chỉ tập trung vào việc làm thế nào để khai phá những luật kết hợp số lượng có hai thuộc tính số lượng bên trái luật và một thuộc tính categorical bên phải luật. Chẳng hạn, Aqu an 1  Aquan2  Acat. Trong đó, Aquan1 và Aquan2 là xét trên các miền thuộc tính categorical. Những luật như vậy được gọi là luật kết hợp số lượng hai chiều.

Một phần của tài liệu khai phá dữ liệu trên cơ sở phương pháp luật kết hợp và ứng dụng (Trang 29 - 79)