Khai phá cây TWUI-tree

Một phần của tài liệu khai phá tập mục lợi ích cao trong cơ sở dữ liệu lớn (Trang 57 - 64)

Xét lần lượt các mục dữ liệu từ dưới lên trong bảng đầu mục của cây TWUI- tree, với mỗi mục dữ liệu này, xây dựng một cấu trúc dữ liệu gọi là cây COUI-tree. Cây COUI-tree của mục dữ liệu x chứa x và các mục dữ liệu có lợi ích TWU lớn hơn hoặc bằng lợi ích TWU của x, cùng xuất hiện với x trong ít nhất một giao tác của cơ sở dữ liệu. Khai phá cây COUI-tree tìm được các mẫu (tập mục) có lợi TWU cao, khai phá xong, loại bỏ cây này và xây dựng cây COUI-tree cho mục dữ liệu tiếp theo.

Định nghĩa 3.2: (Cây COUI-tree) Cây COUI-tree của mục dữ liệu x là một cấu trúc

cây tiền tố (prefix-tree) được định nghĩa như sau:

(1) Cây bao gồm một nút gốc có nhãn là x, tập các cây con của nút gốc và một bảng đầu mục.

(2) Mỗi nút của cây gồm ba trường: tên mục dữ liệu, giá trị twu của mục dữ liệu và con trỏ (trỏ đến nút tiếp theo cùng nhãn trên cây hoặc là null nếu không có).

(3) Mỗi mục của bảng đầu mục gồm ba trường: tên mục dữ liệu, lợi ích theo giao tác TWU của mục dữ liệu và con trỏ (trỏ đến nút đầu tiên biểu diễn mục dữ liệu này trên cây). Các mục dữ liệu trong bảng đầu mục sắp xếp theo thứ tự tăng dần của trường twu của nó.

Chú ý: Cây COUI-tree có cấu trúc giống cây TWU-tree, một số khác biệt là: - Mỗi mục của bảng đầu mục của cây COUI-tree có thêm trường TWU lưu lợi ích TWU của mục dữ liệu tại cây COUI-tree.

- Các mục dữ liệu trong bảng đầu mục của cây COUI-tree sắp xếp theo thứ tự ngược lại với thứ tự trong bảng đầu mục của cây TWU-tree.

Quá trình xây dựng cây COUI-tree giống như xây dựng cây TWU-tree. Minh hoạ thuật toán qua khai phá cây TWU-tree hình 3.3. Khai phá cây TWU-tree hình 3.3 cần xây dựng ba cây COUI-tree cho các mục dữ liệu C, D và B. Gọi ba cây đó lần lượt là C-COUI-tree, D-COUI-tree, B-COUI-tree. Không cần xây dựng cây E-COUI-tree cho mục E vì cây này chỉ có một nút gốc là E.

Xét mục dữ liệu đầu tiên C, từ con trỏ trên bảng đầu mục của cây TWU-tree tìm thấy 3 nút trên cây có nhãn là C, đường đi từ nút này lên nút gốc xác định 3 mẫu là: CBE với twu(CBE) = 72, CE với twu(CE) = 41 và CDE với twu (CDE) = 48. Lưu các mẫu này lên cây C-COUI-tree giống như chèn các giao tác vào cây TWU-tree với chú ý là cây C-COUI-tree có nút gốc nhãn C và phải điều chỉnh trường twu của bảng đầu mục cho phù hợp. Hình 3.6 biểu diễn cây C-COUI-tree sau khi xây dựng xong.

Thực hiện tương tự với mục dữ liệu D và B, xây dựng được các cây D- COUI-tree, B-COUI-tree (hình 3.7 và 3.8)

Hình 3.5: Cây C-COUI-tree sau khi lưu mẫu CBE và CE

Hình 3.6: Cây C-COUI-tree sau khi xây dựng xong.

Hình 3.8: Cây B-COUI-tree

