Apriori là thuật toán đã mạnh mẽ giải quyết sự bùng nổ tổ hợp (combinatorial explosion) của việc tạo tập mục thường xuyên. Nó thực hiện điều này bằng cách dùng nguyên tắc Apriori (Apriori principle) để rút gọn không gian tìm kiếm mũ (exponential search space). Mặc dù cải thiện hiệu suất quan trọng, thuật toán mang lại chi phí I/O đáng kể vì nó cần tạo nhiều lần lặp (passes) qua bản ghi giao dịch (transaction recordset).
Hành động của thuật toán Apriori có thể suy giảm bản chất cho các tập dữ liệu dày đặc (dense data sets) vì chiều rộng giao dịch tăng lên (increasing width of transactions). Một số phương pháp đã được tạo ra để vượt qua những khuyết điểm này và cải thiện hiệu quả của thuật toán Apriori.
Sau đây là mô tả cấp cao của các phương pháp này:
Duyệt lưới tập mục (Traversal of Itemset Lattice)
Tìm kiếm tập mục thường xuyên có thể được xem như một việc duyệt trên lưới tập mục (itemset lattice). Các phương pháp tìm kiếm được thuê bởi thuật toán quyết định cách cấu trúc lưới được duyệt trong giai đoạn tạo tập mục thường xuyên. Một số phương pháp tìm kiếm tốt hơn những cái khác, tùy thuộc trên thành phần của tập mục thường xuyên trong lưới.
Tổng quát đến Cụ thể vs Cụ thể đến Tổng quát (General-to-Specific versus Specific-to-General)
Thuật toán Apriori dùng phương pháp tìm kiếm tổng quát đến cụ thể (general-to-specific search approach), nơi các cặp tập mục thường xuyên (k-1)-itemsets được kết hợp để thu được tập mục ứng viên k-itemsets. Phương pháp tìm kiếm tổng quát đến cụ thể này hiệu quả, miễn là độ dài tối đa của một tập mục thường xuyên không quá dài.
Một phương pháp tìm kiếm cụ thể đến tổng quát (specific-to-general search approach) tìm kiếm các tập mục thường xuyên cụ thể hơn trước, trước khi khám phá các tập mục thường xuyên tổng quát hơn. Phương pháp này có lợi để tìm tập mục thường xuyên tối đa (maximal frequent itemsets) trong giao dịch dày đặc, nơi biên tập mục thường xuyên (frequent itemset border) nằm gần đáy lưới.
Nguyên tắc Apriori có thể được dùng để cắt tỉa (prune) một số tập con của tập mục thường xuyên tối đa. Cụ thể, nếu một tập mục ứng viên k-itemset là thường xuyên tối đa, nó không phải xác định bất kỳ tập con nào của nó kích thước k-1. Nhưng nếu tập mục ứng viên k-itemset là không thường xuyên, nó cần kiểm tra tất cả tập con k-1 của nó trong lần lặp tiếp theo.
Một phương pháp khác là kết hợp cả phương pháp tìm kiếm tổng quát đến cụ thể và cụ thể đến tổng quát. Cách tiếp cận hai chiều (bidirectional approach) này cần nhiều không gian hơn để lưu các tập mục ứng viên, nhưng nó có thể hỗ trợ nhanh chóng xác định biên tập mục thường xuyên.
Lớp tương đương (Equivalence Classes)
Có một phương pháp khác để تصور việc duyệt là trước tiên phân hoạch lưới thành một nhóm các nút rời rạc (hoặc các lớp tương đương). Một thuật toán tạo tập mục thường xuyên tìm kiếm tập mục thường xuyên bên trong một lớp tương đương cụ thể trước trước khi chuyển sang lớp tương đương khác.
Phương pháp theo cấp độ (level-wise approach) được dùng trong thuật toán Apriori có thể được coi là phân hoạch lưới trên cơ sở kích thước tập mục; tức là, thuật toán tìm một số tập mục 1-itemset thường xuyên trước trước khi hoạt động đến tập mục kích thước cao hơn. Các lớp tương đương cũng có thể được biểu diễn theo tiền tố (prefix) hoặc hậu tố (suffix) nhãn của một tập mục.