Thuật tốn CLOSET+

Một phần của tài liệu Khai phá tập mục thường xuyên đóng trong cơ sở dữ liệu và ứng dụng (Trang 49 - 54)

trong đĩ C là tập tất cả các tập mục thường xuyên đĩng ,l là độ dài tập định danh

2.3.2Thuật tốn CLOSET+

Sau đây chúng ta tìm hiểu về thuật tốn CLOSET+ dùng để tìm ra các tập thường xuyên đĩng dựa trên cây FP-tree.

Dựa vào tính chất của tập thường xuyên đĩng cĩ một số nhận xét sau:

- Nếu một danh mục thường xuyên đều cĩ xuất hiện trong nhiều cấp f-list cục bộ với cùng độ hỗ trợ thì ta cĩ thể loại bỏ và khơng xét đến danh mục này trong những cấp f-list cục bộ trước đĩ.

- Trong quá trình phát sinh tập thường xuyên đĩng, chúng ta đảm bảo tính đĩng của tập thường xuyên bằng 2 phép kiểm tra:

+ Superset checking: Kiểm tra trong các tập thường xuyên đĩng cũ nếu cĩ tập nào là tập con của tập thường xuyên mới và cĩ cùng độ hỗ trợ thì loại bỏ tập đĩ. + Subset checking: Kiểm tra trong các tập thường xuyên đĩng cũ nếu cĩ tập nào là tập cha của tập thường xuyên mới và cĩ cùng độ hỗ trợ thì tập thường xuyên mới khơng phải là tập thường xuyên đĩng.

Thuật tốn CLOSET + sử dụng chiến lược duyệt theo chiều sâu và mơ hình chia để trị cùng với việc áp dụng tính chất của tập thường xuyên đĩng nên khơng cần phép Superset checking vẫn đảm bảo tính đĩng của các tập thường xun tìm thấy.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/

Thuật tốn CLOSET+ Hàm CLOSET+ ( )

Input: CSDL các giao dịch và ngưỡng hỗ trợ minsup

Output: Tập các tập thường xuyên đĩng FCI thỏa ngưỡng hỗ trợ minsup

Các bước thực hiện:

Bước 1: Duyệt CSDL và xây dựng cây FP-tree: Tree0

Chú ý khi xây dựng cây Tree0 tính số tích lũy trung bình của một nút. Dựa vào đĩ để đánh giá xem CSDL cĩ tỷ lệ nén cao hay thấp.

Bước 2: Nếu Tree0 cĩ tỉ lệ nén cao:

+ Sử dụng phép chiếu từ dưới lên để khai thác tập thường xuyên

+ Trong quá trình khai thác tập thường xuyên sử dụng tính chất của tập thường xuyên đĩng để giới hạn khơng gian khai thác.

+ Gọi thủ tục Checking_BottomUp mỗi lần phát sinh một ứng viên tập thường xuyên đĩng để kiểm tra tính đĩng của kết quả.

Bước 3: Nếu Tree0 cĩ tỉ lệ nén thấp:

+ Sử dụng phép chiếu từ trên xuống để khai thác tập thường xuyên

+ Trong quá trình khai thác tập thường xuyên sử dụng tính chất của tập thường xuyên đĩng để giới hạn khơng gian khai thác.

+ Gọi thủ tục Checking_TopDown mỗi lần phát sinh một ứng viên tập thường xuyên đĩng để kiểm tra tính đĩng của kết quả.

Giải thích thuật tốn:

Với CSDL cĩ tỉ lệ nén cao, FP-tree tồn cục cĩ thể được nén lại nhỏ hơn nhiều lần so với CSDL gốc. Tương tự, các phép chiếu trên cây FP-tree cũng tạo thành các FP-tree cục bộ nhỏ hơn nhiều so với chính nĩ. Vì vậy q trình khai thác tập thường xuyên khá hiệu quả. Bên cạnh đĩ thuật tốn sử dụng thêm các tính chất 1(item merging) và tính chất 2 (sub-itemset pruning) để giảm bớt khơng gian tìm kiếm.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ Ví dụ:

Với CSDL mẫu trong bảng 1.5 và minsup = 2.

Tree{T} sau khi chiếu FPtree tồn cục lên tập danh mục {T}

Hình 2.4: Áp dụng tính chất của tập thường xun đĩng

Khi thực hiện phép chiếu từ dưới lên với tập danh mục {TA:3} ta cĩ Tree{TD} và CSDL{TA} = (CW:3).

Vì mọi giao dịch chứa tập thường xuyên {TA:3} cũng chứa {CW:3} và {CW} lớn nhất cĩ thể nên theo tính chất item merging thì:

● {TA} và {CW} hợp thành tập thường xuyên đĩng {TACW:3}.

● Khơng phải xét tới các tập thường xuyên {TAC} và {TAW} vì chúng chắc chắn khơng phải là tập thường xuyên đĩng.