Cây C-COUI-tree chứa các mục dữ liệu cùng xuất hiện với C trong ít nhất một giao tác.Cây D-COUI-tree chứa các mục dữ liệu cùng xuất hiện với D nhưng không chứa C. Cây B-COUI-tree chứa các mục dữ liệu cùng xuất hiện với B nhưng không chứa C và D. Các cây này không xây dựng đồng thời mà lần lượt, tại một thời điểm chỉ xây dựng một cây, sau khi khai phá xong thuật toán loại bỏ nó và xây dựng cây tiếp theo.

Ta minh hoạ khai phá cây COUI-tree qua xét cây D-COUI-tree hình 3.7. Khai phá cây D-COUI-tree tìm được các mẫu chứa mục D. Đầu tiên ta kết nạp mục dữ liệu D vào tập các mẫu ứng viên CP (Candidate Patterns), CP = {D:241}. Tiếp đến, tỉa các mục dữ liệu có lợi ích TWU thấp (giá trị cục bộ tại cây D-COUI- tree): xét lần lượt các mục dữ liệu trong bảng đầu mục từ dưới lên, bắt đầu từ mục E, cuối cùng đến mục B, không có mục nào có lợi ích TWU thấp, do đó không có mục nào bị tỉa. Lưu ý là nếu có mục dữ liệu có lợi ích TWU thấp thì các mẫu chứa nó không thể là tập mục lợi ích cao, vì vậy cần tỉa mục này trên bảng đầu mục và các nút tương ứng trên cây.

Từ trỏ của mục E trên bảng đầu mục tìm được 2 nút trên cây có nhãn E.

Đường đi từ nút E thứ nhất lên nút gốc xác định mẫu EBD với twu = 182. Kết nạp mẫu này và các mẫu con có chứa D của nó vào tập các ứng viên CP, nhận được CP = {D:241, EBD:182, ED:182, BD:182}. Trường twu của các nút nhãn E, B, D trên đường đi này giảm đi 182 (bước 1).

Hình 3.9: Các bước khai phá cây D-COUI-tree.

Đường đi từ nút E thứ hai lên nút gốc xác định mẫu ED với twu = 59. Kết nạp mẫu này vào tập CP. Trong tập CP đã có mẫu ED: 182 nên ta điều chỉnh mẫu này thành ED: 241 và nhận được CP ={ D:241, EBD:182, ED:241, BD:182}. Trường twu của các nút nhãn E và D trên đường đi này giảm đi 59 (bước 2).

Xét tiếp mục B trên bảng đầu mục, từ con trỏ của mục B trên bảng đầu mục tìm được 1 nút trên cây có nhãn B, nút này có trường twu = 0, do vậy không sinh ra mẫu nào nữa (bước 3). Hình 3.9 minh hoạ các bước khai phá cây D-COUI-Tree.

Khai phá tương tự các cây COUI-Tree còn lại. Kết thúc khai phá cây TWUI- tree hình 3.3, tập các ứng viên CP nhận được gồm 9 tập mục ứng viên:

CP = {C:161, EC: 161, D:241, EBD:182, ED:241, BD:182, B:274, EB:274, E:354}.

Bước tiếp theo, thuật toán duyệt lại cơ sở dữ liệu lần thứ 3 để tính lợi ích thực sự của 9 tập mục ứng viên này, với mỗi tập mục X CP, nếu u(X) ≥ minutil thì X là tập mục lợi ích cao và X được kết nạp vào tập các tập mục lợi ích cao HU. Bảng 3.5 biểu diễn kết quả tính lợi ích của các tập mục ứng viên:

Bảng 3.5: Lợi ích các tập mục ứng viên

TT Tập mục ứng viên Lợi ích TWU Lợi ích Tập mục

Lợi ích cao 1 C 161 48 Không 2 EC 161 83 Không 3 D 241 36 Không 4 EBD 182 182 Có 5 ED 241 56 Không 6 BD 182 172 Có 7 B 274 240 Có 8 EB 274 240 Có 9 E 354 50 Không

Kết thúc quá trình khai phá, thuật toán tìm được tập các tập mục lợi ích cao HU = { EBD(182), BD(172), EB(240), B(240) }.

