Thuật toán CBA cải tiến

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số phương pháp tìm các luật kết hợp phân lớp trên tập mẫu học và ứng dụng (Trang 46 - 49)

Chúng ta biết rằng, thuật toán xây dựng cây phân lớp dựa trên luật kết hợp phân lớp CBA-RG và CBA-CB được Liu, Hsu, Ma giới thiệu vào năm 1998. Thời gian tính toán tập trung vào thuật toán tìm các luật kết hợp phổ biến trong

tập mẫu học. Độ phức tạp tính toán của thuật toán này là O(m2 .n) (với m là số phần tử của tập mẫu, n – là số thuộc tính). Đặc tả thuật toán CBA-RG được trình bày. Với số phần tử (m) và số thuộc tính (n) của tập mẫu học tăng lên thì thời gian chạy của thuật toán sẽ tăng khá nhiều. Trong thời gian gần đây, một thuật toán cải tiến được trinh bày [5] đã tìm được các luật kết hợp phân lớp trong bảng mẫu học có ý nghĩa đáng kể là giảm một nửa số phép tính.

Thuật toán (tìm các luật kết hợp phân lớp)

Input: tập D là bảng quan hệ có m phần tử trên tập các thuộc tính R = {A1, A2, …An, CL}, với CL là thuộc tính phân lớp;

Output: Tập SCAR, tập các luật kết hợp phân lớp dạng X → CL với X là tập con các khoản mục.

Bước 1: Ta tính toán hệ bằng nhau ED của D như sau:

ED = { Ei,j: 1 ≤ i < j ≤ n và Ei,j = {a ∈ R; ti(a)}; ti,tj∈ D} Gọi ED là hệ bằng nhau của D.

Đối với mỗi Ei,j mà có CL ∈ Ei,j đặt Mi,j = { Xi,j∪ y với Xi,j là tập các khoản mục (Ak, ti(Ak)) với Ak ∈ Ei,j; (CL = y) với CL ∈ Ei,j} là tập các luật kết hợp phân lớp có 2 phần tử.

(Chú ý là: tập Mi,j có thể được xác định Mi,j = { Xi,j∪ y với Xi,j là tập các khoản mục (Ak, tj(Ak)) với Ak ∈ Ei,j; (CL = y) với CL ∈ Ei,j} vì các phần tử ti, tj có cùng giá trị trên các thuộc tính Ak – theo cách xác định tập Ei,j).

Đặt CLD = {Mi,j} và gọi CLD là hệ luật kết hợp phân lớp 2 phần tử của D. (Vì mỗi Xi,j đại diện cho một cặp có 2 phần tử)

Số phép toán cần thực hiện là: n(m-1)(m-2)…1 = n.m2/2. Độ phức tạp tính toán của Bước 1 là O(n.m2).

Bước 2:

Với mỗi phần tử Mz,l∈ CLD, tính số hỗ trợ dương s+ và số hỗ trợ âm s- của Mz,l như sau:

- Tính độ hỗ trợ Mzl:

+ Ký hiệu số phần tử chứa Mz,l là s+ và tiến hành; + s+ = 1;

+ Nếu Ez,l⊆ Ei,j và thỏa mãn: (z=i) ∨ (z=j) ∨ (l=j) ∨ (l=i) tăng số đếm s+ lên 1 đơn vị (s+ = s+ + 1);

+ Tính số phần tử theo công thức:

Count(Mz,l) = (1 + √1 + 8s+)/2. + Tính độ hỗ trợ cho Mz,l:

supt = count(Mz,l)/m.

- Tính độ chắc chắn cho Mz,l như sau:

+ Ký hiệu số phần tử chưa Xi,j là s- và tiến hành: s- = 1;

+ Nếu Xz,l ⊆ Ei,j và thỏa mãn: (z=i) ∨ (z=j) ∨ (l=j) ∨ (l=i) tăng số đếm s-

lên 1 đơn vị (s- = s- + 1);

+ Tính số phần tử chứa Xz,l theo công thức: Count(Xz,l) = (1 + √1 + 8s−)/2. + Tính độ chắc chắn cho Mz,l: confd (Mz,l) = s+/s-

- Nếu supt(Mz,l) ≥Minsup và confd (Mz,l) ≥ Minconfd thì SCAR = SCAR∪ Mz,l

- Tỉa các luật: nếu Mz,l⊆ Mi,j với Mz,l, Mi,j∈ SCAR thì loại Mz,l ra khỏi tập SCAR. Như vậy chúng ta sẽ thấy số các phép tính tập trung vào Bước 1, và số phép tính sẽ là: n.(m-1).(m-2)…1 = n.m2/2.

Chú ý: các công thức tính count(Mz,l) và count(Xz,l) được tính dựa trên căn cứ sau:

Nếu gọi k là số cặp bằng nhau (tại một tập thuộc tính A) của các bản ghi, n là số bản ghi có giá trị bằng nhau (tại một tập thuộc tính A), ta có mối quan hệ giữa k và n như sau:

k = n(n-1)/2 và ta xác định n theo công thức tính tính nghiệm của phương trình bậc hai: n2 – n – 2k = 0; giải ra ta có: n = (1 + √1 + 8𝑘)/2)

Tính đúng đắn của thuật toán này đã được khảng định trong [5].

Trong thuật toán CBA-RG ta nhận thấy quy trình để xác định các CAR sẽ lần lượt được thực hiện lần lượt với các CARk với k = 1, …, m; phải nhiều lần duyệt tập D với tất cả các phần tử và cần nhiều phép tính so sánh và có độ phức tạp tính toán là O(m2.n).

Thuật toán cải tiến có số lần duyệt các phần tử trên D sẽ ít hơn và cũng có độ phức tạp tính toán là O(m2.n) nhưng giảm được một nửa số phép tính.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số phương pháp tìm các luật kết hợp phân lớp trên tập mẫu học và ứng dụng (Trang 46 - 49)

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

(74 trang)