Cấu trúc dữ liệu cho thuật toán [9]

Một phần của tài liệu Khai phá dữ liệu và thuật toán khai phá luật kết hợp (Trang 61)

Để tăng hiệu quả cho việc tìm các tập mục thường xuyên và tính độ hỗ trợ cho các tập ứng cử thuật toán sử dụng cấu trúc cây băm để lưu trữ các tập mục ứng cử Ck. Mỗi nút của cây băm hoặc chứa một danh sách của các mục

(nút lá) hoặc là một bảng băm. Trong mỗi nút, mỗi cụm (bucket) của bảng băm trỏ tới một nút khác. Gốc của cây băm được xem có độ sâu l. Nút trong ở độ sâu d thì con trỏ trỏ tới các nút ở độ sâu d + 1. Các tập mục được lưu trữ trong các nút lá. Tất cả các nút được tạo ra ban đầu đều là nút lá. Khi số tập mục trong các nút lá vượt quá ngưỡng cho trước, thì nút lá được chuyển thành nút trong. Để thêm một tập mục c vào cây, chúng ta xuất phát từ gốc duyệt trên cây cho đến khi tìm được nút lá phù hợp như sau: ở tại mỗi nút trong ở độ sâu d, chúng ta quyết định đi theo nhánh nào bằng cách sử dụng hàm băm đối với mục c[d] của tập mục c.

Để tìm tập mục ứng cử có chứa trong giao tác T, chúng ta bắt đầu từ nút gốc: nếu là nút lá chúng ta xét xem có tập ứng cử nào trong giao tác T không, chúng ta xem xét các tập mục trong nút lá có được chứa trong T không để trả lời. Trường hợp ở nút trong và là kết quả của việc áp dụng hàm băm cho mục thứ i của giao tác T, thì ta băm tiếp mục (i +1) trong giao tác T và áp dụng đệ quy thủ tục cho đến khi tìm được cụm có chứa tập ứng cử trong giao tác.

Vậy thuật toán Apriori là thuật toán khai phá luật kết hợp trên cơ sở sinh các tập tập ứng cử để tìm các tập mục thường xuyên từ những ứng cử đó. Thuật toán được đưa ra đã thúc đẩy phương pháp khai phá luật kết hợp phát triển và sinh các luật kết hợp nhanh. Thuật toán là cơ sở cho sự phát triển của các thuật toán sau này.

Một phần của tài liệu Khai phá dữ liệu và thuật toán khai phá luật kết hợp (Trang 61)

Tải bản đầy đủ (PDF)

(124 trang)