Thuật toán SETM

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 45 - 49)

Động cơ của thuật toán SETM là mong muốn sử dụng SQL để tìm các frequent itemset [5, 15]. Gọi Ck Lk là tập itemset các ứng cử viên (frequent itemset) mà các TID của các giao dịch sinh ra để kết hợp với những itemset. Mỗi thành viên tập này có dạng:<TID, itemset>.

36

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

Giống như thuật toán AIS, thuật toán SETM cũng sinh ra các ứng cử viên ngay lúc giao dịch được đọc từ CSDL. Do vậy nó sinh ra và đếm mỗi itemset ứng cử viên mà thuật toán AIS sinh ra. Tuy nhiên, để dùng phép toán kết nối (Join) chuẩn SQL, thuật toán SETM tách việc sinh ứng cử viên ra khỏi việc đếm. SETM lưu bản sao của itemset ứng cử viên cùng với TID của giao dịch sinh ra nó trong một cấu trúc tuần tự (bước 9). Cuối mỗi bước quét, việc tính support count của các itemset ứng viên được xác định bằng cách sắp xếp (bước 12) và kết tập lại cấu trúc tuần tự này.

SETM ghi nhớ các TID của các giao dịch sinh ra cùng với các itemset ứng cử viên. Để tránh việc thao tác trên tập con, nó dùng thông tin này để xác định các frequent itemset được chứa trong giao dịch được đọc (bước 6). LkCkLk thu được bằng cách xoá các ứng cử viên không có độ hỗ trợ tối thiểu (bước 13). Giả sử rằng CSDL được sắp xếp theo thứ tự TID, SETM có thể dễ dàng tìm các frequent itemset được chứa trong một giao dịch tiếp theo bằng việc sắp xếp Lk theo TID (bước 15). Thực vậy, nó cần thăm viếng mỗi thành viên của Lk chỉ một lần theo thứ tự TID và việc sinh ứng cử viên ở các bước (5 đến 11) có thể thực hiện bằng việc sử dụng phép toán merge – join quan hệ.

Nhược điểm của phương pháp này chính là kích thước của các tập ứng cử viên

k

C . Đối với mỗi itemset ứng cử viên, tập ứng cử viên có số giao dịch bằng số phần tử mà có sự hiện diện của itemset này. Hơn nữa, khi chúng ta chuẩn bị tìm support count cho các itemset ứng cử viên ở cuối mỗi bước, Ck không còn đúng thứ tự nữa và nó cần được sắp xếp lại theo các itemset (bước 12). Sau khi đếm và tỉa bỏ số nhỏ các itemset ứng cử viên không thoả độ tối thiểu, tập kết quả Lk cần sắp xếp lại theo TID trước khi nó có thể được sử dụng cho việc sinh các ứng cử viên ở bước tiếp theo.

37

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

Thuật toán SETM

Input: Cơ sở dữ liệu D, min_sup_count.

Output: L tập các frequent itemset trong D 1. L1={frequent 1-itemset};

2. L1 ={< TID, frequent 1-itemset>}// nó được sắp xếp theo TID 3. For (k=2; Lk-1; k++) do begin

4. Ck = ;

5 forall transactions T  D do begin

6. LT = {lLk1 l.TID}; // Frequent (k-1)- itemset contained in T

7. forall frequent itemsets lT LT do begin

8. CT = 1– extensions of lT contained in t;//Candidates contained in T

9. Ck + = {< T.TID, c>c  CT};

10. end

11. end

12. Sort Ck on itemsets;

13. Delete all itemsets c  Ck for which c.count < min_sup_count giving Lk

;

14. Lk = {< l.itemset, count of l in Lk > lLk }; // combined with step 13. 15. Sort Lk on TID;

16. end

17. Return L= UkLk;

Ví dụ: Tìm các tập frequent itemset bằng thuật toán SETM với

38

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 (adsbygoogle = window.adsbygoogle || []).push({});

TID Items 100 1 3 4 200 2 3 5 300 1 2 3 5 400 2 5 Itemset Support {1} 2 {2} 3 {3} 3 {5} 3 Itemset Support {1 3} 2 {2 3} 2 {2 5} 3 {3 5} 2 Cơ sở dữ liệu L1 TID Itemsets 100 {1 3} 100 {1 4} 100 {3 4} 200 {2 3} 200 {2 5} 200 {3 5} 300 {1 2} 300 {1 3} 300 {1 5} 300 {2 3} 300 {2 5} 300 {3 5} 400 {2 5} TID Itemsets 100 {1} 100 {3} 200 {2} 200 {3} 200 {5} 300 {1} 300 {2} 300 {3} 300 {5} 400 {2} 400 {5} C2 L1 L2 Hình 3.1a

39

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

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 45 - 49)