.5 CSDL có trọng số được rút gọn thỏa ngưỡng S0=2

Một phần của tài liệu Phát triển thuật toán khai phá luật kết hợp dựa vào sự phân lớp dữ liệu (Trang 49)

- Xây dựng FP_Tree:

Hình 2.3 Cây FP_Tree trên CSDL có trọng số rút gọn

6. CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỬ NGHIỆM

Trong chương trước, tác giả đã đưa ra thuật toán cải tiến thuật toán Apriori và FP_Growth để tìm tập thường xuyên trên cơ sở dữ liệu đã phân lớp. Để minh họa tính đúng đắn của thuật tốn, tác giả dùng ngơn ngữ lập trình Delphi để cài đặt thuật tốn cải tiến thuật toán FP_Growth.

3.1 CẤU TRÚC DỮ LIỆUPt_1=^Node_1; Pt_1=^Node_1; Node_1=Record Inf:Item; Right:Pt_1; Left:Pt_2; End; Pt_2=^Node_2; Node_2=Record Inf:Transaction; Right:Pt_2; Left:Pt_3; End; Pt_3=^Node_3; Node_3=Record ItemName:Transaction; ItemCount:Integer; Next:Pt_3; End;

3.2 CÁC THỦ TỤC CÀI ĐẶT

1. Thủ tục xác định độ hỗ trợ của các mục dữ liệu

Procedure Support ;

Input: CSDL giao tác T = {t1, t2, …, tm} trên I = {x1, x2, …, xn};

Output: SuppT = ((x1,w1), (x2,w2),…, (xn,wn)) với wi là độ hỗ trợ của xi. Method: For i := 1 to n do wi:= 0; EndFor; For j := 1 to m do For i:=1 to n do If xi ∈ tj then wi := wi + 1; EndIf; EndFor; EndFor; EndProcedure;

2. Thủ tục sắp xếp các mục dữ liệu trong giao tác theo thứ tự giảm dần của độ hỗ trợ

Procedure Support ;

Input: CSDL giao tác T = {t1, t2, …, tm} trên I = {x1, x2, …, xn};

SupT = ((x1,w1), (x2,w2),…, (xn,wn)) với wi là độ hỗ trợ của xi.

For i:=1 to k-1 do For l:=i+1 to k do If wjl ≥ wji ∈ tj then hoán vị xjl và xji EndIf; EndFor; EndFor; EndFor; EndProcedure;

3. Thủ tục chèn một giao tác vào cây W_Tree

Procedure InsertItem_1(t, P) ; Input: t = (xi1, x i2, …, x ik)

P:Pt_2;

Output: P:Pt_2 Method:

New(P); P^.Inf:=t; P^.Right:=Nil; New(P1); //P1: Pt_3 P1^.ItemName:=xi1; P1^.ItemCount:=1; P^.Left:=P1; For each j:=2 to k do New(P2); //P2: Pt_3 P2^.ItemName:=xij; P2^.ItemCount:=1; P2^.Next:=Nil; P1^.Next:=P2; P1:=P2;

EndFor;

EndProcedure;

Procedure InsertItem_2(t, P) ; Input: t = (xi1, x i2, …, x ik)

P:Pt_2; Output: P:Pt_2 Method: If t ⊆P^.Inf then Th:=1 Else If P^.Inf ⊆ t then Th:=2 Else Th:=3; Case Th of 1: Begin PP:=P^.Left; For j:=1 to k do Begin PP^.Count:=PP^.Count+1;

2:Begin PP:=P^.Left; P1:=PP; J:=1; While PP<>Nil do PP^.Count:=PP^.Count+1; P1:=PP; PP:=PP^.Next; j:=j+1; EndWhile; For r:=j to k do New(PtD); //PtD:Pt_3 PtD^.Inf:=xir; PtD^.Count:=1; PtD^.Next:=Nil; P1^.Next:=PtD; P1:=P1^.Next; EndFor; End2; 3: If P^.Right=Nil then InsertItem1(S,P^.Right) Else InsertItem2(S,P^.Right);

