Nhận xét về thuật toán gia tăng 1

Một phần của tài liệu Một số phương pháp khai phá luật kết hợp trên cơ sở dữ liệu gia tăng (Trang 36 - 37)

Thuật toán Gia tăng 1 giải quyết được một số vấn đề sau:

 Khi khai phá tập mục dữ liệu thường xuyên trên cơ sở dữ liệu giao tác T, ta thường xuyên phải tính toán độ hỗ trợ của các tập ứng viên để tìm ra tập mục thường xuyên. Thuật toán Gia tăng 1 cho phép ta khai phá được các tập mục dữ liệu thường xuyên theo các ngưỡng khác nhau mà không cần phải tính toán lại độ hỗ trợ lại từ đầu. Điều này là nhờ vào việc sử

dụng cấu trúc dữ liệu SC = {(X, Sup) | X là tập ứng viên và Sup =

Support(X)}. Như vậy, ta chỉ mất công khi tìm tập mục dữ liệu thường

xuyên theo một ngưỡng S0 ban đầu. Khi đó thuật toán sẽ tính độ hỗ trợ của tất cả các tập ứng viên và lưu vào SC. Trong những lần sau trở đi, khi tìm tập mục dữ liệu thường xuyên theo ngưỡng Si bất kỳ, công việc sẽ trở nên nhanh chóng hơn nhờ kế thừa từ tập SC đã có. Nếu Si≥ S0 thì ta chỉ việc lọc ra trong SC những X mà có Sup ≥ Si. Trong trường hợp ngược lại, Si≤ S0, ta chỉ cần tính độ hỗ trợ của các tập ứng viên trong SC.

 Theo thời gian, dữ liệu tăng thêm tập các giao tác mới T ∪T’:

-Thuật toán Gia tăng 1 không cần phải phân lớp dữ liệu lại từ đầu trên cơ sở dữ liệu sau khi gia tăng mà chỉ phân lớp dữ liệu trên T’ và tìm được Pi =Pi ∪ P’i.

-Thuật toán Gia tăng 1tính toán lại độ hỗ trợ của các tập ứng viên trong SC chỉ dựa vào tập dữ liệu tăng thêm T’, không cần tính toán lại từ đầu, do đó tiết kiệm được nhiều thời gian tính toán.Khi đó, với (X, Sup)

∈ SC cho biết độ hỗ trợ của X trong T, Sup1 là độ hỗ trợ của X trong T’ thì độ hỗ trợ của X trong T ∪ T’ là Sup + Sup1.

So sánh thuật toán Gia tăng 1 với thuật toán Apriori:

Thuật toán Apriori và thuật toán Gia tăng 1 đều là những thuật toán duyệt theo chiều rộng của không gian tìm kiếm. Duyệt theo chiều rộng là duyệt qua tập dữ liệu ban đầu để tính độ hỗ trợ của tập một mục dữ liệu, từ đó chuẩn bị cho việc tính độ hỗ trợ của tập k mục dữ liệu (k ≥2). Phương pháp xác định độ hỗ trợ của tập mục dữ liệu lại được phân thành hai cách:

Cách 1: Đếm số giao tác trong cơ sở dữ liệu chứa X.

Cách 2: Tính phần giao của các tập định danh giao tác chứa X.

Thuật toán Apriori tính độ hỗ trợ của tập mục dữ liệu theo cách 1. Tại mỗi Ck, thuật toán Apriori phải quét toàn bộ cơ sở dữ liệu để đếm xem tập k mục dữ liệu xuất hiện trong bao nhiêu giao tác.Thao tác này là một sự lãng phí.Thuật toán Gia tăng 1 do phân cơ sở dữ liệu giao tác thành các lớp Pi, việc tính độ hỗ trợ của một tập ứng viên chỉ là phép giao của một số Pi tương ứng, tốc độ xử lý sẽ nhanh hơn.

Với việc phân chia cơ sở dữ liệu giao tác thành m lớp Pi (i =1, …, m) cộng với kỹ thuật phân hoạch thành các lớp tương dương, [3]đã chứng minh được rằng: Với cơ sở dữ liệu giao tác T trên tập thuộc tính I, ||T|| = m và ||I|| = n. Ck là tập ứng viên có k mục dữ liệu. Tỷ lệ trung bình thời gian thực hiện việc tìm các tập thường xuyên trong Ck

giữa thuật toán Gia tăng 1 và Apriori là tương đương k/n.

Như vậy, khi n lớn, số lượng mục dữ liệu trong tập ứng viên nhỏ (k nhỏ) thì thuật toán Gia tăng 1 chạy nhanh hơn thuật toán Apriori nhiều lần. Thông thường, ma trận biểu diễn cơ sở dữ liệu giao tác của siêu thị có số hàng và số cột rất lớn (hàng tỷ hàng, hàng nghìn cột), tuy nhiên nó lại là ma trận cực thưa. Bởi vì trong hàng ngàn mặt hàng của siêu thị (số mục dữ liệu, nhưng mỗi hóa đơn (một giao tác), khách hàng chỉ mua một số mặt hàng (nhiều lắm là vài chục). Do đó, trong thực tế tỷ lệ k/n là rất nhỏ nên việc áp dụng thuật toán Gia tăng 1 cho bài toán bán hàng là rất hiệu quả.

Một phần của tài liệu Một số phương pháp khai phá luật kết hợp trên cơ sở dữ liệu gia tăng (Trang 36 - 37)