Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Đếm hỗ trợ (Support Counting) là gì?

Đếm hỗ trợ (Support counting) là thủ tục quyết định tần suất xuất hiện (frequency of occurrence) cho mỗi tập mục ứng viên (candidate itemset) tồn tại qua bước cắt tỉa ứng viên (candidate pruning step) của hàm apriori-gen.

Một phương pháp làm điều này là so sánh mỗi giao dịch với mỗi tập mục ứng viên và làm mới số đếm hỗ trợ của các ứng viên bao gồm trong giao dịch. Phương pháp này tốn kém tính toán, đặc biệt khi số lượng giao dịch và tập mục ứng viên cao.

Một cách tiếp cận thứ hai là liệt kê các tập mục bao gồm trong mỗi giao dịch và dùng chúng để làm mới số đếm hỗ trợ của các tập mục ứng viên cụ thể của chúng. Xét một giao dịch t bao gồm năm mặt hàng, {1, 2, 3, 5, và 6}. Có (5 chọn 3) = 10 tập mục kích thước 3 bao gồm trong giao dịch này.

Các tập mục khác nhau có thể tương ứng với các tập mục ứng viên 3-itemset đang phân tích, trong trường hợp đó, số đếm hỗ trợ của chúng được tăng. Có các tập con khác của t không tương ứng với bất kỳ ứng viên nào có thể bị bỏ qua.

Một cách tiếp cận hệ thống để liệt kê các 3-itemset bao gồm trong t. Xét rằng mỗi tập mục duy trì các mặt hàng của nó theo thứ tự từ điển tăng dần (increasing lexicographic order), một tập mục có thể được liệt kê bằng cách xác định mặt hàng nhỏ nhất trước, theo sau bởi các mặt hàng lớn hơn.

Ví dụ, cho t: {1, 2, 3, 5, và 6}, tất cả các 3-itemset bao gồm trong t nên bắt đầu với mặt hàng 1, 2, hoặc 3. Không thể tạo ra 3-itemset bắt đầu với mặt hàng 5 hoặc 6 vì chỉ có hai mặt hàng trong t có nhãn lớn hơn hoặc bằng 5.

Kiến trúc tiền tố (prefix structure) chỉ ra cách các tập mục bao gồm trong một giao dịch có thể được liệt kê nhất quán, tức là bằng cách xác định các mặt hàng của chúng một một, từ mặt hàng bên trái nhất đến mặt hàng bên phải nhất.

Có thể xác định xem mỗi 3-itemset được liệt kê có tương quan với một tập mục ứng viên hiện có hay không. Nếu nó kết nối một trong các ứng viên, do đó số đếm hỗ trợ của ứng viên tương ứng được tăng.

Trong thuật toán Apriori, các tập mục ứng viên được chia thành nhiều bucket (cái) và lưu trong một cây băm (hash tree). Trong đếm hỗ trợ, các tập mục bao gồm trong mỗi giao dịch cũng được băm (hashed) vào bucket thích hợp của chúng. Thay vì so sánh mỗi tập mục trong giao dịch với mỗi tập mục ứng viên, nó chỉ so sánh chống lại các tập mục ứng viên thuộc về bucket tương tự.

Mỗi nút nội bộ của cây cần hàm băm sau, h(p): p mod 3, để quyết định nhánh nào của nút hiện tại phải được theo sau. Ví dụ, mặt hàng 1, 4, và 7 được băm vào cùng nhánh (tức là nhánh trái nhất) vì chúng có phần dư tương tự sau khi chia số cho 3. Tất cả các tập mục ứng viên được lưu tại các nút lá (leaf nodes) của cây băm.