EndIf; End 3; EndCase;

EndProcedure;

4. Thủ tục tạo cây W_Tree

Procedure Creat_W_Tree;

Input : T = {t1, t2, …, tm} CSDL giao tác đước sắp: tj= (xj1,xj2,… xjk) ∈ T có

Supp(xj1) ≥ Supp(xj2) ≥ … ≥ Supp(xjk)

SupT = ((xi1,w1), (xi2,w2),…, (xin,wn)) với w1 ≥ w2 ≥ … ≥ wn

Output: Root:Pt_1; Method:

New(Root); //Root:Pt_1;

Root^.Inf:=xi1; Root^.Left:=Nil; PP1:=Root; For r:=2 to n do

New(P1); //P1:Pt_1;

P1^.Inf:=xir; P1^.Left:=Nil; P1^.Right:=Nil; PP1^.Right:=P1; PP1:=P1;

EndFor .

For each tj= (xj1,xj2,… xjk) in T do

InsertItem1(t,P2); Else InsertItem2(t,P^.Left); EndIff EndFor; EndProcedure;

5. Thủ tục chuyển dữ liệu từ cây W_tree thành CSDL giao tác có trọng số được sắp

Procedure Tree_To_Data;

Input: Root:Pt_1;

Output: T = {t1,t2,…,tm} với ti=((xi1,wi1),(xi2,wi2),…,(xik,wik)) với Supp(xi1)≥...≥ Supp(xik), wi1 ≥...≥ wi1;

Method: T:= ∅; P1:=Root; While P1<>Nil do P2:=P1^.Left; //P2:Pt_2 While P2<>Nil do P3:=P2^.Left; t:=’’; While P3<>Nil do t:=t+(P3^.ItttemName,P3^.ItemCount);

P3:=P3^.Next; EndWhile; T:=T ∪ t; P2:=P2^.Right; EndWhile; P1:=P1^.Right; EndWhile; EndProcedure; 3.3 KẾT QUẢ THỬ NGHIỆM

Tác giả đã chạy thuật toán rút gọn dữ liệu được kết quả như trong bảng sau.

STT

DỮ LIỆU BAN ĐẦU SAU KHI RÚT GỌN

SỐ DÒNG SỐ CỘT DUNG LƯỢNG (KB) SỐ DÒNG SỐ CỘT DUNG

LƯỢNG (KB) 1 10.000.000 20 75.182 104.079 20 2.058 2 18.298.481 20 105.948 132.665 20 2.722 3 23.502.497 20 110.108 133.157 20 2.752 4 115.360.110 40 679.053 286.998 40 4.870

3.4 ĐÁNH GIÁ THUẬT TỐN

Thuật tốn phân lớp dữ liệu biến đổi một cơ sở dữ liệu giao tác thành một cơ sở dữ liệu giao tác có trọng số rút gọn chia làm bốn bước:

Bước một: Tính độ hỗ trợ của mục dữ liệu

Bước hai: Sắp xếp các mục dữ liệu trong các giao tác theo thứ tự giảm dần của

độ hỗ trợ.

Bước ba: Xây dựng cây W_Tree.

Bước bốn: Chuyển dữ liệu trên cây W_Tree thành thành một cơ sở dữ liệu

giao tác có trọng số rút gọn

Với cơ sở dữ liệu giao tác có trọng số rút gọn có số giao tác và dung lượng nhỏ hơn rất nhiều lần so với dữ liệu ban đầu, do đó việc áp dụng các thuật tốn tìm tập thường xuyên sẽ nhanh hơn rất nhiều lần.

7. PHẦN KẾT LUẬN

1. NHỮNG KẾT QUẢ ĐẠT ĐƯỢC

