Thu ậ t toán PHP

Một phần của tài liệu Luận văn: Nghiên cứu và áp dụng một số kỹ thuật khai phá dữ liệu với cơ sơ sở dữ liệu ngành Thuế Việt Nam. docx (Trang 59 - 63)

(Thuật toán băm và cắt tỉa hoàn hảo – perfect hashing and pruning) Trong thuật toán DHP, nếu có thểñịnh nghĩa một bảng băm lớn ñể mỗi itemsets khác nhau ñược ánh xạ tới các vị trí khác nhau trong bảng băm, thì các mục của bảng băm cho số ñếm thực sự của mỗi itemset trong CSDL. Trong trường hợp ñó, ta không có bất kỳ false positives nào và kết quả là xử lý quá mức cho việc ñếm số lần xuất hiện của mỗi itemset ñược loại bỏ. Ta ñã biết lượng dữ liệu phải duyệt trong quá trình phát hiện large itemset là một vấn ñề liên quan ñến hiệu năng. Giảm số lượng các giao dịch phải duyệt và cắt bớt số các items trong mỗi giao dịch sẽ cải tiến ñược hiệu quả khai phá dữ liệu trong các chặng sau.

Thuật toán này dùng băm hiệu quả cho bảng băm ñược sinh ra ở mỗi lần duyệt và giảm kích thước của CSDL bằng cách cắt tỉa các giao dịch không chứa bất kỳ frequent item nào. Do vậy thuật toán ñược gọi là Perfect Hashing

and Pruning (PHP). Thuật toán như sau:

Trong lần duyệt ñầu tiên, bảng băm với kích thước bằng với các items riêng biệt trong CSDL ñược tạo ra. Mỗi item riêng biệt trong CSDL ñược ánh

xạ tới vị trí khác nhau trong bảng băm, và phương pháp này ñược gọi là

perfect hashing. Phương thức add của bảng băm thêm một mục mới nếu một mục cho item x chưa tồn tại trong bảng băm và khởi tạo ñếm của nó bằng 1, nếu không nó tăng số ñếm của x trong bảng lên 1. Sau lần duyệt ñầu tiên, bảng băm chứa số chính xác lần xuất hiện của mỗi item trong CSDL. Chỉ duyệt một lần qua bảng băm, nằm trong bộ nhớ, thuật toán dễ dàng sinh ra các frequent 1-itemsets. Sau thao tác ñó, phương thức cắt tỉa prune của bảng băm cắt tỉa tất cả các mục mà ñộ hỗ trợ của chúng nhỏ hơn ñộ hỗ trợ cực tiểu.

Trong các lần duyệt tiếp theo, thuật toán cắt tỉa CSDL bằng cách loại bỏ các giao dịch không có items nào trong frequent itemsets, và cũng cắt các items mà không là frequent khỏi các giao dịch. Cùng lúc, nó sinh ra các candidate k-itemsets. Quá trình này tiếp tục ñến khi không có Fk mới nào ñược tìm ra. Thuật toán cho thấy trong hình 2.7. Thuật toán này tốt hơn thuật toán DHP vì sau khi hình thành bảng băm, nó không cần ñến số lần xuất hiện của các candidate k-itemsets như trong thuật toán DHP. Thuật toán cũng tốt hơn thuật toán Apriori vì tại mỗi lần lặp, kích thước của CSDL ñược giảm ñi, và nó ñem lại hiệu năng cao cho thuật toán khi kích thước của CSDL rất lớn mà số lượng các frequent itemsets lại tương ñối nhỏ.

Thêm nữa, sau mỗi lần lặp, CSDL Dk chứa các giao dịch chỉ với các frequent items. Thuật toán hình thành tất cả các tập con k items trong mỗi giao dịch và chèn tất cả các tập con k-1 lớn (large) vào bảng băm. Vì lý do này thuật toán không ñể thiếu bất kỳ frequent itemset nào. Vì thuật toán thực hiện cắt tỉa trong khi chèn các candidate k-itemsets vào Hk, kích thước của bảng băm sẽ không lớn và vừa với bộ nhớ.

Một phần của tài liệu Luận văn: Nghiên cứu và áp dụng một số kỹ thuật khai phá dữ liệu với cơ sơ sở dữ liệu ngành Thuế Việt Nam. docx (Trang 59 - 63)