CÁC THUẬT TOÁN TốM LUẬT KẾT HỢP KHÁC

Một phần của tài liệu đồ án công nghệ thông tin Khai phá cơ sở dữ liệu gia tăng Trình bày phương pháp khai phá cở sở dữ liệu thay đổi theo thời gian (cơ sở dữ liệu gia tăng). (Trang 33)

1.5.1 Thuật toỏn khai phỏ luật kết hợp khụng cần sinh Candidate

Thuật toỏn FP-Growth

Apriori là thuật toỏn kinh điển, đơn giản song hiệu năng khai phỏ khụng cao. Cú hai nguyờn nhõn khiến Apriori khụng đạt được hiệu năng khai phỏ mong muốn. Thứ nhất, thuật toỏn phải xử lớ sự bựng nổ tổ hợp khi tớnh cỏc ứng viờn. Chẳng hạn 1041 – LargeItemset sẽ sinh ra 1072 – Candidate. Để phỏt hiện Large Itemset kớch thước 100, Apriori phải sinh 1030 Candidate. Thứ hai, thuật toỏn phải duyệt cơ sở nhiều lần. Nếu kớch thước dài nhất của cỏc Transaction là n thỡ thuật toỏn phải duyệt cơ sở dữ liệu n+1 lần.

Vậy cỳ cỏch nào khụng cần sinh Candidate mà vẫn tỡm được tập cỏc Large Itemset như mong muốn?

FP – Growth là thuật toỏn đi ngược lại với tư tưởng của thuật toỏn Apriori. FP- Growth hoàn toàn khụng cần sinh Candidate trong quỏ trỡnh tỡm Large

ỨNG DễNG Lí THUYẾT LUẬT KẾT HỢP KHAI PHÁ DỮ LIỆU TÁC NGHIỆP

Itemset. Thuật toỏn này tự xõy dựng một cấu trỳc dữ liệu gọi là Cõy Frequent – Pattern (Cõy FP) và đưa ra phương phỏp khai phỏ hiệu quả trờn cấu trỳc dữ liệu FP – Tree. Phương phỏp mà FP_Growth đưa ra là ý tưởng chia để trị: Chia cụng việc thành cỏc cụng việc con nhằm cố gắng giảm thiểu thao tỏc duyệt toàn bộ dữ liệu bằng cỏch chỉ duyệt một phần cơ sở dữ liệu.

Thuật toỏn sinh Cõy FP

Đầu vào : Cơ sở dữ liệu D

Đầu ra : Cõy FP

Thuật toỏn

1. Duyệt D một lần, tỡm 1-Large Itemsets

2. Sắp xếp cỏc Large Itemset tỡm được theo thứ tự giảm dần của tần suất xuất hiện

3. Duyệt D lần thứ hai, xõy dựng cõy FP

Hỡnh 2-12 Thuật toỏn Sinh cõy FP

Tư tưởng thuật toỏn FP – Growth sẽ sử dụng cõy FP, thụng qua cỏc bước gọi đệ qui để xõy dựng đường đơn Frequent. Cỏc Item trờn Đường đơn Frequent được dựng để tổ hợp ra cỏc Large Itemset thoả món. Quỏ trỡnh sinh đường đơn Frequent gồm cỏc bước chớnh sau:

1. Xõy dựng cỏc mẫu cơ sở cú điều kiện (Conditional Pattern Base) cho mỗi item (node) trờn cừy FP.

2. Xõy dựng cỏc cừy FP cú điều kiện từ cỏc mẫu cơ sở.

3. Thực hiện cụng việc (đệ qui) trờn với mỗi cõy FP cú điều kiện. 4. Khi cõy FP rỗng hoặc chỉ cú một đường đơn thỡ dừng. Đường đơn

đỳ chớnh là đường đơn Frequent.

Thuật toỏn FP – Growth

Đầu vào : FP-Tree, f_is (frequent itemset)

Đầu ra : Cỏc Large Itemset

Thuật toỏn

1.If Cõy FP chứa đường đơn P (Single Path)

2.thenFor alltổ hợp của cỏc nỳt trờn P 3. Sinh Pattern f_is

4.else với mỗi item I trờn header 5. Sinh Pattern f_is i

6. Xõy dựng cõy cFP cú điều kiện của Pattern bằng cỏch nối cỏc đường và giữ lại cỏc node xuất hiện nhiều hơn Support lần

7.If (FP-Tree γ 0)

8.then call FP-Growth (cFP-Tree, pattern)

Hỡnh 2-13 Thuật toỏn FP - Growth (adsbygoogle = window.adsbygoogle || []).push({});

Thớ dụ minh hoạ

Vớ dụ: Xột CSDL giao dịch như trong bảng 4

Bảng 1: Cơ sở dữ liệu giao dịch của vớ dụ về FP-Tree

TID Items Frequent item (đó sắp thứ tự) 100 f, a, c,d, g, i, m, p f, c, a, m, p

200 a, b, c,f, l, m,o f, c,a, b, m 300 b, f, h, j, o f, b

400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n f, c, a, m, p

ỨNG DễNG Lí THUYẾT LUẬT KẾT HỢP KHAI PHÁ DỮ LIỆU TÁC NGHIỆP