- Tìm hiểu một số thuật toán trong khai phá luật kết hợp như: AIS, Apriori, DIC, FP_Tree, RARM, …

- Đóng góp chính của luận văn là đề xuất phương án phân lớp cơ sở dữ liệu giao tác bằng cách thêm “trọng số” cho mục dữ liệu nhằm rút gọn không gian xử lý và lưu trữ. Việc phân lớp dữ liệu được thực hiện qua bốn bước: Tính độ hỗ trợ của mục dữ liệu, sắp xếp các mục dữ liệu trong các giao tác theo thứ tự giảm dần của độ hỗ trợ, xây dựng cây W_Tree và bước cuối cùng là chuyển dữ liệu trên cây W_Tree thành thành một cơ sở dữ liệu giao tác có trọng số rút gọn. Với một cơ sở dữ liệu giao tác cố định, chỉ một lần thực hiện bước một, khi tìm tập thường xuyên ta chỉ cần

thực hiện bước hai.

Tác giả cũng đưa ra thuật toán cải tiến thuật tốn Apriori và FP_Growth để tìm tập thường xun dựa vào CSDL đã phân lớp. Xây dựng chương trình phân lớp dữ liệu bằng ngơn ngữ lập trình Delphi.

1. Cải tiến thuật toán Apriori: Với thuật tốn này, chi phí nhiều nhất là duyệt qua CSDL để tính độ hỗ trợ của các tập ứng viên. Với CSDL giao tác có trọng số đã phân lớp, số giao tác đã rút gọn rất nhiều lần nên thời gian thực hiện giảm đi rất nhiều lần.

2. Cải tiến thuật toán FP_Growth: Thuật toán xây dựng FP-Tree trên cơ sở dữ liệu giao tác có trọng số chia làm hai bước: Bước một là phân lớp dữ liệu bằng cách biến đổi một cơ sở dữ liệu giao tác thành một cơ sở dữ liệu giao tác có trọng số

rút gọn, bước hai là xây dựng FP-Tree. Với một cơ sở dữ liệu giao tác cố định chỉ một lần thực hiện bước một, khi tìm tập thường xuyên ta chỉ cần thực hiện bước hai. Ở

2. HƯỚNG PHÁT TRIỂN

Các cơ sở dữ liệu hiện nay thường gia tăng và có liên quan đến yếu tố thời

gian. Hai thuật toán cải tiến trên chỉ xử lý dựa trên cơ sở dữ liệu cố định, nghĩa là khi dữ liệu tăng thêm một tập các giao tác mới thì thuật tốn này phải tính tốn lại từ đầu. Do vậy, cần nghiên cứu phát triển các thuật toán khai phá luật kết hợp trên dữ liệu gia tăng cũng như cơ sở dữ liệu liên quan đến yếu tố thời gian.

Sau đây là các hướng phát triển nghiên cứu và ứng dụng của luận văn:

- Nghiên cứu các thuật toán khai phá luật kết hợp dựa trên sự phân lớp cơ sở dữ liệu có yếu tố thời gian.

8. TÀI LIỆU THAM KHẢO

Tiếng Việt:

[1] Nguyễn Hữu Trọng, Bùi Chí Thành, Nguyễn Thị Minh Châu, Phạm Ngọc

Công (2012) “Một cách tối ưu cơ sở dữ liệu giao tác cho các thuật tốn tìm luật kết hợp”, Hội thảo quốc gia lần thứ XV: Một số vấn đề

chọn lọc của Công nghệ thông tin và truyền thông- Hà Nội.

[2] Nguyễn Hữu Trọng (2008) “Phát triển một số thuật toán khai phá luật kết hợp trên cơ sở dữ liệu gia tăng”, Luận án tiến sĩ, Viện Công nghệ thơng tin.

[3] Nguyễn Xn Huy, Đồn Văn Ban, Nguyễn Hữu Trọng, Huỳnh Văn Đức

