Apriori là một thuật toán khá hiệu quả trong việc tìm kiếm tập mục phổ biến, tuy nhiên thuật toán này còn tồn đọng một số vấn đề như:
Phải duyệt CSDL nhiều lần, do mỗi lần sinh tập mục ứng viên phải duyệt CSDL một lần.
Chưa tối ưu hóa được tập các ứng viên, vì thế số lượng các ứng viên trong tập mục là khá lớn.
Hai vấn đề này làm tăng chi phí khi thực hiện thuật toán. Có nhiều cải tiến của thuật toán Apriori được đề xuất để nâng cao hiệu quả của thuật toán ban đầụ Một số cải tiến đó được tóm lược như sau[9]:
(1) Kỹ thuật dựa trên bảng băm (hash-based technique): Thực hiện băm các tập mục thành các nhóm tương ứng. Kĩ thuật hàm băm có thể được dùng để giảm kích thước của k-tập mục ứng viên, Ck, với k > 1.
Ví dụ, khi quét mỗi giao dịch trong CSDL để sinh tập mục phổ biến 1- itemset F1 từ tập các ứng viên C1, chúng ta có thể sinh tất cả các tập mục phổ biến F2 với mỗi giao dịch, băm chúng vào các nhóm khác nhau trong cấu trúc
bảng băm, và tăng số đếm các nhóm tương ứng. Một tập mục có độ dài 2-
itemsets tương ứng với nhóm có số đếm 2 trong bảng băm dưới mức ngưỡng độ hỗ trợ tối thiểu thì không thể là phổ biến và vì vậy có thể loại bỏ khỏi tập ứng viên. Kỹ thuật dựa trên bảng băm có thể giảm số lượng ứng viên tập k- item được (đặc biệt khi k = 2).
35
Bảng băm này được sinh bằng cách duyệt các giao dịch trong CSDL khi xác định tập F1 từ C1. Nếu độ hỗ trợ tối thiểu bằng 3, thì các tập mục trong các nhóm 0, 1, 3, và 4 không thể là phổ biến và do vậy chúng không thể có trong
C2.
(2) Giảm số lần quét giao dịch (transaction reduction): Giảm số lượng giao dịch phải duyệt ở lần lặp tiếp theọ Một giao dịch không chứa tập mục phổ biến k-item nào thì cũng không thể chứa tập phổ biến k+1-item. Do đó, một
giao dịch thật sự có thể được đánh dấu hoặc loại bỏ trong lần duyệt CSDL tiếp theo với các tập mục j-item, với j > k, sẽ không cần đến nó nữạ
(3) Phân hoạch (partitioning): Phân chia dữ liệu để tìm tập mục ứng viên k- item. Kỹ thuật phân hoạch chỉ duyệt CSDL hai lần để khai phá tập mục phổ biến. Kỹ thuật này bao gồm hai giai đoạn.
Trong giai đoạn I, thuật toán chia nhỏ tập giao dịch của D thành n phân vùng không giao nhaụ Nếu ngưỡng độ hỗ trợ tối thiểu cảu các giao dịch trong D là
min_sup, thì độ hỗ trợ đối với một phân vùng là min_sup số giao dịch trong
phân vùng đó. Với mỗi phân vùng, tất cả các tập mục phổ biến bên trong
phân vùng đó được tìm thấy, gọi là tập mục phổ biến địa phương. Thủ tục sử dụng cấu trúc dữ liệu đặc biệt đó là, đối với mỗi tập mục, lưu trữ các định danh TID của các giao dịch chứa các mục trong tập mục. Điều này cho phép tìm kiếm tất các tập phổ biến cục bộ k-item, với k = 1, 2, …, chỉ trong một
36
Hình 2.9: Khai thác bằng cách phân hoạch dữ liệụ
Một tập mục phổ biến địa phương có thể hoặc không phổ biến đối với toàn bộ CSDL D. Bất kỳ tập mục phổ biến đối với CSDL D phải là một tập mục phổ biến trong ít nhất một trong những phân vùng. Do đó, tất cả các tập mục phổ biến địa phương là tập mục ứng cử viên đối với D. Việc thu thập các tập mục phổ biến từ tất cả phân vùng chuyển thành tập mục ứng viên toàn cục đối với D.
Trong giai đoạn II, lần duyệt CSDL D thứ hai được tiến hành với độ hỗ trợ thực tế của mỗi ứng viên được đánh giá theo thứ tự để xác định tập mục phổ biến toàn cục. Kích thước phân vùng và số phân vùng được thiết lập sao cho mỗi phân vùng có thể vừa vặn với bộ nhớ chính và do đó được đọc một lần duy nhất ở mỗi phần.
(4) Lấy mẫu (sampling): Khai phá trên một tập con của dữ liệu cho trước. Ý tưởng cơ bản của cách tiếp cận này là chọn ngẫu nhiên một mẫu S của CSDL D, và rồi tìm các tập mục phổ biến trong S thay vì D. Kích thước mẫu của S phải đảm bảo để tìm kiếm tập mục phổ biến trong S có thể thực hiện trong bộ nhớ chính và cũng chỉ cần một lần duyệt toàn bộ các giao dịch trong S. Bởi vì chúng ta tìm kiếm các tập mục phổ biến trong S thay vì trong D, nên có khả năng chúng ta sẽ bỏ lỡ một số tập mục phổ biến toàn cục. Để làm giảm bớt việc bỏ lỡ các tập mục phổ biến chúng ta sử dụng ngưỡng độ hỗ trợ thấp hơn độ hỗ trợ tối thiểu để tìm các tập mục phổ biến địa phương cho S (kí hiệu Ls
). Phần còn lại của CSDL sau đó được dùng để tính toán tần suất thực tế của mỗi tập mục trong Ls. Một kỹ thuật dùng để xác định có tất cả các tập mục phổ biến toàn cục có trong Ls không. Nếu Ls thật sự chứa tất cả các tập mục phổ biến trong D, thì chỉ cần một lần duyệt D. Nếu không, lần thứ hai có thể thực hiện để tìm các tập mục phổ biến mà bỏ lỡ trong lần duyệt thứ nhất. (5) Đếm tập mục động (dynamic itemset counting): Thêm tập mục ứng viên
tại các thời điểm khác nhau trong quá trình duyệt CSDL. Một kỹ thuật đếm tập mục động được đề xuất trong CSDL là được phân vùng thành các khối
37
được đánh dấu bởi các điểm bắt đầụ Trong cải tiến này, tập mục ứng viên mới có thể được thêm vào tại một vài thời điểm bắt đầu, không giống như Apriori, xác định các tập ứng viên mới chỉ ngay lúc trước mỗi lần quét toàn bộ CSDL. Kỹ thuật sẽ đánh giá độ hỗ trợ của toàn bộ tập mục đã được đếm cho tới lúc này, thêm ứng viên mới các tập item phổ biến nếu tất cả các tập con của chúng được đánh giá là phổ biến. Thuật toán thu được đòi hỏi số lần quét cơ sở dữ liệu ít hơn Apriorị
38
Chương 3 Lưu trữ dữ liệu lớn dựa trên Oracle DBMS
Hầu hết các nghiên cứu về khai phá dữ liệu đã đề xuất thuật toán và tối ưu hóa làm việc trên hệ thống tập tin truyền thống, chứ không phải là một hệ quản trị CSDL, chủ yếu do những lý do sau đây:
- Dễ dàng hơn để phát triển các thuật toán hiệu quả trong một ngôn ngữ lập trình truyền thống.
- Việc tích hợp các thuật toán KPDL vào một hệ quản trị CSDL sẽ mang lại khó khăn trên nền tảng mô hình quan hệ và kiến trúc hệ thống.
- Hơn nữa, SQL có thể làm chậm và rườm rà cho các tính toán phân tích số. Do đó, người sử dụng các ứng dụng khai phá dữ liệu thường biến đổi các bộ dữ liệu bên trong hệ quản trị CSDL ra tập tin truyền thống sau đó mới đưa vào công cụ KPDL, để tránh hiệu suất giảm và loại bỏ khả năng quản lý dữ liệu quan trọng như xử lý truy vấn và an ninh dữ liệu, đồng thời kiểm soát và khả năng chịu lỗị
Dựa trên ngôn ngữ truy vấn SQL và các hàm định nghĩa trực tiếp bởi người dùng User-Defined Functions (UDFs) có thể phân tích các bảng dữ liệu quan hệ để tính toán các mô hình thống kê và được lưu trữ như các bảng quan hệ. Hầu hết các thuật toán đã được tối ưu hóa để giảm bớt số lần duyệt các tập dữ liệụ Hệ thống có thể phân tích lượng lớn các tập dữ liệu nhanh hơn so với các công cụ khai phá dữ liệu sử dụng tập tin tryền thống.
Hướng nghiên cứu của đề tài nghiên cứu các vấn đề thực hiện khai phá dữ liệu bên trong một hệ quản trị CSDL quan hệ, chú ý đến các bộ dữ liệu lớn. Hệ quản trị CSDL ngày càng phát triển và chiếm ưu thế hiện nay như Oraclẹ