Bảng 2: Khai phỏ tất cả cỏc pattern bởi tạo ra cơ sở (sub)-pattern điều kiện

cơ sở pattern điều kiện FP-Tree điều kiện p {(f:2,c:2,a:2,m:2), (c:1,b;1)} {(c:3) | m} m (f:4,c:3,a:3,m:2),(f:4,c:3,a:3,b:1,m:1) ((f:3,c:3,a:3) | m) b (f;4,c:3,a:3,b:1), (f:4,b:1), (c:1,b:1) φ a (f:3),(c:3) {(f:3),(c:3)|a} c (f:3) {(f:3) |c} f φ φ Nhận xột

• Apriori phải duyệt cơ sở dữ liệu mỗi lần sinh tập Candidate. Trong khi đú, FP – Growth chỉ cần duyệt cơ sở dữ liệu 2 lần và cỏc thao tỏc được thực hiện trờn cấu trỳc dữ liệu riờng.

• Apriori phải sinh Candidate, FP – Growth khụng cần sinh Candidate nờn khối lượng dữ liệu cần thao tỏc là ớt hơn so với trường hợp của Apriori. • FP – Growth dựng nhiều thao tỏc phức tạp hơn Apriori.

• FP – Growth chạy nhanh hơn Apriori. Đặc biệt trong cỏc trường hợp ngưỡng Support nhỏ (< 0.20 %). Dưới đõy là kết quả thử nghiệm hiệu năng thuật toỏn trờn cựng một cơ sở dữ liệu với cỏc ngưỡng Support khỏc nhau.

1. Bắt đầu bằng item cuối cựng (p)

2. Đi theo con trỏ và duyệt cỏc đường cú chứa p. Lấy phần cũn lại trờn đường (khụng chứa p) làm Cơ sở cú điều kiện. Thu được 2 cơ sở fcam: 1 và cb: 1

3. Xõy dựng cõy FP bằng cỏch hợp nhất cỏc đường và giữ lại cỏc nốt xuất hiện hơn p lần. Kết quả là c: 3 4. Tiếp tục với item cuối cựng tiếp theo: m

5. Quỏ trỡnh lặp lại theo cỏc bước 2, 3. Thu được kết quả như sau:

Hỡnh 2-14 So sỏnh hiệu năng FP – Growth và Apriori

1.5.2 Khai phỏ sử dụng cõu lệnh truy vấn SQL Thuật toỏn SETM

Thuật toỏn SETM là đại diện tiờu biểu của lớp thuật toỏn khai phỏ luật kết hợp sử dụng SQL cho việc tớnh toỏn Large Itemset. Để tận dụng toỏn tử kết nối Join của SQL, SETM tỏch rời việc sinh Candidate khỏi việc đếm. Tập cỏc ứng viờn được lưu lại trong một bảng cựng với TID của Transaction. Tại điểm kết của mỗi giai đoạn, số đếm Support của cỏc Candidate được xỏc định bằng lệnh count và được cập nhật vào bảng này.

Thuật toỏn SETM

Đầu vào : Tập cỏc Transaction D, ngưỡng support tối thiểu MinSup

Đầu ra : Tập cỏc Large Itemset trờn D.

Thuật toỏn

1. L1 = {large 1 - itemsets};

2. L1 = {Large 1 – itemsets được sắp xếp trờn TID} 3. For (k=2; Lk-1 ≠ 0, k ++) do Begin

ỨNG DễNG Lí THUYẾT LUẬT KẾT HỢP KHAI PHÁ DỮ LIỆU TÁC NGHIỆP

4. Ck = 0

5. Forall Transactions thuộc D do Begin

6. Lt = {1∈ Lk-1 | l.TID = t.TID} // large (k-1) – itemset chứa trong t 7. For all large itemset lt∈ Ltdo Begin (adsbygoogle = window.adsbygoogle || []).push({});

8. Ct = 1-extension of lt chứa trong t; // candidate trong t 9. Ck = Ck + {t.TID, c> | c ∈ Ct };

10. End

11. End

12. Sắp xếp Ck theo itemsets

13. Lk = Kết quả của phộp xoỏ mọi itemset c ∈ Ck cú c.count < minsup 14. Lk = {<l.itemset, số đếm của l trong Lk> | l ∈ Lk }

15. Sắp xếp Lk theo TID 16. End

17. Kết quả = Uk Lk

Hỡnh 2-15 Thuật toỏn SETM

Nhận xột

• Thuật toỏn SETM cú nhược điểm là phải lưu trữ Candidate và phải thực hiện nhiều thao tỏc sắp xếp.

• Thuật toỏn SETM phải duyệt toàn bộ cơ sở dữ liệu để sinh Candidate và lực lượng Candidate rất lớn, trong đú cú nhiều Candidate thừa mà ta biết chắc nú khụng phải là Large Itemset.

Một phần của tài liệu đồ án công nghệ thông tin Khai phá cơ sở dữ liệu gia tăng Trình bày phương pháp khai phá cở sở dữ liệu thay đổi theo thời gian (cơ sở dữ liệu gia tăng). (Trang 33)