Nguyễn Hữu Trọng, Lê Đức An, Trần Xuân Việt, Nguyễn Anh Hào MỘT THUẬT TỐN TÌM TẬP THƯỜNG XUN TRÊN CƠ SỞ DỮ LIỆU GIAO TÁC CÓ TRỌNG SỐ A NEW METHOD TO MINE FREQUENT ITEMSETS ON TRANSACTION DATA WEIGHTED Nguyễn Hữu Trọng1 , Lê Đức An2 , Trần Xuân Việt2 , Nguyễn Anh Hào2 Trường Đại học Nha Trang; Email: trongnhntu@gmail.com Trường Đại học Quy Nhơn; Email: an.leduc@gmail.com, cntranxuanviet@yahoo.com, Hao.nguyenvan1979@gmail.com Tóm tắt – Tìm tất tập mục liệu thường xuyên công việc khai phá liệu Trong 20 năm từ ngày Agrawal cộng đưa thuật toán AIS, nhà nghiên cứu đề xuất nhiều thuật toán cải tiến tốc độ để phát nhanh tập mục liệu thường xuyên Những thuật toán này, hướng tập trung vào cải tiến cách duyệt qua tập liệu cách tính độ hỗ trợ tập mục liệu ứng viên, hướng khác, tập trung vào việc rút gọn kích thước phân nhỏ sở liệu xử lý Trong báo cáo này, chúng tơi đề xuất thuật tốn CABOWD, nhằm rút ngắn thời gian tìm tập thường xuyên theo hướng phân nhỏ rút gọn kích thước liệu Từ khóa – sở liệu giao tác, luật kết hợp; tập thường xuyên; phân cụm; trọng số Abstract – Find all of the frequent itemsets are basic work in data mining For more than 20 years from the date of Agrawal and colleagues provide AIS algorithm, the researchers have proposed many improved algorithms for detecting fast pace of the frequent itemsets These algorithms, an improved focus on navigating the data sets and how to calculate the support of each candidate item set, a different direction, focusing on the reduced size and split the data into several clusters In this paper, we propose algorithms CABOWD (clustering algorithm based on weighted data), in order to shorten the time by the way to split the data and reduce data size Đặt vấn đề Cho I = {x1 , x2 , , xn } tập hợp mục liệu Một tập t={xi1 , xi2 , , xik } ⊆ I gọi giao tác I Một tập hợp gồm m giao tác T = {t1 , t2 , , tm } gọi sở liệu (CSDL) giao tác I Mỗi tập hợp X ⊆ I gọi tập mục liệu (itemset), tập S ⊆ T gọi giao tác Độ hỗ trợ (support) tập mục liệu X, ký hiệu Supp(X) số giao tác T chứa X Để đơn giản, quy ước dùng Supp(xi ) thay cho Supp({xi }) tập có mục liệu Cho S0 số nguyên, ta nói X tập mục liệu thường xuyên (frequent itemset) theo ngưỡng S0 Supp(X) ≥ S0 Một biểu thức X1 → X2 , với X1 , X2 ⊆ I X1 ∩ X2 = φ gọi luật kết hợp (Association rule) T Độ hỗ trợ luật kết hợp X1 → X2 , ký hiệu Supp(X1 → X2 ) = Supp(X1 ∪ X2 ) = Supp(X1 X2 ) Luật kết hợp f:X1 → X2 T luật thường xuyên theo ngưỡng S0 Supp(X1 → X2 ) ≥ S0 Độ tin cậy (Confidence) luật X1 → X2 , tỷ số: p = Conf(X1 → X2 ) = Supp(X1 → X2 )/Supp(X1 ), ký hiệu Conf(X1 → X2 ) Với C0 ∈ (0, 1] ta nói f:X1 → X2 luật tin cậy (Confident rule) theo ngưỡng S0 C0 f luật thường xuyên theo ngưỡng S0 Conf(X1 → X2 ) ≥ C0 Bài tốn tìm luật kết hợp CSDL chia thành hai toán nhỏ Bài toán thứ tìm tất tập mục liệu thường xuyên theo ngưỡng tối thiểu cho trước Bài toán thứ hai tìm luật kết hợp từ tập mục liệu thường xuyên thỏa độ tin cậy tối thiểu cho trước Bài toán thứ hai đơn giản, hầu hết nghiên cứu luật kết hợp tập trung toán thứ Phát triển thuật toán khai phá luật kết hợp làm giảm độ phức tạp tính tốn thuật tốn để cải thiện tốc độ xử lý AIS, năm 1994 Agrawal Srikant đưa thuật tốn Apriori [3], thuật tốn đặt móng cho việc tìm tất tập thường xuyên luật kết hợp Hạn chế lớn thuật toán Aprori duyệt qua sở liệu nhiều lần, đặc biệt với liệu lớn, lưu trữ nhớ ngồi thời gian duyệt q lớn, việc tìm tất tập thường xun khơng khả thi Các thuật toán Các thuật toán tóm tắt [1] Năm 1993, Agrawal, Imielinski, Swami [2] đưa thuật toán Key words – database transactions; association rules; frequent practice; clustering; weight Thuật toán FP_Growth nhóm nghiên cứu Jiawei Han trường đại học Illinois Hoa Kỳ đề xướng năm 2000 [4] trình bày đầy đủ [5] Hạn chế thuật toán FP_Growth với liệu lớn, việc đệ quy để tìm tất tập thường xuyên FP_Growth tốn thời gian lớn Khi liệu lớn, việc đệ quy tràn nhớ, khơng thể thực Nhiều cải tiến FP_Growth tổng hợp [9] Phân cụm liệu Phân cụm (Data clustering) hay gom cụm trình phân chia đối tượng CSDL T vào cụm cho đối tượng có độ tương tự giống gom vào cụm Như vậy, đối tượng T thuộc cụm Việc xử lý thay làm tồn sở liệu thu lại cụm Các kết tiêu biểu kỹ thuật phân cụm nén liệu trình bày [6][7][8] [11][12][13][14] Thời gian tìm tập ứng viên thuật tốn Apriori khơng đáng kể ta có giải thuật tốt Trong báo cáo này, đề xuất thuật toán CABOWD (clustering algorithm based on weighted data), nhằm cải tiến cách tính độ hỗ trợ tập ứng viên, rút ngắn thời gian tìm tập thường xuyên theo hướng phân cụm rút gọn kích thước liệu 3.1 CSDL giao tác có trọng số rút gọn Cho I={x1 ,x2 , ,xn } tập mục liệu 69 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 1(74).2014.QUYỂN II 3.1.1 Định nghĩa 1: CSDL giao tác có trọng số Trong phần sau, cho T CSDL giao tác có trọng số rút gọn I Cho X = {xi1 , xi2 , , xik1 } ⊆ I quy ước rẳng phần tử X thứ tự thỏa Supp(xi1 ) ≥ ≥ Supp(xi1 ) Một có thứ tự ti =((xi1 ,wi1 ),(xi2 ,wi2 ), .,(xik , wik )) với {xi1 , xi2 , , xik } ⊆ I wij ∈N, j=1 k gọi giao tác có trọng số I, wij trọng số mục liệu xij ti Đặt Set(ti )={xi1 , xi2 , , xik } tập mục liệu 3.1.7 Định nghĩa 7: Quan hệ tương dương ≈ ti Một tập m giao tác có trọng số T={t1 ,t2 , ,tm } gọi Trên T ta định nghĩa quan hệ ≈ sau: ∀ti , tj ∈ CSDL giao tác có trọng số I T : ti = ((xi1 , wi1 ), (xi2 , wi2 ), , (xis , wis )), tj = 3.1.2 Định nghĩa 2: SuppW(X) ((xj1 , wj1 ), (xj2 , wj2 ), , (xjr , wjr )) : ti ≈ tj ⇔ xi1 = xj1 Chứng minh dễ dàng rằng, ≈ quan hệ tương đương Cho T CSDL giao tác só trọng số I Với X= {xi1 , T xi2 , , xik } ⊆ I, ta định nghĩa SuppW(X) độ hỗ trợ theo trọng số X: 3.1.8 Tính chất X Ta có: Với X = {xi1 , xi2 , , xik1 } ⊆ I : X ⊆ SuppW(X) = Min{wi1 , , wik } {xi1 , xj2 , , xjk2 } ⇔ {xi2 , , xik1 } ⊆ {xj2 , , xjk2 } X⊆Set(ti ) Từ tính chất này, để xem {xi1 , xi2 , , xik1 } có phải ti =((xi1 ,wi1 ), ,(xik ,wik ))∈T tập {xi1 , xj2 , , xjk2 } hay không, ta cần xem Function SuppW(X); {xi2 , , xik1 } có tập {xj2 , , xjk2 } hay không Input: T: CSDL giao tác có trọng số I, X ⊆ I 3.1.9 Phân rã giao tác Output: SuppW(X) Với ti = ((xi1 , wi1 ), (xi2 , wi2 ), , (xik , wik )) ∈ T, ta Method: phân thành k giao tác : C(ti ) = {ti1 , ti2 , , tik }, SW:=0; với: t i1 = ((xi1 , wi1 ), (xi2 , wi2 ), , (xik , wik )), ti2 = For each tj = ((xj1 ,wj1 ), , (xjs ,wjs )) ∈ T ((x , w i2 i2 ), , (xik , wik )), ti3 = ((xi3 , wi3 ), (xi4 , wi4 ), , If X ⊆ Set(tj ) then (x , w ik ik )), , tik = ((xik , wik )) SW:=SW+Min{wj1 , wj2 , , wjk } Nhận xét rằng: X ⊆ Set(ti ) ⇔ Tồn EndIf; tij để X ⊆ Set(tij ) Từ đây, để kiểm chứng X ⊆ Set(ti ) ta EndFor; kiểm tra xem có tij để X ⊆ Set(tij ) hay không Return SW; Gọi TG tập hợp tất giao tác phân rã từ giao tác T: 3.1.3 Định nghĩa 3: CSDL giao tác có trọng số TG = Ut∈T C(t) Cho T CSDL giao tác có trọng số I Một có thứ tự ti = ((xi1 , wi1 ), (xi2 , wi2 ), , (xik ,wik )) có 3.1.10 Sự tương đương CSDL T TG SuppW (xi1 ) ≥ SuppW(xi2 ) ≥ ≥ SuppW(xik ) gọi Hai CSDL giao tác T1 T2 tập mục giao tác có trọng số I liệu I gọi tương đương nếu: ∀X ⊆ I ta có Một CSDL giao tác có trọng số I mà giao tác SuppT1 (X) = SuppT2 (X) với SuppT (X) độ hỗ trợ gọi CSDL giao tác có trọng số X T I Từ định nghĩa việc phân rã giao tác nhận xét mục trên, có T TG hai CSDL giao tác tương đương Từ đây, 3.1.4 Định nghĩa 4: Quan hệ ≺ để tính độ hỗ trợ củaX ⊆ I, thay tìm T ta tìm Cho T CSDL giao tác có trọng số I T G Trên T ta định nghĩa quan hệ ≺ sau: ∀ ti , tj ∈ T: ti 3.2 Phân cụm liệu = ((xi1 ,wi1 ), (xi2 , wi2 ), , (xis , wis )), tj = ((xj1 , wj1 ), (xj2 , wj2 ), , (xjr , wjr )): ti ≺ tj ⇔ s ≤ r xi1 = xj1 , xi2 = xj2 , Phân hoạch TG thành n lớp (cụm) tương đương theo , xis = xjs quan hệ ≈ định nghĩa Gọi CWi0 lớp tương đương tij = ((xi , wi ), 3.1.5 Định nghĩa 5: Phép toán ⊕T (xi2 , wi2 ), , (xik , wik )) ∈ TG , tập hợp giao tác Trên T, CSDL giao tác có trọng số I, T có mục liệu x : G i định nghĩa phép toán ⊕T sau: CWi0 = {(xi , wi1 ), (xi2 , wi2 ), , (xik , wik ))|tij = ∀ti , tj ∈ T : ti = ((xi1 , wi1 ), (xi2 , wi2 ), , (xis , wis )), ((xi , wi ), (xi2 , wi2 ), , (xik , wik )) ∈ TG }, i = n tj = ((xj1 , wj1 ), (xj2 , wj2 ), , (xjr , wjr )) : Nếu ti ≺ Từ phân hoạch, ta có: Với X = {xi , xi2 , , xik } ⊆ I, tj t = ti ⊕T tj = ((xi1 , wi1 + wj1 ), (xi2 , wi2 + có t ∈ T để X ⊆ Set(t) tồn t0 ∈ CW0 i wj2 ), , (xis , wis + wjs ), (xis+1 , wjs+1 ), , (xjr , wjr )) để X ⊆ Set(t0 ) Từ đây, để tính SuppW(X), ta cần duyệt 3.1.6 Định nghĩa 6: CSDL giao tác có trọng số cụm CW0 i rút gọn Từ tính chất 3.1.8, ta cắt bỏ mục liệu Cho T CSDL giao tác có trọng số I Ta giao tác CW0 i thành tập CWi để giảm kích nói T CSDL giao tác có trọng số rút gọn I thước mà không ảnh hưởng đến việc tìm độ hỗ trợ tập nếu: Không tồn hai giao tác ti , tj T thỏa: X = {xi , xi2 , , xik } ti ≺ tj Đặt TCW = {CW1 , CW2 , , CWn } 70 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ,EndProcedure; ĐẠI HỌC ĐÀ NẴNG - SỐ ……………… Nguyễn Hữu Trọng, Lê Đức An, Trần Xuân Việt, Nguyễn Anh Hào EndProcedure; 3.3.4 Thuật toán phân cụm liệu: Procedure Cluster; 3.3.4 Thuật toán liệu: 3.3.4 Thuật toán phânphân cụm cụm liệu Input: TG, CSDL giao tác có trọng số Procedure Cluster; Procedure Cluster; rút gọn Input: CSDL giao có trọng sốsắp Input: TG,TG, CSDL giao tác tác có trọng số rút gọn Output: TCW: rút gọn Output: TCW: TậpTập cáccác cụmcác cụm liệu liệu Method: Method: Output: TCW: Tập các cụm liệu For Fori:=1 i:=1totonndodoCWi:=φ; CWi:= EndFor; ; EndFor; Method: Procedure 3.3.2 ThuậtCreat_Tree(T,Root); toán xây dựng W_Tree: For each t = ((x , wi1 ), (xEndFor; , wi2 ),ik,w ik,))TG (xik , wdo i1 i2),…,(x ik )) ∈ For each ,w i:=1 toiti=((x n doi1,w CWi:= i1),(x i2; i2 TG Procedure Input: CSDLCreat_Tree(T,Root); giao tác T = {t1, t2, …, tm} tập Foreach j:=1tto k-1 doi1),(xi2,wi2),…,(xik,wik))TG For =((x i1,w For j:=1i to k-1 mục liệu Igiao = {x1tác , x2, T…,=xn{t} 1, t2, …, tm} tập Input:dữCSDL ,wdo For j:=1 toij+1 k-1 ij+1),…,(xik,wik)); CWij:= CWijtij; ttijij=((x = ((x ij+1 , wij+1 ), , (xik , wik )); CWij := Output: mục Root: liệu I =W_tree; {x1, x2, …, xn} EndFor; tij=((x ),…,(xik,wik)); CWij:= CWijtij; CW ∪ t,w ij ij+1 ij ;ij+1 Method: Output: Root: W_tree; EndFor; EndFor; EndFor; For each xi I Si=Supp(xi); EndFor; Method: TCW:={CW1, CW2, …, CWn}; EndFor; EndFor; I':=(x …,x thỏa Si1… Siin);; EndFor; For each Si=Supp(x i1, xi2, x TCW:=CW1, CW2, , CWn; i inI)do EndProcedure; TCW:={CW1, CW2, .…, CWn}; EndProcedure; New(Root);P:=Root; I':=(xi1, xi2, …,xin) thỏa Si1… Sin; EndProcedure; 3.4 Ví dụ minh họa For j:=1 to n New(Root);P:=Root; 3.4 dụ minh Hình 1: Cây;W-Tree CSDL giao tác T: 3.4 Ví Ví dụCho minh họahọa P1^.Inf:=x ij P^.Right:=P1; ForNew(P1); j:=1 to n 3.3.2 Thuật toán xâyP1^.Inf:=x dựng câyijW_Tree: Cho T: giao T:t4 tác P1^.Left:=Nil; P:=P1; New(P1); ; P^.Right:=P1; GCho tác CSDL MụcCSDL DL tácgiao A,B,D t8 A,B,C,E Procedure Creat_Tree(T,Root); EndFor; t1 A,B,E tt54 A,C tt98 A,B,C P1^.Left:=Nil; P:=P1; G tác Mục DL A,B,D A,B,C,E Input:For CSDL giao táci1,T…,=x{t , t , , t } tập mục tt21 B tt65 B,C tt109 A,B,E,G each t ={x EndFor; A,B,E A,C A,B,C ik},1 2T m liệu I = {x1 ,t':=((x x2 , ,,1),…,(x xn } t B,C t A,C t B t B,C t A,B,E,G ,1)) with (Set(t')=t) and 10 j1 i1, …, xikjk}, T For each t ={x Output: Root: W_tree; t B,C t A,C (Sj1…jk,1)) Sjk); with (Set(t')=t) and 3.4.1 Xây dựng W_Tree: Method: t':=((xj1,1),…,(x P := P ^.Left; Sjk); i ); EndFor; 3.4.1 dựng For each x2 i ∈ I1j do(SSj1i… = Supp(x 3.4.1 XâyXây dựng Độ hỗ trợW_Tree choW_Tree: mục liệu : (B:8; Px2i2 :=, P.1j.^.Left; I’:=(xi1 ,If ,(P xin ) thỏa Si1or ≥ (t' ≥ ; exists P2kS^.Inf) then 2k^.Inft') in Độ hỗ trợE:3; chotrợ mỗicho mục liệu: A:7; :C:6; E:3; A:7; C:6; D:1; G:1) Độ hỗ mục (B:8; liệu (B:8; New(Root);P:=Root; D:1; G:1) If exists (P ^.Inft') or (t' P ^.Inf) then 2k 2k P2k^.Inf:= P2k^.InfTt' A:7; C:6; E:3; D:1; G:1) Sắp mụctrong giao liệu tác For j:=1 to n Sắp xếp cácxếp mụccác liệu theo giao thứ tựtác giảm Else New(P2); P2^.Inf:=t'; P ^.Inf:= P ^.Inf ∧ ∧ Tt' Jont(P1j,P2); 2k 2k New(P1); P1 Inf:=xij ; P Right:=P1; theo thứ tự giảm dần độ hỗ trợ T’ Sắp xếp mục liệu giao tác dần độ hỗ trợ T’ EndIf; Else New(P2); P2^.Inf:=t'; Jont(P1j,P2); P1∧ Left:=Nil; P:=P1; theo tự giảm độ hỗ trợ T’ G tácthứMục DL dầnt4củaB,A,D t8 B,A,C,E EndFor; EndIf; EndFor; t B,A,E t A,C tt98 B,A,C 54 G tác Mục DL t B,A,D B,A,C,E EndProcedure; For each t ={xi1 , , xik }, ∈ T EndFor; tt21 B tt65 B,C tt109 B,A,E,G B,A,E A,C B,A,C t’:=((xj1 , 1), , (xjk , 1)) with (Set(t’)=t) and EndProcedure; t3 B,C t7 A,C 3.3.3 Thuật toán chuyển CSDL giao tác thành 3.3 Thuật toán phân cụm liệu 3.3.1 Cây W_Tree Cây W_Tree có nhiều nhánh có cấp Các nút cấp 1, nút chứa tên mục liệu xếp theo thứ tự giảm Hình dần độ hỗW-Tree trợ Mỗi nút xi có Cây trỏ trỏ đến xâu nútHình cấp 2, chứa giao tác CSDL giao Cây W-Tree tốn câyxW_Tree: tác có3.3.2 trọngThuật số sắp,xây bắt dựng đầu i (Sj1 ≥ ≥ Sjk ); CSDL giao tác có trọng số CSDL rúttác gọnthành 3.3.3 toán chuyển giao P2 :=Thuật P1j ∧ Left; ∧ ∧ CSDL giao(PTrans; tác có trọng số rút gọn If exists Procedure 2k Inf≺t’) or (t’≺ P2k Inf) then t2 B t6 B,C t3 Tạo B,Ccây trọng tsố A,C W_Tree Tạo trọng số W_Tree t10 B,A,E,G Tạo trọng số W_Tree P∧ P∧ 2k Inf:= 2k Inf⊕T t’ Procedure Trans; ∧T = {t1, t2, …, tm} tập Input: CSDL giao Else New(P2); Ptác 2k Inf:=t’; Jont(P1j , P2); mục liệu Input: CSDLdữ giao tácI =T {x = 1{t, 1,x2t,2…, , …,xnt}m} tập EndIf; Output: TG:dữ CSDL trọng EndFor; mục liệugiao I = {xtác xn} số 1, xcó 2, …, EndProcedure; rútTGgọn Output: : CSDL giao tác có trọng số 3.3.3.Method: Thuậtrút toán chuyển CSDL giao tác thành CSDL giao gọn tác có trọng số rút gọn TG:=; Creat_Tree(T,Root); P1:=Root; Method: Chuyển thành sở liệu giao tác có trọng Procedure Trans; While P1Nil Creat_Tree(T,Root); P1:=Root; TG:=; sắpcây rút thành gọn: sở liệu giao tác có trọng Chuyển Input:While CSDL giao tác T P2:=P1^.Left; P1Nil do= {t1 , t2 , , tm } tập mục đượctsắp rútTập gọn:MDL có trọng số liệu I = {xWhile , xn } , x2 , P2Nil id P2:=P1^.Left; Output: TG : CSDL giao tác có trọng số rút gọn t’ ((B,3), (A,2), (E,2),số (G,1)) tid1 Tập MDL có trọng :=TGP2^.Inf; P2:=P2^.Next; WhileTGP2Nil Chuyển ((B,2), thành cơ(C,2)) sở liệu giao tác có trọng số Method: t’ ((B,3), (A,2), (E,2), (G,1)) EndWhile; TG:=TGP2^.Inf; rút gọn: Creat_Tree(T,Root); P1:=Root;P2:=P2^.Next; TG := φ; t’ ((B,1), 32 ((B,2), (A,1), (C,2)) (D,1)) P1:=P1^.Right; While EndWhile; P1Nil t Tập MDL(D,1)) có trọng số t’ ((B,2), (A,2),(C,2),(E,1)) id ((B,1), (A,1), ∧ EndWhile; P1:=P1^.Right; P2:=P1 Left; t’ ((A,2), (C,2)) 54 ((B,2), (A,2),(C,2),(E,1)) t’1 ((B,3), (A,2), (E,2), (G,1)) While P2Nil EndWhile; t’5 t’2((A,2), (C,2)) TG := TG ∪ P2∧ Inf; P2:=P2∧ Next; ((B,2), (C,2)) EndWhile; t’3 ((B,1), (A,1), (D,1)) P1:=P1∧ Right; t’ ((B,2), (A,2),(C,2),(E,1)) EndWhile; EndProcedure; t’5 ((A,2), (C,2)) 71 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 1(74).2014.QUYỂN II Phân rã giao tác t’11 ((B,3),(A,2),(E,2),(G,1)) t’12 ((A,2),(E,2),(G,1)) t’13 ((E,2),(G,1)) t’14 ((G,1)) t’21 ((B,2),(C,2)) t’22 ((C,2)) t’31 ((B,1),(A,1),(D,1)) t’32 ((A,1),(D,1)) t’33 ((D,1)) t’41 ((B,2),(A,2),(C,2),(E,1)) t’42 ((A,2),(C,2),(E,1)) t’43 ((C,2),(E,1)) t’44 ((E,1)) t’51 ((A,2),(C,2)) t’52 ((C,2)) Gom cụm liệu Cụm B: t’11 ((A,2),(E,2),(G,1)) t’21 ((C,2)) t’31 ((A,1),(D,1)) t’41 ((A,2),(C,2),(E,1)) Cụm C: t’43 ((E,1)) Cụm D = Cụm G = φ; Cụm A t’12 ((E,2),(G,1)) t’32 ((D,1)) t’42 ((C,2),(E,1)) t’51 ((C,2)) Cụm E t’13 ((G,1)) 3.5 Tính đắn thuật tốn For each t in CWj If X ⊆ Set(t) ∈ then SuppW(X):=SuppW(X)+1; EndIf; EndFor; If SuppW(X) ≥ S0 then X:={xj , X}; Lk := Lk ∪ X; EndIf; EndFor; EndFor; L:=L ∪ Lk ; Until Lk = φ; EndProcedure; Thử nghiệm Chúng tơi chạy thuật tốn CABOWD thuật tốn FP_Growth máy tính DELL CPU Intel Core i-3 2328M 2.30GHz hệ điều hành Windows 7, ngôn ngữ Delphi, chạy với ngưỡng tối thiểu thời gian tương ứng bảng so sánh sau với liệu mẫu http://fimi.ua.ac.be/data: Thuật tốn phân cụm liệu có ba bước: 5.1 Tập liệu T1I5D1000K • Bước 1: Xây dựng W_Tree duyệt qua CSDL lần S0 (1) (2) S0 (1) (2) nên độ phức tạp O(m) 100 6975 30643 600 588 4327 • Bước 2: Chuyển liệu từ W_Tree sang CSDL 200 3197 14074 700 540 4133 giao tác có trọng số rút gọn TG với ||TG || ≤ ||T|| nên 300 1662 7815 800 516 4113 có độ phức tạp O(m) 400 999 5419 900 489 3927 • Bước 3: Phân cụm TG thành TCW duyệt qua TG lần phân t ∈ TG thành tối đa n giao tác 500 708 4599 1000 464 3898 nên độ phức tạp O(m*n) (1): CABOWD (giây) (2) FP_Growth (giây) Do độ phức tạp O(m ∗ n) Cơ sở thuật toán xây dựng phép toán ⊕T quan hệ tương đương ≈ nên bảo đảm tính Thuật tốn CABOWD Chúng tơi đề xuất thuật tốn CABOWD (clustering algorithm based on weighted data), tìm tập thường xuyên sở liệu giao tác có trọng số rút gọn phân cụm Procedure CABOWD; Input : CW=CW1, CW2, , CWn;S0:Integer; Output: L=X ∈ I| SuppW(X) = S0; Method: L1 := {x ∈I| SuppW(x)≥ S0}= {xi1 , xi2 , xin1 }; //Có n1 mục liệu thường xuyên L:=L1 ; Repeat k:=2; Ck tập tất tập ứng viên có k phần tử tính từ Lk−1 ; Sắp xếp mục liệu phần tử Ck theo thứ tự giảm dần độ hỗ trợ; For j:= to n1 doUj := φ; EndFor; For each X={xi1 , xi2 , ,xik } ∈ Ck Ui1 := Ui1 ∪ {xi2 , , xik }; EndFor; Lk := φ; For j:= to n1 For each X in Uj SuppW(X):=0; 72 Hình 2: So sánh thời gian chạy hai thuật toán CABOWD FP_Growth liệu T1I5D1000K 5.2 Tập liệu T0.5I4D4000K S0 (1) (2) 1000 1104 8740 2000 646 5901 3000 427 4628 4000 305 4193 5000 233 4091 (1): CABOWD (giây) S0 (1) (2) 6000 195 4005 7000 174 3983 8000 161 3939 9000 153 3867 10000 151 3789 (2) FP_Growth (giây) Nguyễn Hữu Trọng, Lê Đức An, Trần Xuân Việt, Nguyễn Anh Hào Hình 3: So sánh thời gian chạy hai thuật toán CABOWD FP_Growth liệu T0.5I4D4000K Kết luận Thuật toán CABOWD xây dựng sở toán học với quan hệ tương đương ≈ phép hợp ⊕T nên bảo đảm tính đắn thuật toán Với CSDL giao tác, việc phân hoạch để nén liệu làm lần, với kết nén, ta áp dụng nhiều thuật toán khác tập liệu Với độ rút gọn liệu lớn sau phân hoạch tiết kiệm lớn không gian lưu trữ, tăng tốc độ xử lý Việc tìm tập xây dựng dựa thuật tốn Apriori nên bảo đảm tính dừng Qua thử nghiệm, thuật toán CABOWD chạy nhanh nhiều lần so với thuật tốn FP_Growth, điều nói lên tính hiệu thuật tốn Tài liệu tham khảo [1] Endu Duneja, A.K Sachan, "A Survey on Frequent Itemset Mining with Association Rules", International Journal of Computer Applications (0975 – 8887), Volume 46– No.23, Pp 18-24, May 2012 [2] Agrawal R., Imielinski T., Swami A., “Mining Associations between Sets of Items in Massive Databases”, In Proc.of the 1993 ACM-SIGMOD Int’l Conf on Management of Data, pages 207-216 [3] Agrawal R., Mannulla H., Srikant R., Toivonen H., Verkamo A I.,”Fast Discovery of Association Rules”, In Advances in Knowledge Discovery and Data Mining, AAAI Press, 1996, pages 307-328 [4] Han j, Pei H, and Yin Y, “Mining Frequent Patterns without Candidate Generation”, In: Proc Conf on the Management of Data (SIGMOD’00, Dallas, TX), ACM Press, New York, NY, USA 2000, pages 1-12 [5] J Han, M Kamber, J Pei Data Mining Concepts and Techniques, Third Edition, Morgan Kaufmann, 2012 [6] Nguyễn Hữu Trọng, "Thuật toán khai thác tập thường xuyên hiệu dựa kỹ thuật phân lớp liệu", Tạp chí Tin học Điều khiển học, Viện Khoa học Công Nghệ Việt Nam, Số 3, tập 23, trang 260-271, 2007 [7] Nguyễn Hữu Trọng, Nguyễn Thị Minh Châu, Phạm Ngọc Cơng, "Phát triển thuật tốn khai phá tập thường xuyên dựa vào phân lớp liệu – Thuật toán PHL (Phân hoạch lớp)", Kỷ yếu Hội thảo quốc gia Một số vấn đề chọn lọc công nghệ thông tin truyền thông lần thứ XIV Cần Thơ, 07-08/10/2011 Nhà xuất Khoa học kỹ thuật Hà Nội 2012, trang 510-521 [8] Nguyễn Hữu Trọng, Nguyễn Thị Minh Châu, Phạm Ngọc Công, " Một cách tối ưu sở liệu giao tác cho thuật tốn tìm luật kết hợp", Kỷ yếu Hội thảo quốc gia Một số vấn đề chọn lọc công nghệ thông tin truyền thông lần thứ XV Hà Nội, 03-04/12/2012 Nhà xuất Khoa học kỹ thuật Hà Nội 2013 Trang 227-232 [9] Damor Nirali N, Radhika Krishnan, Patel Hardik, "A New Method to Mine Frequent Itemsets using Frequent Itemset Tree", Research Journal of Computer and Information Technology Sciences, Vol 1(3), Pp 9-12, April 2013 [10] D Kerana Hanirex, A Kumaravel, "An Efficient Partition and Two Dimensional Approach For Mining Frequent Itemsets", International Journal of Technological Synthesis and Analysis, Volume Issue 1, [11] A Tiwari, Rajendra K Gupta, Dev Prakash Agrawal, "Cluster Based Partition Approach for Mining Frequent Itemsets", International Journal of Computer Science and Network Security, VOL.9 No.6, Pp 191-199 June 2009 [12] D.Kerana Hanirex, Dorai Rangaswamy, "Eficient Algorithm For Mining Frequent Itemsets Using Clustering Techniques", International Journal on Computer Science and Engineering, Vol No Pp 1028-1032, Mar 2011 [13] Jianwei Li, Ying Liu, Wei-keng Liao, Alok Choudhary, "Parallel Data Mining Algorithms for Association Rules and Clustering", CRC Press, Pp 1-25, 2006 [14] V.Vidhya Rani, I Elizabeth Shanthi, "A Study on Efficient Data Mining Approach on Compressed Transaction", Global Journal of Computer Science and Technology, Volume 11 Issue 14 Version 1.0, Pp 41-46, August 2011 (BBT nhận bài: 21/12/2013, phản biện xong: 19/01/2014) 73 ... CSDL giao tác có trọng số cụm CW0 i rút gọn Từ tính chất 3.1.8, ta cắt bỏ mục liệu Cho T CSDL giao tác có trọng số I Ta giao tác CW0 i thành tập CWi để giảm kích nói T CSDL giao tác có trọng số. .. giao tác có trọng số I liệu I gọi tương đương nếu: ∀X ⊆ I ta có Một CSDL giao tác có trọng số I mà giao tác SuppT1 (X) = SuppT2 (X) với SuppT (X) độ hỗ trợ gọi CSDL giao tác có trọng số X T I... CSDL giao tác có trọng số rút gọn t’ ((B,3), (A,2), (E,2) ,số (G,1)) tid1 Tập MDL có trọng :=TGP2^.Inf; P2:=P2^.Next; WhileTGP2Nil Chuyển ((B,2), thành cơ( C,2)) sở liệu giao tác có trọng số Method: