Khaiphámẫudãycótrọngsố trongCSDLdãy
GọiI={i 1 , i 2 , …, i n }là tập hợp các mục Mỗi mục𝑖𝑗∈ 𝐼được gán 1 giá trịtrọngsốw j thểhiệnmứcđộquantrọngcủamụci.MộttậpconkhácrỗngcủaIđượcgọi là một tập mục Một dãy dữ liệu S là một danh sách sắp xếp theo thứ tự của cáctập mục, ký hiệu𝑆 =〈(𝑠1), (𝑠2), … , (𝑠𝑚)〉, trong đós j là một tập mục hay một phầntửcủadãy.
MộtcơsởdữliệudãycótrọngsốSDBlàmộtbộ,trongđósidlàmộtđịnh danh của dãy vàS k là một dãy dữ liệu, đồng thời mỗi mục𝑖𝑗∈ 𝐼được gán 1 giátrịtrọngsốw jthể hiện mức độquantrọngcủamục𝑖𝑗trongCSDL.
Ví dụ: CSDL dãy có trọng số SDB được mô tả như trong Bảng 1.2 và giá trịtrọngsốcủacácmụcđược mô tảnhư trongBảng1.3
Bảng1.2thểhiệnmộtCSDLdãygiaodịchcủakháchhàng.Trongđó,tậpcácmục chính là tương ứng với tên của các mặt hàngI ={a, b, c, d, e, f, g}, ở đây mỗidãy thể hiện tất cả các giao dịch mà một khách hàng thực hiện Khách hàng thứ nhấtthực hiện 5 giao dịch mua hàng lần lượt theo thứ tự {a}, {abd}, {f}, {a}, {d}; kháchhàngthứ 2thựchiện5giaodịchlà{e},{ab},{d},{c},{g};
Bảng 1.3 thể hiện giá trị trọng số của mỗi mục tương ứng với mỗi mặt hàngnhằm thể hiện mức độ quan trọng của các mục trong các giao dịch Trong đó, trọngsốmặthàngccógiátrị0,1làthấpnhất(thểhiệnmứcđộquantrọnghoặctỉtrọnggiácủamặthà ngcthấpnhất),trọngsốmặthànggcógiátrị0,8làcaonhất(thểhiệnmứcđộ quan trọng hoặc tỉ trọng giá của mặt hàng g là cao nhất) Giá trị trọng số này cóthểđượcthayđổi,điềuchỉnhtheo yêucầugiúpchocânbằngmứcđộquantrọngcủacácmục vớinhautrongcácgiaodịch. Địnhnghĩa1.2 K í c hthướccủa mộtdãy[2]
Kích thước của một dãy𝑆 =〈(𝑠 1 ), (𝑠 2 ), … , (𝑠 𝑚 )〉 ược ký hiệu |S| là tổngđược ký hiệu |S| là tổng sốdãys jt r o n g dãyS.Vídụ:dãyS=cókíchthước|S|=5. Địnhnghĩa1.3 Đ ộdàicủa mộtdãy[2] Độ dài của một dãy𝑆 =〈(𝑠1), (𝑠2), … , (𝑠𝑚)〉trong ó trong óđược ký hiệu |S| là tổng được ký hiệu |S| là tổng s j là một tậpmục hay một phần tử của dãy (𝑠 𝑗⊆ 𝐼) được ký hiệu l(S) là tổng số mục𝑖 𝑗∈ 𝐼 c ótrongdãyS.Mộtdãycóđộdàilđược gọilà l-sequence.
Vídụ:dãyS=cóđộdài làl(S)=7. Địnhnghĩa1.4 D ã yconvàdãychứa[2]
Dãy α=〈(𝑆 1 ),(𝑆 2 ),…,(𝑆 𝑚 )〉 được gọi là dãy con của dãy 𝛽〈(𝑆′ 1 ),(𝑆′ 2 ),…,(𝑆′ 𝑚 ),…,(𝑆′ 𝑛 )〉nếuvàchỉnếu𝑆 𝑖⊆ 𝑆 ′ 𝑖 Kýhiệulà𝛼≼𝛽.D ã y β cũngđượcgọilàdãychứa củadãyα.
Ví dụ: Dãy và dãy là một trong các các dãy con của dãychứa. Địnhnghĩa1.5 Đ ộhỗtrợcủamộtdãytrongCSDLdãy[2] Độhỗtrợ( t u y ệ t đối)củadãyαtrongCSDLdãySDBlàtổngsốdòngcóchứaαtrongS
Víd ụ : D ã y < ( b d ) > t r o n g C S D L S D B t h ể h i ệ n t ạ i B ả n g 1 2 t h ì đ ộ h ỗ t r ợ su p()=2. Địnhnghĩa1.6 Trọngsố củadãy[33]
ChoI={i 1 ,i 2 ,…,i n }làtậphợpcácmụcdữliệu.Mỗimụci j Iđượcgánmộttrọngs ố w jvới j=1, ,n.Khiđótrọngsốchuẩnhóacủamộtdãyα〈(𝑆1),(𝑆2),…,(𝑆𝑚)〉cóđộ dàikvàs jc ó dạng(i 1 i 2 … i k ) đượctính bằngcôngthức
Ví dụ: Dãy trong CSDL SDB thể hiện tạiBảng 1.2thì độ hỗ trợ vớitrọng số của dãylà NWsupport() = NW() *sup()
Cho một CSDL dãy SDB, mỗi mục ijI được gán một trọng sốw j ,mộtngưỡnghỗtrợtốithiểuwminsup.Mộtdãy𝛼 ượcđược ký hiệu |S| là tổng gọilàmẫudãythườngxuyêntrọngsốnế uthỏamãntínhchất:
Vídụ:Vớidữ liệutrongBảng1.2vàBảng1.3 Độhỗtrợcủadãy=làsup( ) = 1 5 > 1 , 4 v à N W S u p p o r t ( < ( g ) > ) = 2 , 4 > > 1 , 4
Vìvậy,haidãyvà làmẫudãythườngxuyêntrọngsố,còndãy
Qua ví dụ trên, ta thấy, một dãy có thể không phải là một mẫu dãy thườngxuyêncótrọngsố(vídụdãy)nhưngcóthểkếthợpvớicácmụckháccóđộhỗtrợ lớn hơn hoặc trọng số lớn hơn để trở thành mẫu dãy thường xuyên có trọng sốtrongcácmẫucóđộdàilớnhơn(dãy< ( b )
Mục tiêu của bài toán khai phá mẫu dãy thường xuyên trọng số là tìm tất cảcácmẫudãythườngxuyên cótrọngsố trongCSDLdãySDB.Bàitoánnhư sau:
• Cho một CSDL dãy SDB, mỗi mụci j Iđược gán một trọng sốw j ,một ngưỡnghỗtrợtốithiểuwminsup.TìmtấtcảcácmẫudãythườngxuyêntrọngsốtrongSDB
• Mẫudãythườngxuyêntrọngsốkhôngthỏamãntínhchấtphảnđơnđiệu,nghĩalà tập con của một mẫu dãy thường xuyên trọng số không nhất thiết phải là mẫudãythườngxuyêntrọngsố.
Các thuật toán khai phá mẫu dãy trọng số trong các CSDL dãy có thể đượcphânchiathành cácnhómchính:
- Thuật toán MWSP [32] do Wei và đồng sự đề xuất là một mở rộng củathuật toán AproiriAll, có bổ sung thông tin trọng số của các dãy dữ liệu,thuật toán sinh các dãy ứng viên cha theo phương pháp ghép nối từ cácdãyứngviêncủadãyconvàthựchiệnduyệtCSDLdãynhiềulầnđểkiểmtradãyth ườngxuyêncótrọngsố.
- Thuật toán Wspan [33] do Unil Yun và đồng sự đề xuất là một mở rộngcủa thuật toán PrefixSpan,bổ sung thông tin trọng số của các dãy dữ liệu,thuật toán sử dụng giá trị hằng số trọng số lớn nhất của các mục dữ liệubanđầuvàkhaiphátheophươngpháptăngtrưởngmẫudãy,tuynhiêncácdãythường xuyênkhaipháđượctrongthuậttoánWSpanchỉcầnđápứngđiều kiện độ hỗ trợ với hằng số trọng số lớn nhất trong CSDL điều kiệnmà không quan tâm tới giá trị trọng số thực của từng dãy thường xuyêntìmđược.
- Thuật toán WSPM [34] do Tao đề xuất là một mở rộng của thuật toánWSpan,thuậttoánsửdụnggiátrịtrọngsốlớnnhấtcủamộtdãybằngtíchcủatrọ ngsốlớnnhấtcủacácmụcdữliệubanđầunhânvớiđộdàilớnnhấtcủa các dãy dữ liệu trong CSDL và khai phá theo phương pháp tăng trưởngmẫu dãy để sinh tập dãy ứng viên Sau đó thực hiện sinh các CSDL điềukiện theo các dãy ứng viên và kiểm tra độ hỗ trợ nhân với trọng số thựccủadãyđểtìmcácdãythườngxuyêncótrọngsố.
Thuật toán PrefixSpan [31] là thuật toán cơ bản khai phá các mẫu dãy trongCSDLdãythuộcnhómkhaiphátheophươngpháptăngtrưởngmẫudãysửdụngtìmkiếm theo chiều sâu Phương pháp tăng trưởng mẫu dãy tránh được việc sinh ra vàkiểmtracácmẫudãykhôngtồntạibằngcáchduyệtđệquyCSDLđểsinhứngviên. Địnhnghĩa1.10 Tiềntố[31]
Giả sử các mục dữ liệu trong các tập mục thuộc dãy được sắp xếp theo thứ tựchữ cái Cho một dãy= < e1e2…en>, một dãy= (m≤n) được gọi làtiềntốcủanếuvàchỉnếu:
Vídụ:Chodãys=,khiđó,cáctiềntốcủadãyslà,,
Cho một dãy= , một dãy= (m≤n) được gọilà tiền tố của Dãyγ= được gọi là hậu tố củavới tiền tố, kýhiệu làγ=/vớie’’ m = (e m –e’ m ) Hay ký hiệu là=.à Nếukhụng phải là dãyconcủathìhậutốcủavớitiềntốlàrỗng.
Vídụ:Chodãys=,khiđólàhậutốcủasvớitiềntố,
Cho một dãy= là một mẫu dãy của một CSDL dãy SDB vàlàdãy với tiền tố Độ hỗ trợ củatrong CSDL chiếu S|ký hiệu là𝑠𝑢𝑝𝑆| 𝛼 (𝛽)là sốlượngcácdãyγtrongS|c ó c h ứ anghĩalà𝛽⊆𝛼 𝛾.
Theo thuật toán PrefixSpan [31], cách tiếp cận phương pháp tăng trưởng mẫudãycủathuậttoánnàylànềntảngđượcsửdụngtrongviệcpháttriểncáckếtquảcủaluậnánnày vàđượctrìnhbàytrong Thuậttoán1.1sauđây:
PrefixSpaninput:SDB:CSDL dãy minsup: Độ hỗ trợ cực tiểuoutput :Tập các mẫu dãy thường xuyênThủ tục PrefixSpan (α,k,SDB|α,k,SDB|k,k,SDB|SDB| α ) Parameter
- SDB| α làCSDLchiếucủatiềntốα.nếuα=thìSDB| α =SDB
(b) có thểđược n h ó m vàov ớ i αđ ể tạothành m ộ t mẫ ud ã y t hườngxuyên
Khai phámẫudãycó trọng sốtrong CSDL dãyvới khoảng cáchthờigian
Địnhnghĩa1.14 Dãy dữ liệu có khoảng cách thời gian[37]Mộtdãydữ liệuScókhoảngcáchthờigiancódạng:
Vớit,,l àkhoảngcáchthờigian giữatậpmụcs vàtậpmụcs códạng: t , =s time- s time;
(2,abd)>baogồms1=(a)vàs2=(abd),trongđókhoảngcáchthờigiangiữas1v às2c ó g i átrịlà2. Địnhnghĩa1.15 CơsởdữliệudãycótrọngsốiSDBvớikhoảngcáchthờigian
GọiI={i 1 , i 2 , …, i n }là tập hợp các mục Mỗi mục𝑖𝑗∈ 𝐼được gán 1 giá trịtrọngsốw j thểhiệnmứcđộquantrọngcủamụci.MộttậpconkhácrỗngcủaIđượcgọi là một tập mục Một dãy dữ liệu S là một danh sách sắp xếp theo thứ tự của cáctập mục, ký hiệu𝑆 =〈(𝑡1,1, 𝑠1), (𝑡1,2, 𝑠2), … , (𝑡1,𝑚, 𝑠𝑚)〉, trong đós j là một tập mụchay một phần tử của dãy (𝑠𝑗⊆ 𝐼)vàt , là khoảng cách thời gian giữa tập mục s và s
, trong đósidlà một định danh của dãy vàS k là một dãy dữ liệu với khoảngcách thời gian, đồng thời mỗi mục𝑖𝑗∈ 𝐼được gán 1 giá trị trọng sốw jthể hiện mức độquantrọngcủamục𝑖 𝑗trong CSDL.
MộtdãyS kthường đượcbiểudiễnbởicácchữcáitrongbảngchữcái,mỗichữcáithểhiệnmột mục.
Ví dụ: CSDL dãy có trọng số iSDB với khoảng khoảng cách thời gian đượcmô tảtrongBảng1.4vàgiátrịtrọngsốcủacácmụcđượcmôtảtrongBảng1.5
Bảng 1.4 thể hiện một ví dụ về CSDL dãy giao dịch của khách hàng với khoảngcách thời gian Trong đó, tập các mục chính là tương ứng với tên của 07 mặt hàngI={a,b,c,d,e,f,g}và06dãyđầuvàovớisidlầnlượttừ1đến6vớicácdãycókíchthước và độ dài khác nhau Mỗi dãy sid thể hiện tất cả các giao dịch mà một kháchhàng thực hiện có thông tin về khoảng cách thời gian thực hiện các giao dịch này.Khách hàng thứ nhất (sid=1)S 1= thể hiện mộtchuỗi các giao dịch mua sắm của một người trong một cửa hàng: Người này đã muahàng5lầntạicửahàngđó,lầnđầungườinàymuasảnphẩma;lần2mua3sảnphẩma,bvàdsau đó 1 ngày (1 đơn vị khoảng cách thời gian);lần 3 mua sản phẩmfsauđó 1 ngày; lần 4 mua sản phẩmasau đó 1 ngày và lần 5 mua sản phẩmdsau đó 1ngày.
Bảng 1.5 thể hiện giá trị trọng số của mỗi mục tương ứng với mỗi mặt hàngnhằm thể hiện mức độ quan trọng của các mục trong các giao dịch Trong đó,trọngsốmặthàngccógiátrị0,1làthấpnhất(thểhiệnmứcđộquantrọnghoặctỉtrọnggiá củamặthàngcthấpnhất),trọngsốmặthànggcógiátrị0,8làcaonhất(thểhiệnmứcđộ quan trọng hoặc tỉ trọng giá của mặt hàng g là cao nhất) Giá trị trọng số này cóthểđượcthayđổi,điềuchỉnhtheo yêucầugiúpchocânbằngmứcđộquantrọngcủacácmục vớinhautrongcácgiaodịch. Địnhnghĩa1.16 Kíchthướccủa mộtdãyvớikhoảngcáchthờigian[37]
Kíchthướccủa mộtdãy𝑆=〈(𝑡 1,1 ,𝑠 1 ),(𝑡 1,2 ,𝑠 2 ),…,(𝑡 1,𝑚 ,𝑠 𝑚 )〉 ượcđược ký hiệu |S| là tổng ký hiệu
Vídụ:dãyS1= cókíchthước|S|=5. Địnhnghĩa1.17 Độdàicủa mộtdãy với khoảngcáchthờigian[37] Độ dài của một dãy𝑆 =〈(𝑡 1,1 , 𝑠 1 ), (𝑡 1,2 , 𝑠 2 ), … , (𝑡 1,𝑚 , 𝑠 𝑚 )〉trong ó trongđược ký hiệu |S| là tổng được ký hiệu |S| là tổngós j là một tập mục hay một phần tử của dãy (𝑠𝑗⊆ 𝐼)vàt , là khoảng cách thời giangiữa tập mụcs và s đ ư ợ c k ý h i ệ u l ( S ) l à t ổ n g s ố m ụ c𝑖𝑗∈ 𝐼c ó t r o n g d ã y S
Vídụ:dãyS1=cóđộdàilàl(S1)=7. Địnhnghĩa1.18 Dãyconvàdãychứavớikhoảngcáchthờigian[37]
Dãyα=〈(𝑡 1,1 ,𝑆 1 ),(𝑡 1,2 ,𝑆 2 ),…,(𝑡 1,𝑚 ,𝑆 𝑚 )〉 ư ợ cđược ký hiệu |S| là tổng gọilàdãyconcủadãy𝛽〈(𝑡′ 1,1 , 𝑆′ 1 ), (𝑡 ′ 1,2 , 𝑆′ 2 ), …, (𝑡 ′ 1,𝑚 , 𝑆′ 𝑚 ), …, (𝑡 ′ 1,𝑛 ,𝑆′ 𝑛 )〉n ế uvàchỉnếu:
Kýhiệulà𝛼≼𝛽 Dãyβcũng được gọilàdãychứacủadãyα.
Ví dụ: Dãy và dãy là một trong các dãy concủa dãy S 1 =, và S1được gọi là dãy chứa của hai dãycontrên. Định nghĩa 1.19 Độ hỗ trợ của một dãy trong CSDL dãy với khoảng cách thờigian[37] Độhỗtrợ(tuyệtđối)củadãyαtrongCSDLdãyiSDBlàtổngsốdòngcóchứaαtron giSDB,kýhiệulàsup(α).
Ví dụ:Dãy trongCSDLiSDBthểhiệntạiBảng
1.3thìđộhỗtrợsup()= 1. Địnhnghĩa1.20 Trọngsốcủadãyvớikhoảngcách thờigian[40]
ChoI={i 1 ,i 2 ,…,i n }làtậphợpcácmụcdữliệu.Mỗimụci j Iđượcgánmộttrọng số w j với j = 1, ,n Khi đó trọng số của một dãy 〈(𝑡1,1,𝑠1),(𝑡1,2,𝑠2),…,(𝑡1,𝑚,𝑠𝑚)〉c óđ ộ d à ik v à s jc ó dạ n g( i 1 i 2 …i k ) đượctínhbằngcôngthức
( 1 , a b ) > l à NW()=(0,2+0,6+0,3+0,2)/4=0,325. Địnhnghĩa1.21 Độ hỗ trợ với trọng số của dãy với khoảng cách thời gian[40]Độhỗtrợvớitrọngsốcủadãykýhiệulà𝑁𝑊𝑠𝑢𝑝𝑝𝑜𝑟𝑡(𝛼):
Ví dụ: Dãy trong CSDL iSDB thể hiện tại Bảng 1.4 thì độ hỗtrợvớitrọngsốcủadãylàNWsupport()=NW()*sup()=0,325*1=0,325. Địnhnghĩa1.22 RàngbuộckhoảngcáchthờigiantrênCSDLdãycótrọngsố
Việc áp dụng đồng thời cả 04 ràng buộc thời gian C1,C2,C3,C4trong quá trìnhkhai phá các mẫu dãy trong CSDL dãy trọng số có khoảng cách thời gian nhằm tìmkiếm tất cả các mẫu dãy phải thỏa mãn cả C1,C2,C3,C4đồng thời các tính chất logicgiátrịcủacácđiềukiệnràngbuộckhoảngcáchthờigiannàyphảithỏamãn(C1≤ C 2vàC3≤ C 4và
Các ràng buộc C1,C2và C4là các ràng buộc phản đơn điệu Một ràng buộcphản đơn điệu thỏa mãn "khi một dãy A không thỏa mãn ràng buộc, bất kỳ một dãychứanàochứa dãyconAcũng khôngthỏamãnràngbuộc". Đối với ràng buộc C3được phân loại là ràng buộc đơn điệu Một ràng buộcđơn điệu thỏa mãn
“khi một dãy A thỏa mãn ràng buộc, thì bất kỳ một dãy chứa nàochứadãycon Acũngthỏamãnràngbuộc”.
Các điều kiện ràng buộc thời gian C1,C2,C3,C4này có thể thay đổi, điều chỉnhtheo yêu cầu của người sử dụng giúp chủ động lựa chọn những điều kiện ràng buộcthời gian mong muốn trong khai phá dữ liệu trong CSDL dãy có khoảng cách thờigian.
Vídụ:VớiS=trongCSDLiSDB,cácdãy 𝛼=vàdãy𝛽 = < ( 0 , a ) ( 2 , f)> làcácdãyconcủadãychứaSthì:
- VớiđiềukiệnC 1 =1thìdãySthỏamãntínhchấtcácdãyliềnkềcáchnhau1 đơn vị thời gian. Tuy nhiên nếu C1=2 thì dãy S không thỏa mãn. Tuynhiên,dãycon𝛼lạithỏamãnđiềukiệnC1-okhoảngcáchgiữahaidãyliềnkềtr ong𝛼nàylà4>C1.
- Với điều kiện C 2 =3 thì dãy S thỏa mãn vì khoảng cách giữa dãy hai dãyliền kề là thỏa mãn, nhưng dãy con𝛼lại không thỏa mãn vì khoảng cáchgiữahai dãyliềnkềtrong𝛼có giá trị4> C2.
- VớiđiềukiệnC 3 =3thìdãySthỏamãnvìkhoảngcáchgiữadãyđầuvàdãycuối có giá trị 4 là thỏa mãn, nhưng với dãy con𝛽lại không thỏa mãn vìkhoảngcáchgiữadãyđầuvàdãycuốitrong𝛽có giá trị2 C4, nhưng với dãy con𝛽thì thỏa mãn vì khoảngcách giữadãyđầuvàdãycuốitrong𝛽có giá trị2< C4. Địnhnghĩa1.23 Mẫudãythườngxuyêntrọngsốvới khoảngcáchthờigian[40]
Cho một CSDL dãy iSDB có khoảng cách thời gian, mỗi mục ijI được gánmột trọng sốw j ,một ngưỡng hỗ trợ tối thiểu wminsup, các ràng buộc khoảng cáchthời gian C1, C2, C3, C4 Một dãyđược gọi là mẫu dãy thường xuyên trọng số vớikhoảngcáchthờigiannếuthỏamãntínhchất:
NWSupport()wminsup𝖠thỏamãntínhchấtcácràngbuộc C 1 ,C 2 ,C 3 ,C 4 Định nghĩa 1.24 B à i t o á n k h a i p h á m ẫ u d ã y t h ư ờ n g x u y ê n t r ọ n g s ố v ớ i k h o ả n g cáchthờigian[40]
Mục tiêu của bài toán khai phá mẫu dãy thường xuyên trọng số với khoảngcách thời gian là tìm tất cả các mẫu dãy thường xuyên có trọng số trong CSDL dãyiSDBcókhoảngcáchthờigian.Bàitoánnhưsau:
• Cho một CSDL dãyiSDBcó khoảng cách thời gian, mỗi mụci j Iđược gánmột trọng sốw j ,một ngưỡng hỗ trợ tối thiểuwminsup, các ràng buộc khoảngcách thời gianC 1 , C 2 , C 3 , C 4 Tìm tất cả các mẫu dãy thường xuyên trọng sốvớikhoảngcáchthờigiantrongiSDB,tứclàtìmtậpL:
• Mẫu dãy thường xuyên trọng số vớikhoảng cách thời gian không thỏa mãntínhchấtphảnđơnđiệu,nghĩalàtậpconcủamộtmẫudãythườngxuyêntrọngsố với khoảng cách thời gian không nhất thiết phải là mẫu dãy thường xuyêntrọngsốvớikhoảngcáchthờigian.
Các thuật toán khai phá mẫu dãy trong các CSDL dãy có khoảng cách thờigianhiệnnaycó thểđượcphânchiathànhcácnhómchính:
- CácthuậttoántheocáchtiếpcậndựatrênràngbuộcnhưcSpade[35],[14]thực hiện khai phá dãy thường xuyên thỏa mãn hai điều kiện ngưỡng hỗtrợ nhỏ nhất và ràng buộc khoảng cách thời gian Ví dụ như khi người sửdụng đặt giá trị lớn nhất giữa khoảng cách thời gian là 1 ngày, thì thuậttoán sẽ khai phá các dãy thường xuyên có các tập mục xuất hiện trong 1ngày Mặc dù các thuật toán theo cách dựa trên các ràng buộc không khaiphácácdãycókhoảngcáchthờigianquádài,tuynhiênrấtkhóchongườisử dụng đặt được các ràng buộc thời gian tối ưu để khai phá các dãy cókhoảng cách thời gian, thông thường người sử dụng phải thực hiện chạylạigiảithuậtkhithayđổicácgiá trịcủaràngbuộc đó.
- Với các thuật toán theo cách tiếp cận dựa trên mở rộng cơ sở dữ liệu dãy,vídụnhưChenvàđồngsự[38][39],đềxuấtthuậttoánI-
PrefixSpanthựchiệnkhaiphámẫudãythườngxuyêncókhoảngcáchthờigian.Vídụnh ư:chomộttập={I 0 ,I1,I2,I3}vớiI0:t=0,I1:0 C8, nhưng với dãy con𝛽thì thỏa mãn vìkhoảngcáchgiữadãyđầuvàdãycuốitrong𝛽có giá trị2< C8. Địnhnghĩa1.41 Mẫudãylợiíchcaovớikhoảngcáchthờigian
I được gán một trọng sốw j ,một ngưỡng hỗ trợ tối thiểu minUtil, các ràng buộckhoảngcáchthờigian C5,C6,C7,C8 Mộtdãyđượcgọilà mẫudãylợiíchcaovớikhoảngcáchthờigiannếuthỏamãntínhchất: su(α,QiSDB)minUtil𝖠thỏamãn cácràng buộc𝐶 5 ,𝐶 6 ,𝐶 7 ,𝐶 8 Địnhnghĩa1.42 Bàitoánkhaiphámẫudãylợiíchcaovớikhoảngcáchthờigian
Mục tiêu của bài toán khai phá mẫu dãy lợi ích cao với khoảng cách thời gianlà tìm tất cả các mẫu dãy thường xuyên lợi ích cao trong CSDL dãy định lượngQiSDBcókhoảngcáchthờigian.B à i toánnhư sau:
• Cho một CSDL QiSDB, mỗi mục i j I trong dãy S a được gán một giá trị lợiíchtrongvàmộtgiátrịlợiíchngoài;ChomộtngưỡnghỗtrợtốithiểuminUtil,cácgiátrịrà ngbuộckhoảngcáchthờigianC5,C6,C7,C8 Tìmtấtcảcácmẫudãylợiíchcaocókhoảng cáchthờigiantrongQiSDB,tứclàtìmtậpL:
Giớithiệu
CácthuậttoánkhaiphámẫudãythườngxuyêncổđiểnAprioriAll[2],FreeSpan[13], PrefixSpan [31], Spam [30], Spade [11], Lapin-Spam [18], CM-Spade, CM- Spam[17]cómộtsốhạnchế:thứnhấtlàcácmụctrongCSDLdãycóđộquantrọngnhư nhau nhưng trên thực tế mỗi mục có độ quan trọng khác nhau Thứ 2, các mẫudãy đều có dữ liệu về thời gian xảy ra sự kiện trong mẫu dãy đó nhưng các dữ liệunày đều bị bỏ qua Thứ 3, các giải thuậtcần xác định một ngưỡng tối thiểuminsuptuy nhiên thực tế thì rất khó xác định một ngưỡng tối thiểu phù hợp; một ngưỡng tốithiểu quá cao sẽ bỏ qua rất nhiều các mẫu dãy có giá trị, trong khi một ngưỡng tốithiểuthấpsẽcóthểtạoraquánhiềumẫudãykhôngcầnthiết. Để giải quyết vấn đề thứ nhất, có thể gán cho mỗi mục trong CSDL một giá trịtrọng số thể hiện mức độ quan trọng của mục đó Các thuật toán khai phá mẫu dãyvớitrọngsốcó thểkểtớilà [33],[50]. Để giải quyết vấn đề thứ 2, các giá trị thời gian của các mẫu dãy đều phải đượctính đến Các với mẫu dãy khoảng cách thời gian giữa các thành phần trong dãy lớnthìsẽcóítgiátrịhơncácmẫudãycókhoảngcáchnhỏ.Cácthuậttoánkhaiphámẫudãy với khoảng cách thời gian đã được đề xuất với các cách tiếp cận khác nhau nhưtrong[38],[39],[37],[53]. Để giải quyết vấn đề thứ 3, bài toán khai phá top-k mẫu dãy thường xuyên đã rađời Một số thuật toán khai phá top-k có thể kể tới như [54], [55], [21], [56], [57],[58], [59] Các thuật toán này được các tác giả đề xuất để tìm các mẫu có tần suấtxuất hiện cao nhất Trong khai phá các mẫu dãy thông thường, người dùng thườngkhó đặt ngưỡng tối thiểu bằng cách sử dụng các thuật toán khai thác mẫu dãy truyềnthốngnếungườidùngkhôngcókiếnthứcnềntảngvềcơsởdữliệu.Nếungưỡngtốithiểuđư ợcđặtquáthấp,quánhiềumẫudãycóthểđượctìmthấyvàcácthuậttoáncóthểtrởnênrấtchậmvàn ếungưỡng tốithiểuđượcđặtquá cao,cóthểtìmthấyquáítmẫudãy.Cácthuậttoánkhaithácmẫudãytop- kgiảiquyếtvấnđềnàybằngcáchchophépngườidùngtrực tiếpchỉra số lượngmẫukđượctìmthấythayvìsửdụngthamsố minsup Khai phá mẫu dãy top-k là một vấn đề khó hơn khai phá mẫu dãy thôngthường[21].Cácthuậttoántìmtop- kmẫuthườngxuyênkểtrênchỉquantâmtớitầnsuấtxuấthiệncủacácmẫudãymàchưatínhtớiyếut ốkhoảngcáchthờigianvàmứcđộquantrọngcủatừngmụcdữ liệu.
Thuật toán WIPrefixSpan [40] khai phá mẫu dãy thường xuyên có trọng số vớikhoảngcáchthờigian.WIPrefixSpankhôngchỉquantâmtớikhoảngcáchthờigian,tần xuất xuất hiện của từng mẫu dãy mà còn quan tâm tới giá trị (trọng số) của từngmụcdữliệu.MặcdùWIPrefixSpancóthểtìmracácmẫudãythườngxuyêncótrọngsố với khoảng cách thời gian dựa trên ngưỡng tối thiểuwminsupvà các ràng buộcthời gian C 1 , C2, C3,
C4nhưng rất khó để xác định được ngưỡng tối thiểuwminsupthích hợp để tìm được các mẫu dãy có giá trị Bởi vì có rất nhiều yếu tố ảnh hưởngtớikếtquảtìmđượcnhư:độphânbốcủacácmụcdữliệuvàtrọngsố,mậtđộcủacơsở dữ liệu, độ dài của các dãy… Với cùng một ngưỡng hỗ trợ, một số bộ dữ liệu sẽchorahàngtriệumẫudãy,mộtsốkhác lạikhôngchorakếtquảnào.
Các khái niệm cơ bản trong khai phá mẫu dãy có trọng số trong CSDL dãy vớikhoảngcáchthờigianđãđượctrìnhbàytrongMục1.3củaChương1.Ngoàira,trongphạm vi bài toán khai phá top-k mẫu dãy được kế thừa và tiếp tục phát triển từ thuậttoánWIPrefixSpan[40]vàthuậttoánTKS[21].Trênthựctế,bàitoántìmtop-kmẫudãy thường xuyên trọng số với khoảng cách thời gian sẽ có nhiều điểm khác biệt sovới các thuật toán tìm top-k mẫu dãy thông thường và do đó cũng mang lại nhiềuthách thức hơn Để giải quyết vấn đề tìm top-k mẫu dãy thường xuyên trọng số vớikhoảngcáchthờigian,chúngtôiđềxuấtgiảithuậtTopKWFP.ThuậttoánTopKWFPgiảiquyết 3vấnđề:trọngsố,khoảngcáchthờigianvàtop- kmẫudãy.Cácthửnghiệmchothấythuậttoánhiệuquảtrongviệcgiảiquyếtbàitoánđãđưara.
Thuậttoánkhaiphátop-kmẫudãy thườngxuyêntrọngsốvớikhoảngcáchthờigian(TopKWFP)
Bàitoánđặtra
Bài toán khai phá top-k mẫu dãy thường xuyên trọng số với khoảng cách thờigian là tập các top-k các mẫu dãy thường xuyên trọng số trong CSDL dãyiSDBcókhoảngcáchthờigian.Bàitoánnhưsau:
• Cho một CSDL dãyiSDBcó khoảng cách thời gian, mỗi mụci j Iđược gánmột trọng sốw j ,một số tự nhiên k, các ràng buộc khoảng cách thời gianC 1 ,C 2 ,C 3 ,C 4
• Mộtdãytđượcgọilàmộtdãythuộctop- kmẫudãythườngxuyêntrọngsốvớikhoảngcáchthờigiannếucóíthơnkdãycóđộhỗtrợvớ itrọngsốchuẩnhóalớn hơn NWSupport(t) và t thỏa mãn các ràng buộc thời gianC 1 , C 2 , C 3 , C 4 Giá trị wminsup tối ưu được định nghĩa là:𝜀 = min{NWSupport(t)|t
∈Τ }.VớiΤlà tập cáctop-k mẫu dãy thường xuyên trọng số với khoảng cách thờigian.
Bài toán đặt ra: Phát hiện top-k các các mẫu dãy thường xuyên trọng số trongCSDLdãyiSDBcókhoảngcáchthờigian
Ýtưởngthuật toán
Thuật toán TopKWFP dựa trên thuật toán WIPrefixSpan [40] là thuật toán sửdụngcơsởdữliệutiềntốvàphươngpháptăngtrưởngmẫudãyvàthuậttoánTKS
[21] làthuậttoánkhaiphátop-kmẫudãycổđiển.Đầutiên,thuậttoánTopKWFPcơbản với chiến lược tăng dần ngưỡng hỗ trợ wminsup, sau đó bổ sung một chiến lượchiệuquảđểtạo ứngviênhứahẹnnhất.
- Tăngdầnngưỡnghỗtrợwminsip:ChiếnlượcTopKWFP1:Đặtwminsup=0. Duyệt CSDL iSDB và tìm các mẫu dãy thường xuyên bằngcách áp dụng phương pháp tăng trưởng mẫu dãy Mỗi khi một mẫu dãyđượctìmthấy,nósẽđượcđưavàomộtdanhsáchLcácmẫudãyđượcsắpxếp theo độ hỗ trợ có trọng số NWSupport Danh sách này được sử dụngđể lưu các mẫu dãy đã được tìm thấy Khi có đủ k mẫu dãy trong danhsách L, giá trị wminsup sẽ được tăng lên bằng với NWSupport của mẫudãy có giá trị NWSupport nhỏ nhất trong L Việc tăng giá trị wminsup sẽgiúp giảm bớt không gian tìm kiếm Sau khi tăng wminsup, các mẫu dãythường xuyên tìm được sẽ được đưa vào L, các mẫu dãy trong L khôngthỏa mãn giá trị wminsup mới sẽ bị loại ra khỏi L và giá trị wminsup sẽđược tiếp tục tăng lên bằng với giá trị NWSupport của mẫu dãy cóNWSupportnhỏnhấttrongL….Thuậttoántiếptụcđếnkhikhôngthểtìmra được mẫu dãy nào nữa, khi đó thuật toán kết thúc và đưa ra top-k mẫudãy thường xuyên Tuy nhiên, nếu chỉ áp dụng chiến lược tăng độ hỗ trợ,giảithuậtsẽkhôngcóhiệusuấttốt.
- Tạocácứngviênhứahẹnnhất:ChiếnlượcTopKWFP2:Đểtănghiệusuấtcủa giải thuật, sử dụng chiến lược là tìm cách tăng trưởng các mẫu dãyứngviênhứahẹnnhất.NghĩalàtìmcáchtạoracácứngviêncóNWSupportlớn trước,nhờvậyngưỡnghỗtrợwminsupsẽtăngnhanhhơnvà không gian tìm kiếm cũng sẽ được giảm xuống Cách làm này là sửdụng một tập ứng viên hứa hẹn nhất R để lưu các ứng viên mẫu dãy thườngxuyên có trọng số Sau đó thuật toán TopKWFP luôn mở rộng các mẫudãyứngviêncóNWSupportlớnnhấttrongRtrước. Ýtưởngthuậttoánthựchiệnnhưsau
- đầu tiên khởi tạo các giá trị tập R, L bằng rỗng và wminsup=0 Sau đóduyệt CSDL lần đầu để tìm các mục i trong CSDL và giá trị maxW. Vớimỗi mục i, ghép giá trị= < (0, i) >, thực hiện kiểm tra điều kiệnsupport()*maxWwminsup,nếuthỏamãnthìđưavàotậpứngviên
R Kiểm tra tiếp điều kiện support()*NW()wminsup, nếu thỏa mãnthìgọithủtụcSAVE.
- Bước 2: Tiếp theo, duyệt CSDL lần 2 để loại bỏ các mục không phải làứng viên Thực hiện vòng lặp while lấy giá trị ứng viên r có NWSupportlớn nhất trong tập L Sau đó thực hiện xây dựng CSDL tiền tốiSDB|rvàgọithủtụcProjectionđểsinhmẫudãy.
ThủtụcProjectionthựchiệnduyệtCSDLtiềntốiSDB| rđểsinhcácứngviênđưavàotậpL.Đầutiên,duyệtCSDLiSDB| rđểtìmcáccặp(∆t;i)thỏamãncácđiềukiện wminsup và C 1 , C2 Sau đó với mỗi mục tìm thấy, thực hiện ghép cặpr = đểtạothànhmẫudãymới.KiểmtrađiềukiệnC4vớimẫudãyrmớitạothành,nếu thỏa mãn C4thì đưa vào tập ứng viên R và kiểm tra tiếp điều kiện C3, nếu r thỏamãnC3t h ìgọithủtụcSAVE đểđưarvàodanhsáchL.
Thủ tụcSAVEthực hiện tăng giá trị wminsup và cập nhật danh sách L mỗikhi tìm thấy một mẫu dãy thường xuyên r Đầu tiên, thêm r vào L, nếu L có nhiềuhơn k mẫu dãy và độ hỗ trợ có trọng số của r lớn hơn wminsup thì loại bỏ các mẫudãycóNWSupportthấpnhấttrongLsaochoLchỉcònlạikmẫudãy.Cuốicùng,đặtgiátrịwmi nsup mớibằngvớigiátrịNWSupportnhỏnhấttrongL.
Thuậttoán TopKWFP
8 For earch mỗi mục i trong iSDB9 = ;
20 Xây dựng lại CSDL iSDB bằng cách loại bỏ tất cả các mục itrongiSDBkhôngthỏamãnđiềukiệnsup()*maxWwminsup;
ThủtụcPROJECTION(iSDB| r,W(i),C 1 ,C 2 ,C 3 ,C 4 ,wminsup,k)thựchiệnduyệtCSDLtiềntốiSDB| rđểsinhcácứngviênđưavàotậpL.Đầutiên,duyệtCSDLiSDB|rđể tìm các cặp (∆t; i)thỏa mãn các điều kiện wminsup và C1, C2 Sau đó vớimỗi mục tìm thấy, thực hiện ghép cặpr = để tạo thành mẫu dãy mới.Kiểm tra điều kiện C 4 với mẫu dãy r mới tạo thành, nếu thỏa mãn C4thì đưa vào tậpứng viên R và kiểm tra tiếp điều kiện C3, nếu r thỏa mãn
C3thì gọi thủ tục SAVE đểđưarvàodanhsáchL.Thực hiệnnhư sau:.
2 DuyệtiSDB| rđểtìmtấtcảcáccặp(∆t;i)thỏamãnsup(i)*maxWwminsup,C 1 vàC2,vớiilà một mụcdữliệu,∆tlàkhoảngcáchthờigiangiữarvài;
7 If rsatisfiesC3andsup(r)*NW(r)wminsupthen
Thủ tụcSAVEthực hiện tăng giá trị wminsup và cập nhật danh sách L mỗikhi tìm thấy một mẫu dãy thường xuyên r Đầu tiên, thêm r vào L, nếu L có nhiềuhơn k mẫu dãy và độ hỗ trợ có trọng số của r lớn hơn wminsup thì loại bỏ các mẫudãycóNWSupportthấpnhấttrongLsaochoLchỉcònlạikmẫudãy.Cuốicùng,đặtgiá trị wminsup mới bằng với giá trị NWSupport nhỏ nhất trong L Thực hiện nhưsau:
PhântíchthuậttoánTopKWFP
Một mẫu dãy∈𝐿 ược tìm bởi thuật toán TopKWFP,được ký hiệu |S| là tổng t a p h â n t í c h c á c bước thuật toán để khai phá đượclà một mẫu dãy thường xuyên trọng số vớikhoảng cách thời gian Đồng thờinằm trong tập kết quả các mẫu dãy trọng số vớikhoảngcáchthờigian Lvàkíchthước của Lgồmkmẫu dãy.
Dòng lệnh 2 thực hiện khởi tạo tập R (Tập các ứng viên mẫu dãy trọng số vớikhoảngcáchthờigian)bằngrỗng,tậpL(Tậpcáckếtquảtop- kmẫudãytrọngsốvớikhoảngcáchthờigian)bằngrỗng,giátrịwminsup=0.
Từ dòng lệnh 3 đến dòng lệnh 7 nhằm thực hiện duyệt toàn bộ CSDL iSDBlần đầu, tính giá trị độ hỗ trợ của mỗi mục i trong iSDB trong dòng lệnh 5, xác địnhgiátrịMaxWlàgiátrịlớnnhấtcủacác trọngsốcácmụcitrongiSDB.
Từ dòng lệnh 8 đến dòng lệnh 16 thực hiện vòng lặp duyệt tất cả các mục itrongiSDB.Vớimỗimụci,thựchiệnghépđểxâydựngmẫudãy=t r o n g đógiátrị0là giátrịthờigianbắtđầu,ilàmụcdữliệutạidònglệnh
9.Kiểmtrađiềukiệnsup()*maxWwminsuptạidònglệnh10vànạpdãyvàotậpRtạidònglện hsố11.Dolúcnàygiátrịwminsup=0nêntấtcảcácmẫudãyđềuđượcđưavàotập
R Kiểm tra điều kiện sup()*NW()wminsup tại dòng lệnh 13, do ban đầuwminsup=0nênthỏamãnvàthựchiệnthủtụcSAVE()tạidònglệnh14.Tuynhiêntrongthủt ụcSAVE()códònglệnh9nhằmtăngdầngiátrịwminsuplênvớicácđiềukiệnkíchthướctập|L|
Từ dòng lệnh số 17 đến dòng lệnh số 21 thực hiện kiểm tra giá trị k so với sốlượng mục i trong iSDB Trong trường hợp k kthìthựchiệncácbướctiếptheo(nhằmtỉabớtcácmẫudãynhằm đảm bảo tìm được top-k mẫu dãy, đồng thời tăng dần ngưỡng hỗ trợ wminsuptiếptheo).
Dònglệnh4kiểmtrađiềukiệnNWSupport(r)=wminsup,nếuthỏamãnthìthực dònglệnh5đếndònglệnh7vớivònglặpđiềukiệnloạibỏcácdãyssaocho
Dòng lệnh 9 gán giá trị wminsup = giá trị NWSupport nhỏ nhất trong L nhằmtăngdầnngưỡngtốithiểuwminsuptrongtậpkếtquảL.
Ta cần chứng minh rằng với mọi mẫu dãy thường xuyên trọng số với khoảngcáchthờigianđềuđượckhaiphátìmkiếmbởithuậttoánTopKWFPvàtìmđượctop-k các mẫu dãy thường xuyên trọng số với khoảng cách thời gian trong tập L đều làmẫudãythườngxuyêntrọngsốvớikhoảngcáchthờigian.
Giả sửlà mẫu dãy với khoảng cách thời gian thì rõ ràng rằngcó thể đượcsinh ra bởi các dòng lệnh từ dòng lệnh 10 đến dòng lệnh 12 trong thuật toánTopKWFP (với độ dài mẫu dãy= 1) và dòng lệnh 2 đến dòng lệnh 6 trong thuậttoán PROJECTION() (với độ dài mẫu dãy> 1) Khi đó, dãyluôn nằm trong tậpR là tập ứng viên của mẫu dãy thường xuyên trọng số, thỏa mãn Định nghĩa 1.27trong Chương 1 (Mẫu dãy ứng viên) Vì vậylà mẫu dãy ứng viên cho phép khaipháquynạp(đảmbảotínhphảnđơnđiệu)trongquátrìnhtăngtrưởngmẫudãy.
Vớimỗidãyứngviêntheocácđiềukiệnkiểmtratạidònglệnh2,dònglệnh5 và dòng lệnh 7 trong thủ tục PROJECTION() thì thỏa mãn Định nghĩa 1.23 trongChương1.Vậylàmẫudãythườngxuyêntrọngsốvớikhoảngcáchthờigian.
Vớiviệcxácđịnhtop-kcủatậpLgồmcácmẫudãythườngxuyêntrọngsốvớikhoảng cách thời gian, bằng cách tăng dần ngưỡng hỗ trợ wminsup Đầu tiên đặt giátrịwminsup=0tạidònglệnh2củathuậttoánTopKWFP.Vớicácdãycóđộdài
=1đượckiểmtravànạpvàotậpLbởidònglệnh13đếndònglệnh15củaTopKWFP.Vớicácdãycó độdài>1đượckiểmtravànạpvàotậpLbởidònglệnh8trongthủtụcPROJECTION().
KhikíchthướccủatậpLlớnhơnsốk,thìthựchiệnloạibỏcácmẫudãytrongL có giá trị Nwsupport = wminsup tại dòng lệnh 5,6,7 của thủ tục SAVE() Giá trịwminsuptrongquátrìnhkhaipháđượctiếptụctăngdầnngưỡnghỗtrợtạidònglệnh9của thủtụcSAVE().
Số lượng mẫu dãy trong không gian tìm kiếm phụ thuộc vào cách người dùngđặt ngưỡng tối thiểu wminsup và mức độ tương tự của các mẫu dãy trong cơ sở dữliệu dãy Khi ngưỡng wminsup giảm, số lượng các mẫu dãy được tìm thấy bởi cácthuậttoánkhaithác mẫudãycó thểtăngtheocấpsốnhân.Khônggiantìmkiếmchokhai phá mẫu dãy có thể rất lớn ngay cả đối với cơ sở dữ liệu dãy nhỏ chứa một vàimẫu dãy Giả sử rằng dãy dài nhất trong cơ sở dữ liệu dãy chứa n mục thì các thuậttoánkhaiphámẫudãythựchiệntìmkiếmtrongtrườnghợpxấunhấtlàtấtcảcácmẫudãy có thể chứa m mục hoặc ít hơn Nếu một cơ sở dữ liệu dãy chứa n mục, thì cácmẫudãyphảikhaiphácóthểthểlớnhơn2 n Độ phức tạp tính toán của thuật toán TopKWFP là hàm mũ phụ thuộc vàoM:tổngsốdãydữliệutrongCSDLdãycókhoảngcáchthờigianiSDB,I:tổngsốlượngcácmục dữ liệu củaiSDB,n:độdàicủadãylớnnhấttrongiSDB.
CácthuậttoánkhaiphámẫudãytheophươngpháptăngtrưởngPrefixSpancóưuđiểmlàc hỉkhaiphácácmẫudãytổntạitrongcơsởdữliệu.Tuynhiên,mộtnhượcđiểm của PrefixSpan và các thuật toán tăng trưởng theo mẫu dãy khác là tốn kém tàinguyênvềthờigianchạykhithựchiệnquétcơsởdữliệuliêntụcvàtạocáccơsởdữliệuchiếu.Mặtkh ácviệctạocáccơsởdữliệuchiếucóthểtiêutốnmộtlượnglớnbộnhớ,nhưtrongtrườnghợpxấunhất cóthểyêucầusaochépgầnnhưtoànbộcơsởdữliệuchomỗiphépchiếutrêncơsởdữliệu.
Do đó thuật toán TopKWFP chỉ cố gắng làm giảm không gian dữ liệu để tìmđược các mẫu dãy thường xuyên trọng số với khoảng cách thời gian theo mục tiêuđặtra,việcđánhgiátínhhiệuquảdựavào các kếtquảthựcnghiệm.
ThuậttoánTopKWFPkhởitạogiátrịwminsup=0,sauđóduyệtCSDLđểtìmcácmụctron gCSDLvàtínhđộhỗtrợcủachúng.Cácgiátrị nàylầnlượtlà: sup(a)=4;sup(b)=4;sup(c)=4;sup(d)=3;sup(e)=3;sup(f)=3;sup(g)=1;
Với mỗi mụcitìm được, thực hiện ghép giá trị= < (0,i) > để tạo thành cácmẫudãycókhoảngcáchthờigiancóđộdài=1là:,,,,,
Kiểm tra điều kiện sup() * maxWwminsup, nếu thỏa mãn thì đưavàotậpứngviênR.Dowminsupởbướcnàybằng0nêntấtcảcácmẫudãyđềuđượcđưavàot ậpR.
Kiểm tra điều kiện support()*NW()wminsup (DK1), nếu thỏa mãn thìgọithủtụcSAVE.ThủtụcSAVEthựchiệnlưucácmẫudãythỏamãnđiềukiệnDK1vào trong danh sách L và loại bỏ các mẫu dãy có NWSupport thấp nhất trong L nếusố mẫu dãy trong L lớn hơn k Sau bước này, các mẫu dãy trong L và giá trịNWSupporttương ứngcủa chúng là:
Thủ tục Projection thực hiện duyệt CSDL chiếu của để tìm các phần tử(∆t; i)có thể kết hợp với trong đóilà mục dữ liệu và ∆tlà khoảng cách thờigiangiữavài.
KiểmtracácđiềukiệnC1vàC2vớicácgiátrị∆tcủacácphầntửvừatìmđượcvới C1=0 và
C2=3 Các phần từ không thỏa mãn điều kiện C1≤ ∆t≤ C2sẽ bị loại Ởđâycácphầntử đềuthỏamãnđiều kiệntrênnênkhôngcóphầntửnàobịloại.
Tiếptụckiểmtrađiềukiệnsup(i)*maxWwminsup,dowminsup=0nênsaubướcnàyt ấtcảcácphầntử trênđềuthỏamãnđiềukiện.
Ghép với từng phần tử vừa tìm được ở bước trên để tạo thành mẫu dãyr, nếurthỏa mãn điều kiện C4thì đưarvào tập ứng viênR Ghép với
được mẫu dãy , khoảng cách thời gian giữa 2 phần tử đầu và cuối trongmẫudãytrênlà1wminsup,gọithủtụcSAVEđểlưumẫudãy
và ot ro ng t ậ p L Tậ p L hi ện tại c ó 8 m ẫ u là :{ < 0 , a> : 2 ; : 2 4;
Tiếp tục ghép với các phần tử còn lại và kiểm tra các điều kiện C4,
Docó3mẫudãycùngcóNWSupport=0.8nêntậpLsaubướcnàycó12mẫuthayvì10mẫu. wminsup cũng được tăng lên thành 0.8 bằng với mẫu dãy có NWSupport nhỏnhấttrongL.
Vòng lặp tiếp tục cho tới khi mẫu dãy có NWSupport lớn nhất trong R khôngthỏamãnđiềukiệnsup(r)*maxW≥wminsuphoặctậpRlàrỗng(khôngcònmẫudãyứngviên nào).
Thửnghiệmthuậttoán
2.2.5.1 Mụctiêuthửnghiệm a) Đánhgiáảnhhưởng củathamsốk. b)Đánhgiáảnhhưởng củacácchiếnlượctốiưu. c)Sosánh hiệunăngthuậttoánTopKWFPvới thuậttoánWIPrefixSpan.
Thực nghiệm trên 5 bộ dữ liệu gồmBible, BMS-WebView1, FIFA,
Leviathan,Sign.Bảng2.4thốngkêcácthôngsốcủa05bộdữliệunày.Tấtcảcácbộdữliệutrênthuthậ ptừSPMFdataminingframework(http://www.philippe-fournier- viger.com/spmf/index.php? linkasets.php)
Sign 730 267 51.99 Signlanguageut terances Tất cả các bộ dữ liệu trên chưa có thông tin khoảng cách thời gian, trọng sốcácmụcdữliệu,vìvậysẽthựchiệnsinhngẫunhiêngiátrịkhoảngcáchthờigianvàtrọngsốcủa các dãy.
Tất cả các thực nghiệm được tiến hành trên một máy tính có bộ xử lý IntelCore i7-7700 3,6 GHz với 8 GB bộ nhớ chính, chạy Microsoft Windows 10. NgônngữlậptrỉnhlàJava1.8trênIDEEclipse.
Trong phần này, thuật toán TopKWFP chạy với các giá trị k khác nhau từ 1000đến 10000 Các ngưỡng khoảng cách thời gian được đặt cố định là C 1 =0; C2= 5;
C3=0; C4 Kết quả của thuật toán được thử nghiệm được thể hiện trongHình 2.1.Cóthể thấy thời gian chạy và bộ nhớ sử dụng của thuật toán tăng nhanh khi tăng thamsốk.Điềunàylàdokhităngthamsốk,không giantìmkiếmđượcmởrộnghơndẫntới số mẫu dãy ứng viên tạo ra cũng tăng lên đòi hỏi thuật toán cần phải thực hiệntínhtoánnhiềuhơn.
Phần này đánhgiáảnh hưởngcủa các chiến lược tối ưu củagiải thuậtTopKWFP.Đểđánhgiátácđộngcủacácchiếnlượctốiưu,thuậttoánđượcchạythửnghiệms osánh2trườnghợp:sửdụngchiếnlượctăngdầnngưỡnghỗtrợ(TopKWFP1) vàsửdụng 2 chiếnlượctăngdần ngưỡng hỗtrợ vàsinhứng viên hứa hẹnnhất(TopKWFP2).Giátrịkđượcđặttừ1000đến10000.Cácngưỡngkhoảngcácht hờigianđược đặt cốđịnhlàC1=0;C2=5;C3=0;C4.
Có thể nhận thấy, với việc sử dụng chiến lược sinh ứng viên hứa hẹn nhất,thuật toán chạy với thời gian nhanh hơn trên tất cả 5 bộ dữ liệu thử nghiệm.
Bảng2.5Thốngkêchitiếtsốlượng mẫudãyứngviêntạora top- kmẫud ãy
2.000 195.859 23.957 2.047.544 176.276 26.870 10.0963.000 338.654 149.501 2.590.027 1.578.959 35.182 14.1614.000 401.343 200.241 2.695.929 1.587.308 41.778 17.4415.000 409.289 210.018 2.737.530 1.597.979 47.957 21.5346.000 411.650 216.214 2.882.077 1.614.766 52.940 23.8327.000 444.119 223.144 2.901.434 1.680.657 57.330 26.6308.000 447.918 232.499 2.908.397 2.044.234 61.554 30.2339.000 452.350 237.861 2.913.162 2.049.636 65.133 32.61410.000 456.122 249.424 2.918.417 2.053.456 70.041 34.557Việc áp dụng chiến lược cả 2 chiến lược tăng độ hỗ trợ và sinh ứng viên hứahẹnnhất(TopKWFP2)sovớichỉsửdụng1chiếnlượctăngđộhỗtrợ(TopKWFP1),thuậttoá ncóthểgiảmsốlượngmẫudãyứngviênrấtnhiều,đặcbiệtđốivớibộdữ liệuthưaBMS-
View1, tạigiátrịk 00, sốlượngmẫudãy ứngviênsinhrabởiTopKWFP2giảmtới11,6 lầnsovớiTopKWFP1. c) Sosánh hiệunăngthuậttoán TopKWFPvớithuậttoánWIPrefixSpan
Thuật toán TopKWFP sử dụng 2 chiến lược (TopKWFP2) được so sánhvới thuật toán WIPrefixSpan với ngưỡng hỗ trợ tối ưu Để làm được điều này, đầutiên thuật toán TopKWFP được chạy trước để tìm ra ngưỡng hỗ trợ tối ưu, sau đóngưỡngnàysẽđượcsửdụngđểchạythuậttoánWIPrefixSpan.KếtquảđượcthểhiệntrongHình2
Có thể thấy, thuật toán TopKWFP có hiệu năng tốt hơn WIPrefixSpan trongtất cả các bộ dữ liệu thử nghiệm và trong một số trường hợp TopKWFP chạy nhanhhơnvàilầnsovớiWIPrefixSpan.Nhờsửdụngchiếnlượcsinhmẫudãyhứahẹnnhấtnên thuật toán TopKWFP chỉ sinh ra các mẫu dãy hứa hẹn nhất (các mẫu dãy có độhỗ trợ cao nhất) thay vì phải mở rộng ra toàn bộ không gian tìm kiếm như trongWIPrexSpan. c)N h ậ n xét
ThuậttoánWIPrefixSpanvàTopKWFPlàhaithuậttoánkhaiphámẫudãycótrọngsốtrên CSDLdãyvớikhoảngcáchthờigian.Cácmẫudãysinhratrong2thuậttoánnàyđãgiảiquyếtđượcc ácvấnđềtrongthựctếnhư:mỗimụcđềuđượcgánmộtgiá trị trọng số thể hiện mức độ quan trọng khác nhau của các mục đó và mỗi dãy cókhoảngcáchthờigiankhácnhauthểhiệnmứcđộquantrọngkhácnhaucủacácmẫudãyđó.
Thuật toán WIPrefixSpan sử dụng trong trường hợp khai phá mẫu dãy vớingưỡnghỗtrợbiếttrước.ThuậttoánTopKWFPsửdụngtrongtrườnghợpkhôngbiếttrước ngưỡng hỗ trợ Các thử nghiệm cho thấy hai thuật toán có khả năng mở rộngtốt.
ThuậttoánTopKWFPkhaiphátop- kmẫudãycótrọngsốvớikhoảngcáchthời giansửdụng2 chiến lượcgiúpgiảm bớtkhônggian tìmkiếm,nhờđó tăng tính hiệuquảcủagiảithuật.Cácmẫudãysinhratrongthuậttoáncũngcóýnghĩahơnkhitìmracácmẫud ãycóđộhỗtrợtrọngsố(NWSupport)caonhất.
Trong chương này luận án đã trình bày việc phát hiện top-k mẫu dãy có trọngsố trong Cơ sở dữ liệu dãy có khoảng cách thời Thuật toán khai phá top-k mẫu dãynhưvậyđượcgọilàthuậttoánTopKWFP.Trongthuậttoánnày,cácmỗimụcdữliệuđược xác định giá trị trọng số riêng và dữ liệu giữa các dãy dữ liệu trong CSDL đềucókhoảngcáchthờigian.ThuậttoánđượcpháttriểndựatrênthuậttoánWIPrefixSpanlàt huậttoánsửdụngcơsởdữliệutiềntốvàphươngpháptăngtrưởngmẫudãy.Thuậttoánlàđúngđắnvà đầyđủ.Độphứctạptínhtoáncủathuậttoáncũngđược chỉ ra Luận án cũng đã tiến hành thực nghiệm thuật toán trên tập dữ liệu thực.Kết quả thực nghiệm cho thấy tính đúng đắn và khả thi của thuật toán được đề xuất.Bài báo về thuật toán TopKWFP đã được đăng trên tạp chí Journal of ComputerScienceandCybernetics[CT1].
Với cách tiếp cận khai phá mẫu dãy có trọng số trong các CSDL dãy có khoảngcáchthờigian.Vấnđềđượctiếptụcnghiêncứuvàpháttriểnthuậttoánkhaiphámẫudãy lợi ích cao (có cả giá trị lợi ích trong và lợi ích ngoài) trong các CSDL dãy địnhlượngcókhoảngcáchthờigiansẽđượctrìnhbàytrongChương3 tiếptheo.
CHƯƠNG3 KHAI PHÁ MẪU DÃY LỢI ÍCH CAO TRONG CƠ
NộidungđãđượctrìnhbàytrongChương2nhằmphântíchvàgiảiquyếtVấnđềthứ1trong luận ánlàthựchiện khaiphá mẫudãycótrọng sốtrongCSDLdãycókhoảngcáchthờigian.Tiếptụcmởrộngcủabàitoánkhaiphámẫudãycótrọngs ốvàthựchiệngiảiquyếtVấnđềthứ2trongluậnánnàylàthựchiệnkhaiphácácmẫudãylợi ích cao trong CSDL dãy định lượng có khoảng cách thời gian trong đó quan tâmcả đến trọng số của mỗi mục trong dãy dữ liệu, giá trị định lượng của mỗi mục dữliệu và khoảng cách thời gian giữa các dãy trong CSDL dãy định lượng có khoảngcáchthờigian.
ThựchiệnkhaiphámẫudãylợiíchcaotrênCSDLdãyđịnhlượngcókhoảngcách thời gian được phát triển dựa trên thuật toán WIPrefixSpan [40] do Duong vàcộngsựđềxuấtvàthuậttoánkhaiphámẫudãylợiíchcaonhưUS,UL[42]đãđượcAhdmedvàcộ ngsựđềxuất.KếtquảnghiêncứuvàđềxuấtthuậttoánUIPrefixSpankhai phá mẫu dãy lợi ích cao đã được đăng trên Kỷ yếu hội thảo Một số vấn đề chọnlọc của Công nghệ thông tin và Truyền thông [CT2] và tạp chí Cybernetics andInformation Technologies[CT3].
Sau đó, luận án tiếp tục nghiên cứu và giải thuật PHUS [44] do Lan và cộngsựđềxuấttrongkhaiphámẫudãytrongCSDLdãyđịnhlượng,đềxuấtcáchtiếpcận1 pha bằng cách tính lợi ích dùng hàm lớn nhất, và kết quả nghiên cứu để đề xuấtthuật toán HUISP khai phá mẫu dãy lợi ích cao với khoảng cách thời gian đã đượcđăngtrênKỷyếuhộithảoMộtsốvấnđềchọnlọccủaCôngnghệthôngtinvàTruyềnthông[CT4 ]vàtạp chíJournalofComputerScienceandCybernetics[CT5].
3.1 Giớithiệu Để giải quyết vấn đề khoảng cách thời gian giữa các mẫu dãy, đã có một sốthuật toán được đề xuất Năm 2003, Chen và cộng sự [38] giới thiệu I-Apriori vàI-PrefixSpan khai phá mẫu dãy với khoảng cách thời gian dựa trên hai giải thuậtApriorivà PrefixSpan Năm 2005 [39], nhóm tác giả phát triển phiên bản mới của 2 thuậttoántrên(FTI-ApriorivàFTI-PrefixSpan)sửdụngphươngphápmờhóakhoảngcách thời gian Năm 2006, nhóm của Hirate và Yamana [37] giới thiệu một phương phápnhằm tổng quát hóa khai phá mẫu dãy với khoảng cách mục Khoảng cách mục cóthểlàkhoảngcáchthờigianhoặcmộtgiátrịkhoảngcáchkhácbất kỳ.
Một vấn đề khác của khai phá mẫu dãy cổ điển là các thuật toán chỉ khai phámẫu dãy trên các CSDL dãy các giao dịch Trong CSDL dãy giao dịch này thì cácmục chỉ nhận 2 giá trị 0 hoặc 1 thể hiện mục đó có xuất hiện trong giao dịch đó haykhông Tuy nhiên trên thực tế giá trị mỗi mục có thể nhận là rất nhiều Nghĩa là mỗimục trong CSDL có thể có các giá trị lớn hơn 1 thể hiện số lượng của mục đó tronggiao dịch Ngoài ra các mục cũng có độ quan trọng khác nhau thể hiện bởi trọng sốcủa mục đó trong CSDL Để giải quyết vấn đề về giá trị số lượng và độ quan trọngkhác nhau trong CSDL, một hướng mới trong khai phá mẫu dãy đã được phát triển:khaiphámẫudãylợiíchcao.Mụctiêucủakhaiphámẫudãylợiíchcaolàtìmracácmẫu dãy có lợi ích lớn hơn hoặc bằng ngưỡng lợi ích tối thiểu trong CSDL dãy địnhlượng Giá trị lợi ích của mẫu dãy được tính bằng một hàm lợi ích với các đối số làsốlượngvàtrọngsốcủamục.CácthuậttoánkhaiphámẫudãylợiíchcaotrênCSDLđịnhlượngcóth ểkểtớilàUS,ULcủanhómAmed [42],UspancủanhómYin[43],PHUS của nhóm GC.Lan [44], Tus của nhóm Zheng.Z [60], HuspExt của nhómAlkan[45],HUS-Span,TKHUS-Span [46] củanhómWang.
Tuy nhiên hiện tại chưa có nhiều thuật toán giải quyết vấn đề về tìm các mẫudãy lợi ích cao trên CSDL dãy định lượng có yếu tố thời gian Vì vậy, trong chương3nàysẽtrìnhbàyvềbàitoánkhaiphámẫudãylợiíchcaotrênCSDLdãyđịnhlượngcó yếu tố thời gian và giải pháp cho bài toán này Luận án giới thiệu thuật toánUIPrefixSpan và thuật toán HUISP giải quyết 3 vấn đề: trọng số, giá trị định lượngvà khoảng cách thời gian giữa các dãy trong CSDL dãy định lượng có khoảng cáchthờigian.Cácthửnghiệmchothấythuậttoánhiệuquảtrongviệcgiảiquyếtbàitoánđãđưar a.
Các khái niệm cơ bản trong khai phá mẫu dãy lợi ích cao trong CSDL dãy địnhlượngvớikhoảngcáchthờigian đãđượctrình bàytrong Mục 1.4củaChương1.
VềthuậttoánUIPrefixSpankhaiphámẫudãylợiíchcaovớikhoảngcáchthờigianđượckếth ừavàtiếptụcpháttriểntừthuậttoánWIPrefixSpan[40]vàthuậttoánUS,UL[42]v ớ i cácđịnhng hĩađãđượcnêutrongMục1.4trongChương1.
Về thuật toán HUISP là một thuật toán nâng cấp nhằm khai phá mẫu dãy lợiích cao với khoảng cách thời gian được kế thừa và tiếp tục phát triển từ thuật toánWIPrefixSpan [40] và thuật toán PHUS [44] Luận án đề xuất một cấu trúc bảng lợiích nhằm duy trì ngưỡng cận trên và một bảng chỉ mục để tăng tốc độ tìm kiếm cácmẫudãyliênquan.
Bàitoánđặtra
Cho một CSDL QiSDB, mỗi mục ijI trong dãy S a được gán một giá trị lợiíchtrongvàmộtgiátrịlợiíchngoài;ChomộtngưỡnghỗtrợtốithiểuminUtil,cácgiátrịrà ngbuộckhoảngcáchthờigianC5,C6,C7,C8 Tìmtấtcảcácmẫudãylợiíchcaocókhoảng cáchthờigiantrongQiSDB,tứclàtìmtậpL:
L = {α⊆QiSDB| su(α,QiSDB )minUtil và α thỏa mãn tính chất các ràngbuộcC 5 ,C 6 ,C 7 ,C 8 }
Mẫu dãy lợi ích cao có khoảng cách thời gian không thỏa mãn tính chất phảnđơn điệu, nghĩa là tập con của một mẫu dãy lợi ích cao có khoảng cách thờigiankhôngnhấtthiếtphảilàmẫudãylợiíchcaocókhoảngcáchthờigian.
Trongphầnnày,sẽtrìnhbàythuậttoánUIPrefixSpan.ThuậttoánUIPrefixSpankha iphámẫudãylợiíchcaocókhoảngcáchthờigiansửdụngphươngpháptăngtrưởngmẫudãycủat huậttoánPrefixSpan[31].UIPrefixSpanlàthuậttoán2 pha: trong pha thứ nhất, các mẫu dãy ứng viên lợi ích cao sẽ được tìm ra; sau đó,trongphathứ2,thuậttoánsẽduyệtCSDLQiSDBđểtínhlợiíchthựcsựcủacácmẫudãyứngviên vàtìmracácmẫudãylợiíchcao.
Ýtưởngthuật toán
Thuật toán UIPrefixSpan dựa trên thuật toán US [42] là thuật toán khai phámẫu dãy lợi ích cao trên CSDL dãy định lượng và thuật toán WIPrefixSpan [40]làthuật toán khai phá mẫu dãy trọng số với khoảng cách thời gian trên CSDL dãy cókhoảngcáchthờigian,cả2giảithuậttrênđượcpháttriểndựatrênphươngpháptăngtrưởng mẫudãycủathuậttoánPrefixSpan [31].
ThuậttoánUIPrefixSpanbaogồm2pha:pha1sinhcácứngviênmẫudãylợicaovớikho ảngcáchthờigian,pha2tínhlạilợiíchvàtìmramẫudãylợiíchcaovớikhoảngcáchthờigian thậtsự. Ýtưởngthuậttoánthựchiệnnhưsau
- Bước 1: Thuật toánUIPrefixSpanđầu tiên khởi tạo các giá trị tập ứngviên mẫu dãy lợi ích cao R , tập kết quả các mẫu dãy lợi ích cao L bằngrỗng.SauđóduyệtCSDLQiSDBlầnđầuđểtìmcácmụcilàcácứngviêncó độ dài
= 1 trong CSDL Với mỗi mục i thỏa mãn swu(i,QiSDB)minUtil ghép giá trị= < (0, i) >, đưavào tập ứng viên R Thực hiệnđệ quy để thủ tụcsubUIPrefixSpanđể khai phá các mẫu dãy lợi ích caotrênCSDLchiếuvớitiềntố.
- Bước 2: Tiếp theo, duyệt CSDL QiSDB lần 2 đề kiểm tra điều kiệnsu(,QiSDB)minUtil với tất các mẫu dãytrong tập ứng viên R tìmthấy.NếuthỏamãnthìđưavàotậpkếtquảL.
Thủ tụcsubUIPrefixSpanthực hiện duyệt CSDL tiền tốQiSDB|rthực kiểmtra các điều kiện ràng buộc thời gian C5,C6,C7,C8và các điều kiện minUtil để sinhcácứngviênđưavàotậpứngviênR.
Thuậttoán UIPrefixSpan
Thuậttoán3.1.T h u ậ t toánUIPrefixSpan input:QiSDB:CSDLdãyđịnhlượngcókhoảngcáchthờigian
W: Bảng giá trị trọng số của các mục i: w i WminUtil:Ngưỡnghỗtrợ tốithiểu
6 For earch mỗi mục i trong
16 Tínhgiátrị hỗtrợsu(,QiSDB)của mỗidãyR;
ThủtụcsubUIPrefixSpan(QiSDB|r,R,minUtil,C 5 ,C 6 ,C 7 ,C 8 )thựchiệnduyệtCSDL tiền tốQiSDB|rđể sinh các ứng viên đưa vào tập R Đầu tiên, duyệt CSDLQiSDB| rđểtìmcáccặp(∆t;i)thỏamãncácđiềukiệnminUtilvàC5,C6.Sauđóvớimỗi cặp (∆t; i)tìm thấy, thực hiện ghép cặpr = để tạo thành mẫu dãymới Kiểm tra điều kiện C8với mẫu dãy r mới tạo thành, nếu thỏa mãn C8thì thựchiệnđệquythủtụcsubUIPrefixSpanvớimẫudãymớiđểkhaiphácácmẫudãydàihơnvới tiềntốr.KiểmtranếurthỏamãnC7thìnạprvàotập ứngviênR.
2 DuyệtQiSDB| r đểtìmtấtcảcáccặp(∆t;i)thỏamãnswu((∆t;i),QiSDB| r)minUtil,C 5vàC6,vớiilàmộtmụcdữliệu,∆tlàkhoảngcáchthờigiangiữarvài;
PhântíchthuậttoánUIPrefixSpan
Một mẫu dãy∈𝐿 ược tìm bởi thuật toán UIPrefixSpan,được ký hiệu |S| là tổng ta phân tích cácbước thuật toán để khai phá đượclà một mẫu dãy thường xuyên lợi ích cao vớikhoảng cách thời gian Và tập kết quả tập L gồm toàn bộ mẫu dãy thường xuyên lợiíchcaovớikhoảngcáchthờigian.
Dònglệnh 2thựchiện khởitạobiến mẫu dãyαbằngrỗng;
Dònglệnh3khởitạotậpR(Tậpcácứngviênmẫudãylợiíchcaovớikhoảngcách thời gian) bằng rỗng, tập L (Tập các kết quả mẫu dãy lợi ích cao với khoảngcáchthờigian)bằngrỗng;
Từdònglệnh4đếndònglệnh13nhằmthựchiệnduyệttoànbộCSDLQiSDBlầnđầu.Với mỗi mụci,thựchiệnghépđểxâydựngmẫudãy=t r o n g đógiá trị 0 là giá trị thời gian bắt đầu, i là mục dữ liệu tại dòng lệnh 7 Tính và kiểm trađiềukiệnswu(,QiSDB)minUtil tạidònglệnh8vànạpvào tập Rtạidònglệnh
9 Thực hiện khai phá đệ quy các mẫu dãy ứng viên R trên các CSDL chiếu với tiềntốlàcácdãytạidònglệnh11.Kếtquảsẽtrảlạitấtcảmẫudãyứngviênlợiíchcaovớikhoảngc áchthờigianR.
Từ dòng lệnh 14 đến dòng lệnh 20 nhằm thực hiện duyệt lại toàn bộ CSDLQiSDB lần 2 nhằm tính và kiểm tra các giá trị từ tập R để chuyển vào tập L kết quả.Dòng lệnh 16 thực hiện tính giá trị của mỗi dãyR, nếu thỏa mãn điều kiệnsu(,QiSDB)minUtilthìnạpkếtquảvàotậpLtạidònglệnh18.
Dòng lệnh 21 trả lại kết quả L là tập các kết quả mẫu dãy lợi ích cao với khoảngcáchthờigiantrongCSDLdãyđịnhlượngcókhoảngcáchthờigian QiSDB
Dòng lệnh 2 thực hiện duyệt toàn bộ CSDL chiếu QiSDB| r để tìm tất cả cáccặp(∆t;i)thỏamãnswu((∆t;i),QiSDB| r )minUtil,C 5vàC6,vớiilàmộtmụcdữliệu,
∆tlàkhoảngcáchthờigiangiữarvài.ĐiềukiệnthờigianC5vàC6(điềukiệnkhoảngcáchgiữahaidãyli ềnkề),vàswu((∆t;i),QiSDB| r )minUtilđểchuẩnbịkhaiphákiểmtracác điềukiệntrongcáccâulệnhtiếptheo.
Từdònglệnh3đếndònglệnh11nhằmthựchiệnvònglặpduyệttấtcảcáccặp(∆t;i).Trongđ ó,với mỗicặp(∆t;i)thựchiệnghépvớidãyrtiềntốđểxâydựng mẫudãy mớir=tạidònglệnh4(độdàidãyrtăngthêm1).Dònglệnh5thực hiện kiểm tra điều kiện thời gian C8của dãy r (điều kiện khoảng cách lớn nhất giữadãy đầu và dãy cuối trong r) Nếu thỏa mãn thì thực hiện khai phá đệ quy nạp cácmẫu dãy ứng viên
R trên các CSDL chiếu với tiền tố là dãy r mới tại dòng lệnh 6.Dòng lệnh 7 kiểm tra điều kiện thời gian C7(điều kiện khoảng cách thời gian nhỏnhất giữa dãy đầu và dãy cuối) nếu thỏa mãn thì thực hiện thực hiện nạp mẫu dãy rvàotậpmẫudãyứngviênRtạidònglệnh8.
Dònglệnh12trảlạikếtquảRlàtậpcác kếtquảmẫudãyứngviênlợiíchcaovới khoảng cách thời gian trong CSDL dãy định lượng có khoảng cách thời gianQiSDB.
3.2.4.3 Tínhđúng đắnvà đầy đủcủathuậttoán UIPrefixSpan
Giả sửlà một mẫu dãy thường xuyên lợi ích cao với khoảng cách thời giannhưvậy.Tasẽchứngminhbằngquynạp.
Giả sửlà mẫu dãy với khoảng cách thời gian thì rõ ràng rằngcó thể đượcsinhr a b ở i c á c d ò n g l ệ n h t ừ d ò n g l ệ n h 7 đ ế n d ò n g l ệ n h 1 0 t r o n g t h u ậ t t o á n UIPrefixSpan (với độ dài mẫu dãy= 1) và dòng lệnh 4 và dòng lệnh 6 trong thuậttoán subUIPrefixSpan () (với độ dài mẫu dãy> 1) Khi đó, dãyluôn nằm trongtậpRlàtậpứngviêncủamẫudãythườngxuyênlợiíchcao,thỏamãnĐịnhnghĩa 1.44 trong Chương 1 (Mẫu dãy ứng viên lợi ích cao) Vì vậylà mẫu dãy ứng viênchophépkhaipháquynạp(đảmbảotínhphảnđơnđiệu)trongquátrìnhtăngtrưởngmẫudã y.
Xuất phát từ mẫu dãy ứng viêncó độ dài =1, thực hiện đệ quy khai phá cácmẫu dãy theo phương pháp tăng trưởng mẫu dãy để khai phá tiếp các mẫu dãy vớitiềntốcóđộdàilớnhơntạicáccâulệnhsố16củathủtụcUIPrefixSpantrênCSDLchiếu với tiền tốcó độ dài =1 Tiếp tục với các mẫu dãy ứng viêncó độ dài >1đượcthựchiệnquynạpbởi dònglệnh số6 trongthủtụcsubUIPrefixSpan()trêncác
CSDLchiếuvớitiềntốcóđộdàilớnhơn1.TấtcảcácmẫudãyứngviênđềuđượcđưavàotậpRlàt ậpcácứngviênmẫu dãylợiíchcaovớikhoảngcáchthờigian.
Vớipha2,thuậttoánkiểmtralạitấtcảcácmẫudãyứngviêntìmđượctrongtập R tại dòng lệnh 17 của thủ tục UIPrefixSpan() thỏa mãn Định nghĩa 1.41 trongChương 1 (Mẫu dãy lợi ích cao với khoảng cách thời gian) Vì vậylà mẫu dãythườngxuyênlợiíchcaovớikhoảngcáchthờigianđượcnạpvàotậpLtạidònglệnh18làtoàn bộcácmẫu dãythườngxuyênlợiíchcaovới khoảng cáchthờigian.
Tương tự như thuật toán TopKWFP, độ phức tạp tính toán của thuật toánUIPrefixSpanlàhàmmũphụthuộcvàoM:tổngsốdãydữliệutrongCSDLdãyđịnhlượngcó khoảngcáchthờigianQiSDB,I:tổngsốlượngcácmụcdữliệucủaQiSDB,n:độdàicủadãylớnnhất trongQiSDB.
ThuậttoánUIPrefixSpanchỉcốgắnglàmgiảmkhônggiandữliệuđểtìmđượccác mẫu dãy thường xuyên lợi ích cao với khoảng cách thời gian theo mục tiêu đặtra,việcđánhgiátínhhiệuquảdựavàocáckếtquảthực nghiệm.
Cho một CSDL dãy QiSDB với khoảng cách thời gian như Bảng 1.6 giá trịtrọng số (lợi ích ngoài) của các mục dữ liệu Bảng 1.7, giá trịminUtilu, các giá trịC 5 =1;C6=1;C7=2;C8=4.Khiđóviệckhaiphácácmẫudãythườngxuyênlợiíchcaovới khoảng cách thời gian trong CSDL dãy định lượng QiSDB theo phương phápUIPrefixSpanđược thực hiệntheocácbướcnhư sau:
Bước 1:Tìm các ứngviênmẫu dãy lợi ích cao với khoảng cách thời giancóđộdài1
Duyệt CSDL QiSDB lần đầu tiên để tìm tất cả các ứng viên có độ dài 1, thựchiệnghépgiátrịthờigian0vàocác mụctìmđượcvàtínhgiátrịswucủamỗidãydữliệuvớikhoảngcáchthờigian0.
Giátrị:s w u ( < 0 , a > ) )0;s w u ( < 0 , b > ) 24;swu()4; swu() 73; swu()= 269; swu()8; swu() I;
Khiđó,theotínhchấtcủaĐịnhnghĩa1.43,khiđóvớigiátrịminUtilu,loạimụcg(dosw u(g)IminUtil.
Khi đó ta có các ứng viên mẫu dãy thường xuyên lợi ích cao với khoảng cáchthờigiancóđộ dài1là:
Toànbộcácứngviênmẫudãylợiíchcaovớikhoảngcáchthờigianđượckhaiphá trong các phân vùng từ tập ứng viên Q1gồm 06 vùng tương ứng với 06 tiền tốgồm:
Cáctậpconứngviênmẫudãylợiíchcaovớikhoảngcáchthờigianđượckhaiphá bằng cách xây dựng các CSDL điều kiện tương ứng với các tiền tố và khai pháchúngbằngphươngphápđệquy.Cácbướcthực hiệnnhư sau:
Bảng3.1Cơsởdữliệu điềukiệnvớitiềntố iSID Dãydữliệu
Thực hiện duyệt CSDL điều kiện với tiền tố , tính giá trị swu của mỗimụcdữliệuvàkiểmtrađiềukiệnthờigianC 5,C6,của cácmẫuứngviêntrongCSDLđiềukiệnvớ itiềntố:
Bảng3.2Cơsởdữliệu điềukiệnvớitiềntố iSID Dãydữliệu
ThựchiệnduyệtCSDLđiềukiệnvớitiềntố,tínhgiátrịswucủamỗi mục dữ liệu và kiểm tra điều kiện thời gianC 5, C 6, của các mẫu ứng viên trongCSDLđiềukiệnvớitiềntố.
Bảng3.3Cơsởdữliệu điềukiệnvớitiềntố iSID Dãydữliệu
Thực hiện duyệt CSDL điều kiện với tiền tố , tính giá trịswucủamỗimụcdữliệuvàkiểmtrađiềukiệnthờigianC 5,C6,của cácmẫuứngviêntrongCSDLđi ềukiện vớitiềntố.
Bảng3.4Cơsởdữliệu điềukiệnvớitiềntố iSID Dãydữliệu
Thực hiện duyệt CSDL điều kiện với tiền tố , tính giá trịswucủamỗimụcdữliệuvàkiểmtrađiềukiệnthờigianC 5,C6,của cácmẫuứngviêntrongCSDLđiề u kiệnvớitiềntố.
Ghép mẫu đểtạo mẫu ứngviên mới:
VìkhôngthểxâydựngtiếpCSDLtiềntốcủa,kếtthúcthủtục đệ quy.
KiểmtrađiềukiệnC7c ủ a:thỏamãnC7 Đưavàotậpứngviên. tậpứngviên.
KiểmtrađiềukiệnC7của:thỏamãnC7.Đưavào
Ghép mẫu dãy để tạo mẫu ứng viên mới: KiểmtrađiềukiệnC 8 :ThỏamãnC8.
Các bước tiếp theo thực hiện tương tự như trên Ta thu được tập ứng viên củatiềntốlà:
B Tìmcácứngviênmẫudãylợiíchcaovớikhoảngcáchthờigianvớicáctiềntố,,,,Đốivớimẫudãyvớicáctiềntốnày,taxâydựngcácCSDLđiều kiệnvớicáctiềntốtươngứngvớicácmụcdữliệutrongtậpứngviêntrongQ 1 Cáchkhaip háứngviênmẫudãythườngxuyênlợiích cao với khoảng cách thời gian với mỗi tiền tố tương ứng cũng thực hiệntươngtựnhưbướcAvàthựchiệnkhaiphátheophươngphápđệquy.
Bước 4:Thựchiệnduyệt CSDL dãy SDB lần cuối để tính giá trị lợi ích(su)củatừngmụcαtrongtậpứngviên.
Kiểmtrađiềukiện su(α)minUtil.Nếuthỏamãnthìđưavàotậpkết quả.
Các mẫu dãy thường xuyên lợi ích cao với khoảng cách thời gian được khaiphálầnlượttrongquátrìnhđệquyđốivớitừngtiềntố.Trongphươngphápkhaiphámẫu dãy thường xuyên lợi ích cao với khoảng cách thời gian này, kết quả sẽ ít hơncácmẫudãythườngxuyênkhikhônggắn thêmyếutốlợiíchcủacácmụcdữliệu.
Bảng 3.6 Bảng thống kê khai phá mẫu dãy lợi ích cao với khoảng cách thời giantrongQiSDB. Độdài mẫudã y
Thửnghiệmthuậttoán
3.2.5.1 Mụctiêuthửnghiệm a) Đánhgiámối quanhệgiữangưỡng lợi ích tốithiểuvàthời gian thựchiệncủathuậttoán b) Đánhgiámốiquanhệgiữangưỡnglợiíchtốithiểuvàbộnhớsửdụngcủathuậttoán c) Đánhgiámốiquanhệgiữangưỡnglợiíchtốithiểuvàsốmẫudãylợiíchcaotìmđư ợc
3.2.5.2 Dữliệuthử nghiệm Đểđánhgiáhiệunănggiảithuật,đềxuấtthửnghiệmthuậttoánUIPrefixSpantrên các bộ dữ liệu giả định được tạo ra từ Bộ khởi tạo dữ liệu IBM (IBM DataGenerator) Các tham sốcủaIBMdatageneratornhư sau:
|C|:Số giaodịchtrung bìnhcủamột kháchhàng (Averagenumber oftransactionspercustomer)
D S 1 ) v à D200K.C10.T9.S9.I7.N1K (DS2) và một bộ dữ liệu thực: BMS-WebView-1 (DS3)với59601dãydữliệu,497mụcdữliệu,chiềudàitrungbình1dãygồm2,42mụcdữliệu,gồm mộtsốdãydài(hơn318dãychứanhiềuhơn 20mục).
Tuy nhiên, các bộ dữ liệu này đều không chứa giá trị lợi ích trong và lợi íchngoàicủacácmụctrongcơsởdữliệudãy.Vìvậy,thựchiệnsinhngẫunhiêncácgiátrịlợiíchtro ngtrongkhoảngtừ1đến5vàlợiíchngoàitrongkhoảngtừ1.0đến10.0.Trongthựctếtạicácsiêuthị,đ asốcácmặthàngđềucólợinhuậnthấp.Dovậykhởitạogiátrịlợiíchngoài(thểhiệnlợinhuậncủam ộtmặthàng)sửdụngphânbốlogaritchuẩn.H ì n h saulàđồthịphânbốlợiíchngoàicủa1000mụcdữli ệutrongcácCSDLdãyDS1vàDS2.
Hình3.1Biểuđồphân phốigiátrịlợinhuậncủa1000mục(UIPrefixSpan)
Các bộ dữ liệu trên cũng không chứa yếu tố thời gian, thực hiện sinh trườngthời gian theo thứ tự của các tập mục trong mẫu dãy.Nghĩa là hai tập mục liền kềnhausẽcáchnhaukhoảngcáchthờigianlà1.
Tất cả các thực nghiệm được tiến hành trên một máy tính có bộ xử lý IntelCore i7 gen 7 – 3.6 GHz với 8 GB bộ nhớ chính, chạy Microsoft Windows 10. Cácthuậttoánđượcthực hiệnbởingônngữ lậptrìnhJava1.8trênEclipse.
ViệcthửnghiệmhiệunăngcủathuậttoánUIPrefixSpantronghaitrườnghợp:Có sử dụng các ràng buộc thời gian C5=0; C6=5; C7=0; C8 (UIPrefixSpan1) vàkhôngsử dụngràngbuộc thờigian(UIPrefixSpan2).
Hình 3.2: So sánh về thời gian chạy cho thấy UIPrefixSpan1 thực hiện nhanhhơn, hiệu quả hơn so với UIPrefixSpan2 Khi giá trị minUtil giảm thì thời gian chạycủa UIPrefxiSpan2 tăng lên đáng kể Ngược lại, UIPrefixSpan1 chạy tốt với minUtilthấp và nhanh hơn nhiều so với UIPrefixSpan2 trong cả tập dữ liệu tổng hợp (DS1-DS2) và tập dữ liệu thực (DS3) Đó là bởi vì khi sử dụng giới hạn thời gian(UIPrefixSpan1), ít ứng cử viên được tạo hơn, do đó, không gian tìm kiếm bị giảmvàthờigianchạygiảm. b) Đánhgiámốiquanhệgiữangưỡnglợiíchtốithiểuvàbộnhớsửdụngcủathuậttoán
Hình 3.3: So sánh về hiệu quả bộ nhớ sử dụng: UIPrefixSpan1 cũng sử dụngítbộnhớhơnUIPrefixSpan2nhưtrongHình 3.3.TrênDS1,UIPrefixSpan1sửdụngbộ nhớ ít hơn 1,2 lần so với UIPrefixSpan2 và trong một số trường hợp (với minUtillà2%9%và10%),thuậttoánUIPrefixSpan1sửdụngbộnhớíthơnđến2,2lần.TrênDS2, UIPrefixSpan1 sử dụng bộ nhớ ít hơn 1,4 lần so với UIPrefixSpan2 và vớiminUtil thấp ( có độ dài =1 trongbảng lợi íchBđểthựchiện kiểm tra.Nếuđiều kiệnswu()minUtiltạidònglệnh 13thỏamãn,thìnạpvàotậpRtạidònglệnh14.Nếuđiềukiệnsu(α,QiSDB)minUtil tại dòng lệnh 16 thỏa mãn, thì nạpvào tập L tại dòng lệnh17.
Dòng lệnh 20 thực hiện duyệt CSDL QiSQB, thực hiện tỉa, loại bỏ tất cả cácmục i mà= < (0, i) >không nằm trong R nhằm giảm bớt không gian tìm kiếm vàloạibỏcácmụcdư thừatrongcác dãydữ liệu trongQiSDB.
Dòng lệnh 21 thực hiện xây dựng bảng chỉ mục C cho từng mục i thuộc cácdãy= < (0, i) > trong tập ứng viên R từ QiSDB theo Định nghĩa 3.2 trong Chương3 (Bảng chỉ mục) Bảng chỉ mục này nhằm giảm thao tác duyệt CSDL QiSDB trongquá trình xây dựng các CSDL chiếu tương ứng với các dãy= < (0, i) > trong tậpứngviênR.
Từdònglệnh22đếndònglệnh28thựchiệnduyệtbảngchỉmụcCnhằmthựchiện xây dựng CSDL chiếu với các tiền tố và thực hiện đệ quy để xây dựng tập R vàtập L Dòng lệnh 25 thực hiện xây dựng CSDL chiếu QiSDB| αcho α= baogồmtấtcảcácdãyđầuvàoiS acủa QiSDBcóchứaα.Dònglệnh26tínhgiátrịsu(iSa)trongQiSDB
| α Dònglệnh27thựchiệnkhaipháđệquytheochiềusâubởithủtục subHUISP() nhằm khai phá trên CSDL chiếu QiSDB| αkhai phá các mẫu dãy ứng viênđộdàilớnhơnđểnạpvàotậpRvàcácmẫudãythườngxuyênlợiíchcaovànạpvàotậpL.
Dòng lệnh 29 trả lại kết quả L là tập các kết quả mẫu dãy lợi ích cao với khoảngcáchthờigiantrongCSDLdãyđịnhlượng cókhoảngcáchthời gianQiSDB.
Dòng lệnh 2 thực hiện duyệt toàn bộ CSDL chiếu QiSDB| r để tìm tất cả cáccặp(∆t;i)thỏamãnswu((,QiSDB| r )minUtil,C 5vàC6,vớiilàmộtmụcdữliệu,∆t là khoảng cách thời gian giữa r và i Điều kiện thời gian C5và C6(điều kiệnkhoảng cách giữa hai dãy liền kề), và swu(,QiSDB| r )minUtil để chuẩn bịkhaiphákiểmtracácđiềukiệntrongcáccâulệnhtiếptheo.
Dòng lệnh 3 thực hiện duyệt CSDL QiSQB| r , thực hiện tỉa, loại bỏ tất cả cácdãy không thỏa mãn điều kiện swu(,QiSDB| r )minUtil , C5và C6nhằmgiảmbớtkhônggiantìmkiếmvàloạibỏcácdãydư thừatrongQiSDB| r
Dòng lệnh 4 thực hiện tính giá trị lợi ích của các dãy đầu vào su(iSa) củaQiSDB| r và xây dựng bảng lợi ích Brvới r = trong QiSDB| rtheo Địnhnghĩa3.1trongChương3(Bảnglợiích).
Từ dòng lệnh 5 đến dòng lệnh 14 thực hiện duyệt bảng lợi ích B r nhằm thựchiện lấy các giá trị swu và các giá trị su của các dãy r trong bảng lợi ích B r để thựchiện kiểm tra Dòng lệnh 8 thực hiện kiểm tra điều kiện thời gian C8của dãy r (điềukiện khoảng cách lớn nhất giữa dãy đầu và dãy cuối trong r) Nếu thỏa mãn thì thựchiệnkhaipháđệquythủtụcsubHUISP()khaiphámẫudãyứngviênrtrêncácCSDLchiếu với tiền tố là dãy r mới tại dòng lệnh 9 Dòng lệnh 10 kiểm tra điều kiện thờigian C 7 (điều kiện khoảng cách thời gian nhỏ nhất giữa dãy đầu và dãy cuối)và giátrị su(r,QiSDB)minUtil nếu thỏa mãn thì thực hiện thực hiện nạp mẫu dãy r vàotập mẫukếtquả Ltạidònglệnh11.
Dònglệnh15trảlạikếtquảLlàtậpcáckếtquảmẫudãythườngxuyênlợiíchcao với khoảng cách thời gian trong CSDL dãy định lượng có khoảng cách thời gianQiSDB.
Giả sửlà một mẫu dãy thường xuyên lợi ích cao với khoảng cách thời giannhưvậy.Tasẽchứngminhbằngquynạp.
Xuấtpháttừcácmụcbanđầu,thựchiệnxâybảnglợiíchBchocácmụctrongCSDLQiSD Btheodònglệnhsố9trongthuậttoán HUISP().
Giả sửlà mẫu dãy với khoảng cách thời gian thì rõ ràng rằngcó thể đượcsinhrabởicácdònglệnhtừdònglệnh12đếndònglệnh15trongthuậttoánHUISP()(với độ dài mẫu dãy= 1) và dòng lệnh 9 trong thuật toán subHUISP() (với độ dàimẫudãy>1).Khiđó,dãyluônnằmtrong tậpRlàtậpứngviêncủamẫudãylợiích cao, thỏa mãn Định nghĩa 1.43 trong Chương 1 (Mẫu dãy ứng viên) Vì vậylàmẫu dãy ứng viên lợi ích cao cho phép khai phá quy nạp (đảm bảo tính phản đơnđiệu)trongquátrìnhtăngtrưởngmẫudãythuộc tậpứngviênR.
Xuất phát từ mẫu dãy ứng viêncó độ dài =1, thực hiện đệ quy khai phá cácmẫu dãy theo phương pháp tăng trưởng mẫu dãy để khai phá tiếp các mẫu dãy vớitiềntốcóđộdàilớnhơntạicáccâulệnhsố27củathủtụcHUISPtrênCSDLchiếuvới tiền tốcó độ dài =1 Tiếp tục với các mẫu dãy ứng viêncó độ dài > 1 đượcthựchiệnquynạpbởidònglệnhsố9trongthủtụcsubHUISP()trêncácCSDLchiếuvới tiền tốcó độ dài lớn hơn 1 Tất cả các mẫu dãy ứng viên đều được đưa vào tậpRlàtậpcác ứng viênmẫudãylợiíchcaovới khoảngcáchthờigian.
Trong quá trình khai phá, thực hiện kiểm tra các điều kiện các mẫu dãy ứngviêntừtậpRtạidònglệnh17thủtụcHUISP()(đốivớidãycóđộdài=1)vàdònglệnh11 củathủtụcsubHUISP()(đối với cácdãycóđộdài >1)thỏamãnĐịnhnghĩa
1.40trongChương1.(Mẫudãylợiíchcaovớikhoảngcách thờigian)vàvìvậylàmẫudãythườngxuyên lợiíchcaovớikhoảngcáchthờigianđượcnạpvàotậpL.
Tương tự như thuật toán TopKWFP, độ phức tạp tính toán của thuật toánHUISPlàhàmmũphụthuộcvàoM:tổngsốdãydữliệutrongCSDLdãyđịnhlượngcókhoản gcáchthờigianQiSDB,I:tổngsốlượngcácmụcdữliệucủaQiSDB,n:độdàicủadãylớnnhấttron gQiSDB.
Thuật toán HUISP chỉ cố gắng làm giảm không gian dữ liệu để tìm được cácmẫu dãy thường xuyên lợi ích cao với khoảng cách thời gian theo mục tiêu đặt ra,việcđánh giátínhhiệuquảdựa vào các kếtquảthực nghiệm.
Cho một CSDL dãy QiSDB với khoảng cách thời gian như Bảng 3.1, giá trịtrọng số (lợi ích ngoài) của các mục dữ liệu như Bảng 3.2, giá trịminUtilu, cácgiá trị C 5 =1; C6=1; C7=2; C8=4 Khi đó việc khai phá các mẫu dãy thường xuyên lợiích cao với khoảng cách thời gian trong CSDL dãy định lượng QiSDB theo phươngphápHUISPđược thựchiệntheocácbướcnhư sau:
Bước 1: Tìm các ứng viên của mẫu dãy lợi ích cao với khoảng cách thời gian cóđộdài1
DuyệtCSDLdãyđịnhlượngQiSDBlầnđầutiênđểtìmtấtcảcácứngviêncóđộ dài 1, thực hiện ghép giá trị thời gian 0 vào các mục tìm được và tính giá trị lợiíchcủamỗidãydữliệuvớikhoảngcáchthờigian0trongtừngdãyđầuvào.Tínhgiátrị lợi ích của từng dãy đầu vào Sa Kết quả được thể hiện trong Bảng 3.11 và Bảng3.12
Duyệtbảnglợiích,vớimỗimẫudãyαtrongbảnglợiích,nếugiátrịswu(α)minUtil thì đưa vào tập ứng viên R Dãy có swu() I