Sau đây là thuật toán khai phá cây TWUI-tree:

Thuật toán (khai phá cây TWUI-tree).

Input: Cây TWUI-tree, ngưỡng lợi ích minutil.

Output: Tập CP gồm tất cả các tập mục lợi ích TWU cao. Method:

1. CP := Ø;// khởi tạo tập chứa các mẫu ứng viên là rỗng.

2. Xét từ dưới lên của bảng đầu mục của cây TWUI-tree, biến A nhận mục dữ liệu đầu tiên;

3. repeat

4. Tạo nút gốc của cây (A)-COUI-tree có nhãn A và trường twu bằng 0;

5. for each (nút N trên cây TWUI-tree có nhãn A) // tìm theo con trỏ từ bảng đầu mục

6. begin

7. Xác định mẫu [A|L]:twu từ đường đi từ nút N lên gốc của cây; // mẫu [A|L]có A là mục dữ liệu đầu, L là phần còn lại 8. Chèn mẫu [A|L]:twu vào cây (A)-COUI-tree;

9. end;

10. Gọi hàm MineCOUI-tree (A); // lưu kết quả khai phá vào tập CP. 11. Xoá cây (A)-COUI-tree;

12. Biến A nhận mục dữ liệu tiếp theo trong bảng đầu mục của cây TWUI-tree; 13. until (A là mục dữ liệu cuối cùng của bảng đầu mục của cây TWUI-tree); 14. CP := CP{A};// Đưa vào CP mục cuối của bảng đầu mục của TWUI-tree; // Khai phá xong cây TWUI-tree, tập CP chứa các tập mục ứng viên. 15. Return CP;

Hàm khai phá cây (A)-COUI-tree như sau:

Function: MineCOUI-tree (A);// hàm thực hiện khai phá cây (A)-COUI-tree. Method:

CP := CP{A};// kết nạp mục A là nhãn của nút gốc vào tập CP.

Tỉa cây: duyệt bảng đầu mục của (A)-COUI-tree, tỉa các mục DL có twu < minutil;//tỉa trên bảng đầu mục và các nút tương tự trên cây.

for each (mục dữ liệu B của bảng đầu mục của cây (A)-COUI-tree)// từ dưới lên. Begin

for each (nút N trên cây (A)-COUI-tree có nhãn B)// tìm theo con trỏ ở bảng đầu mục

begin

Xác định mẫu X: twu từ đường đi từ nút N lên nút gốc của cây; Kết nạp X và các mẫu con của X có chứa A vào tập CP;

Giảm trường twu của các nút trên đường đi từ nút N lên nút gốc của cây; end;

end; // hoàn thành khai phá cây (A)-COUI-tree. Return CP;

Thuật toán tìm các tập mục lợi ích cao từ tập các ứng viên CP như sau:

Thuật toán (Tìm tập các tập mục lợi ích cao HU)

Input: Cơ sở dữ liệu DB, tập các ứng viên CP, hàm lợi ích, ngưỡng lợi ích

minutil.

Output: Tập HU chứa tất cả các tập mục lợi ích cao của cơ sở dữ liệu DB. Method:

1. HU:=Ø; //khởi tạo tập chứa các tập mục lợi ích cao là rỗng. 2. for each (TDB) //Duyệt lần 3 cơ sở dữ liệu DB.

3. for each XCP //duyệt các tập mục ứng viên của tập CP.

4. if XT then 5. begin

6. Tính lợi ích của tập mục X trong giao tác T, u(X,T); 7. Điều chinh lợi ích của tập mục X, u(X) := u(X) + u(X,T); 8. end;

9. for each XCP // duyệt các tập mục ứng viên của tập CP.

10. if u(X) ≥ minutil then HU := HU{X}; //chọn ra các tập mục lợi ích cao. 11. Return HU;

Một phần của tài liệu khai phá tập mục lợi ích cao trong cơ sở dữ liệu lớn (Trang 57 - 64)

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

(74 trang)