Tiếp đĩ, khi xét đến tập danh mục {TW:3} thì theo tính chất sub-itemset pruning thì do {TW} là tập con của tập thường xuyên đĩng {TACW} vừa tìm thấy ở trên và lại cĩ cùng độ hỗ trợ là 3, do đĩ khơng cần thực hiện phép chiếu với {TW} Cĩ thể nhận thấy, khi CSDL cĩ tỷ lệ nén cao thì nhiều khả năng xuất hiện các FPtree cục bộ là đường đơn, và do đĩ tính chất item merging sẽ cĩ cơ hội áp dụng nhiều lần để làm giảm khơng gian tìm kiếm.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ Sau khi tìm được một ứng viên tập thường xuyên đĩng thì ta sử dụng thủ tục Checking_BottomUp hoặc Checking_TopDown để kiểm tra tính đĩng của ứng viên đĩ.

Thủ tục Checking_BottomUp làm việc dựa trên cây kết quả:

Cây kết quả là cấu trúc dữ liệu dùng để lưu trữ các tập thường xuyên đĩng, nĩ bao gồm 2 cấp chỉ mục:

- Một là tên danh mục theo thứ tự trong f-list

- Hai là độ hỗ trợ của danh mục, căn cứ trên độ hỗ trợ lớn nhất của danh mục đĩ trong các tập thường xuyên đĩng tham gia vào cây.

Khi bổ sung tập thường xuyên đĩng mới vào cây, duyệt từ gốc nếu nút đã cĩ thì lấy giá trị lớn nhất thay vì tính tích lũy, nếu nút chưa cĩ thì tạo nút mới với độ hỗ trợ bằng độ hỗ trợ của tập đĩng thêm vào cây.

Ví dụ: Từ các tập thường xuyên đĩng {CDT:2}, {CWAT:3}, {CWA:4} ta xây dựng

cây kết quả như sau theo thứ tự trong f-list là {CWADT} :

Hình 2.5: Minh họa xây dựng cây kết quả

Để kiểm tra tính đĩng của tập thường xun {CWT:3} ta tìm vị trí xuất hiện trên cây của phần tử cuối theo thứ tự f-list là nút {T:3}, sau đĩ duyệt dần về gốc kiểm tra thấy tất cả các phần tử của {CWT:3} đều xuất hiện hết trong cây, do đĩ {CWT:3} khơng phải là tập thường xuyên đĩng.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/

Hàm Checking_BottomUp( )

Input: Cây kết quả RTree lưu trữ tập thường xuyên đĩng, tập thường xuyên X Output: Kết luận tập X cĩ phải là tập thường xuyên đĩng hay khơng

Các bước thực hiện:

Bước 1: Chọn phần tử cuối cùng trong tập danh mục của X, xác định vị trí xuất

hiện của nĩ trên cây cĩ giá trị trùng sup(X).

Bước 2: Xác định nút trên cây và duyệt dần về gốc để kiểm tra xem tất cả các

danh mục trong X cĩ lần lượt xuất hiện hết trong cây hay khơng?

Bước 3: Nếu khơng hết, kết luận X là tập thường xuyên đĩng và phải bổ sung

vào cây RTree. Ngược lại thì khơng phải là tập thường xuyên đĩng.

Khi CSDL cĩ tỷ lệ nén thấp, chúng ta sử dụng thủ tục Checking_TopDown để kiểm tra một tập thường xuyên cĩ phải là tập thường xuyên đĩng hay khơng dựa trên cây FP-tree tồn cục.

Hàm Checking_BottomUp( )

Input: Cây FP-Tree tồn cục, tập thường xuyên X

Output: Kết luận tập X cĩ phải là tập thường xuyên đĩng hay khơng.

Các bước thực hiện:

Bước 1: max = thứ tự lớn nhất trong số các mục trong X theo f-list

Bước 2: Duyệt lần lượt các giao dịch Ti cĩ chứa tập thường xuyên X dựa trên cây FP-tree và ghi nhận những mục cĩ thứ tự nhỏ hơn max theo f-list thì tích lũy độ hỗ trợ của mục đĩ.

Bước 3: Nếu cĩ mục nào ở bước 2 cĩ độ hỗ trợ bằng sup(X) thì X khơng phải

tập thường xuyên đĩng. Ngược lại X là tập đĩng.

2.4 Kết luận chƣơng 2

Chương này đã trình bày cơ sở tốn học của tập đĩng, bao đĩng của tập mục và kết nối Galois. Trong chương cũng đã trình bày chi tiết các định nghĩa, tính chất của tập mục thường xuyên đĩng, cây IT-tree và FP-tree làm cơ sở cho khai phá tập mục thường xuyên đĩng. Đặc biệt chương này đã trình bày chi tiết thuật tốn CHARM và thuật tốn CLOSET+. Đây là các thuật tốn điển hình trong khai phá tập mục thường xuyên đĩng. Qua các bước thực hiện của thuật tốn và các ví dụ đã xét cho thấy các thuật tốn trên tìm kiếm tập mục thường xuyên đĩng mất ít thời gian hơn, số tập mục thường xuyên đĩng cũng ít hơn nhiều các tập mục thường xuyên khi sử dụng các thuật tốn Apriori hay FP-growth để khai phá tập mục thường xuyên.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/

CHƢƠNG 3: CHƢƠNG TRÌNH THỰC NGHIỆM ỨNG DỤNG TRONG LĨNH VỰC Y TẾ

Một phần của tài liệu Khai phá tập mục thường xuyên đóng trong cơ sở dữ liệu và ứng dụng (Trang 49 - 54)