(2007) "Thuật toán khai thác dữ liệu tăng trưởng", Tạp chí Khoa học và Công nghệ, Viện Khoa học và Công Nghệ Việt Nam, Số 2, tập 45, trang 9-18.

[4] Nguyễn Xuân Huy, Đoàn Văn Ban, Nguyễn Hữu Trọng, (2007) "Phát triển

thuật toán khai thác dữ liệu dựa trên bao đóng của tập thuộc tính", Tạp chí Tin học

và Điều khiển học, Viện Khoa học và Công Nghệ Việt Nam, Số 2, tập 23, trang

113-141.

[5] Nguyễn Hữu Trọng (2007), "Thuật toán khai thác tập thường xuyên hiệu quả

dựa trên kỹ thuật phân lớp dữ liệu", Tạp chí Tin học và Điều khiển học, Viện Khoa

học và Công Nghệ Việt Nam, Số 3, tập 23, trang 260-271.

[6] Nguyễn Hữu Trọng (2007), “Thuật toán khai phá tập mục dữ liệu thường

xuyên trong cơ sở dữ liệu gia tăng dựa trên phân lớp dữ liệu”, Tạp chí Khoa học và

Cơng nghệ, Viện Khoa học và Công Nghệ Việt Nam, Số 3, tập 45, trang 15-26.

[7] Nguyễn Hữu Trọng (2007), Thuật toán khai thác luật kết hợp trên cơ sở dữ

liệu tăng trưởng theo chiều ngang. Hội nghị Nghiên cứu cơ bản và ứng dụng Công

Tiếng Anh:

[8] Han J. and Kamber (2000), Data Mining Concepts and Techniques, Morgan Kanufmann.

[9] Agrawal, R., Imielinski, T., Swami, A. N. (1993) "Mining association rules between sets of items in large databases", Proceedings of the 1993 ACM SIGMOD

International Conference on Management of Data, pp 207 – 216.

[10] Murthy, S. K (1998), "Automatic construction of decision trees from data: A multi-disciplinary survey". Data Mining and Knowledge Discovery 2(4), pp 345-

389.

[11] Agrawal, R., Srikant, R. (1994), "Fast algorithms for mining association rules",

In Proc. 20th Int. Conf. Very Large Data Bases, VLDB, J. B. Bocca, M. Jarke, and

C. Zaniolo, Eds. Morgan Kaufmann, pp 487-499.

[12] Sergey, B., Rajeev M., Je_rey D. U., Shalom T. (1997). "Dynamic itemset counting and implication rules for market basket data". In Proceedings of the ACM

SIGMOD International Conference on Management of Data, ACM, ACM Press, New York, pp 255-264.

[13] Savesere, A., Omiecinski, E., and Navathe, S (1995), "An efficient algorithm for mining association rules in large databases", In Proceedings of 20th

International Conference on VLDB, pp 432-444.

[14] Han J, Pei H, and Yin Y. (2000), "Mining Frequent Patterns without Candidate Generation", In: Proc. Conf. on the Management of Data (SIGMOD’00, Dallas, TX). ACM Press, New York, NY, USA, pp 1-12.

[15] Amitabha Das, Wee-keong Ng, Yew-kwong Woon (2001), "Rapid association rule mining", In Proceedings of the tenth international conference on Information and knowledge management. ACM Press, pp 474 -481.

[16] Ulrich Guntzer, Jochen Hipp, Gholamreza (2000), "Algorithms for Association Rule Mining – A General Survey and Comparison", ACM

SIGKDD Explorations Newsletter, Volume 2 Issue 1, pp 58-64.

[17] Shakil, A,., Coenen, F., Leng, P., (2006), "Tree-based Partitioning of Data for Association Rule Mining", Knowledge and Information Systems, Volume 10, Number 3, pp 315-331.

Một phần của tài liệu Phát triển thuật toán khai phá luật kết hợp dựa vào sự phân lớp dữ liệu (Trang 49)

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

(63 trang)