Luận văn Một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
NGUYỄN ĐÌNH VĂN  
MT STHUT TOÁN KHAI PHÁ  
LUT DÃY VÀ NG DNG THNGHIM  
VÀO HTHNG QUN LÝ KHÁCH HÀNG  
VÀ TÍNH HÓA ĐƠN NƯC  
LUẬN VĂN THẠC SĨ  
Hà Ni - 2011  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
NGUYỄN ĐÌNH VĂN  
MT STHUT TOÁN KHAI PHÁ  
LUT DÃY VÀ NG DNG THNGHIM  
VÀO HTHNG QUN LÝ KHÁCH HÀNG  
VÀ TÍNH HÓA ĐƠN NƯC  
Ngành: Công NghThông Tin  
Chuyên ngành: HThng Thông Tin  
s: 60.48.05  
LUẬN VĂN THẠC SĨ  
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. Hà Quang Thụy  
Hà N
i - 2011  
- 3 -  
LỜI CAM ĐOAN  
Tôi xin cam đoan luận văn này với đề tài “Mt sthut toán khai phá dãy và ng  
dng thnghim vào hthng qun lý khách hàng và tính hóa đơn nưc” là công trình  
do tôi nghiên cứu và hoàn thành dưới sự hướng dn ca PGS. TS. Hà Quang Thy,  
trong luận văn có sử dng mt stài liu tham khảo như đã nêu trong phn “Tài liu  
tham kho”.  
Tác giluận văn  
Nguyễn Đình Văn  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 4 -  
MỤC LỤC  
MỞ ĐẦU.............................................................................................................................. 6  
CHƯƠNG 1 – KHÁI QUÁT CHUNG VLUT DÃY VÀ KHAI PHÁ LUT DÃY ...... 8  
1.1  
Gii thiu chung vlut kết hp ............................................................................ 8  
Khái nim lut kết hp................................................................................... 8  
Các ng dụng điển hình ca lut kết hp........................................................ 9  
Thut toán Apriori ....................................................................................... 10  
Lut dãy .............................................................................................................. 12  
Khái nim lut dãy và ví d.......................................................................... 12  
Mt số ứng dng.......................................................................................... 14  
Lut dãy và lut kết hp: mt số đối sánh..................................................... 16  
Sơ bộ về các phương pháp khai phá luật dãy................................................ 17  
1.1.1  
1.1.2  
1.1.3  
1.2  
1.2.1  
1.2.2  
1.2.3  
1.2.4  
CHƯƠNG 2 CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY ........................................ 21  
2.1  
2.2  
Khái quát vkhai phá lut dãy............................................................................. 21  
Các thut toán khi thy...................................................................................... 23  
Thut toán AprioriAll .................................................................................. 23  
Thut toán AprioriSome............................................................................... 27  
Thut toán GSP (Generalized Sequential Patterns)....................................... 30  
Hai phương pháp khai phá luật dãy...................................................................... 36  
Khai phá dãy sdng kthut phân vùng (thut toán Dynamic DISC-all) ... 36  
Khai phá lut dãy bng mã hóa khối cơ bản vi thut toán PRISM............... 38  
2.2.1  
2.2.2  
2.2.3  
2.3  
2.3.1  
2.3.2  
CHƯƠNG 3 ĐỀ XUT NG DNG KHAI PHÁ LUT DÃY TRONG HTHNG  
QUN LÝ KHÁCH HÀNG VÀ TÍNH HÓA ĐƠN NƯỚC ............................................... 43  
3.1  
Tng quan vhthng qun lý khách hàng và tính hóa đơn nước........................ 43  
3.1.1 Phân hqun lý khách hàng................................................................................. 44  
3.1.2 Phân hlập và in hóa đơn.................................................................................... 46  
3.1.3 Phân hệ thanh toán hóa đơn và quản lý n........................................................... 48  
3.1.4 Phân hbáo cáo thng kê..................................................................................... 49  
3.2  
3.3  
3.4  
Phát biu bài toán ................................................................................................ 50  
Mô hình giái quyết............................................................................................... 52  
Thc nghiệm và đánh g..................................................................................... 55  
3.4.1 Gii thiu thc nghim........................................................................................ 55  
3.4.2 Kết quthc nghim và nhn xét......................................................................... 57  
KT LUN ........................................................................................................................ 58  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 5 -  
CÁC ĐỊNH NGHĨA VÀ CHVIT TT  
Chviết tt  
Din gii  
Candidate  
CSDL  
ng viên  
Cơ sở dliu  
Thành phn dãy  
Element  
Frequent item  
Gcd  
Phn tử thường xuyên  
Hàm tính ước schung ln nht  
Item  
Phn tử  
Itemset  
Tp hp các phn t(item) xy ra cùng lúc  
Large sequence  
Maximal sequence  
Projected database  
Sequence  
Dãy phbiến  
Dãy tối đa, dãy phbiến nht  
CSDL quy chiếu  
Dãy  
Support  
Độ htrợ  
Support threshold  
Supsequence  
Threshold  
Ngưng htrợ  
Dãy con  
Ngưng  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 6 -  
MỞ ĐẦU  
Khai phá lut dãy là mt trong nhng lĩnh vực rt quan trng trong nghiên cu  
khai phá dliu ca thp kgần đây và ngày càng được áp dng rng rãi trong nhiu  
lĩnh vực khác nhau. Vì trong thc tế, dliu dãy tn ti rt phbiến, như dãy dliu  
mua sm ca khách hàng, dliệu điều try tế, các dliệu liên quan đến các thm ha  
tnhiên, dliu xlý khoa hc và kthut, dliu chng khoán và phân tích thị  
trường, dliu các cuc gọi điện thoi, nht ký truy cp web, dãy ADN biu thgen ...  
Mục đích chính của khai phá lut dãy là tìm kiếm và phát hin tt ccác dãy con lặp đi  
lp li trong mt CSDL theo yếu tthi gian.  
Hin nay, trên thế giới đã có rt nhiu nhóm tác ginghiên cứu đề xut các thut  
toán với các phương pháp tiếp cn khai phá lut dãy khác nhau [1,2,5-12,14-16] nhm  
gii quyết sự đa dạng ca các loi bài toán cũng như đưa ra các hướng ci tiến nhm  
gim thiu chi phí thi gian và tài nguyên hthng.  
Luận văn này nghiên cứu mt sthut toán khai phá lut dãy, trong đó tập trung  
chyếu vào các thut toán AprioriAll, AprioriSome [1], vì đây là những thut toán rt  
ni tiếng trong lĩnh vực khai phá lut dãy và phù hp vi vic ng dng thnghim  
vào Hthng Qun lý khách hàng và tính hóa đơn nước. Luận văn tiếp tc khóa lun  
tt nghiệp đại học trước đây của tôi (Nguyễn Đình Văn (2003), Phân tích thiết kế hệ  
thng và ng dng vào bài toán qun lý khách hàng và tính hóa đơn nước) trong vic  
bsung những tính năng nâng cao cho hệ thng. Luận văn hy vọng phát hiện được  
mt slut dãy, chng hạn như dãy thi gian tiêu thụ nước nhiu nhất trong năm, dãy  
dch chuyn mc tiêu thụ nước theo mục đích sử dng (sinh hot, sn xut, kinh  
doanh, công cng, …), phát hin những trường hp bất thường trong sdụng nước (tỉ  
lệ đăng ký sử dng và thc tế sdụng nước), mức độ tht thoát nước và nguyên nhân  
thất thoát nước … để lãnh đạo xí nghip có thể đưa ra các biện pháp qun lý, các chiến  
lược sn xut, kinh doanh phù hp.  
Luận văn được trình bày gm có phn mở đu, ba chương và phần kết lun.  
Trong chương một, luận văn tập trung chyếu vào gii thiu tng quan vlut  
dãy và khái phá lut dãy. Vì lut dãy có nhng mi liên hgn gũi với lut kết hp và  
mt sthut toán khai phá lut dãy trong luận văn là mở rng ca thuật toán điển hình  
Apirori khai phá lut kết hp, nên phn này strình bày khái quát vlut kết hp, mt  
số đối sánh gia lut dãy và lut kết hp. Gii thiệu sơ bộ các phương pháp tiếp cn  
khai phá lut dãy và các thuật toán điển hình tương ứng. Ni dung của chương này  
được tng hp tcác tài liu [1,3-4,13].  
Trong chương hai, luận văn tập trung gii thiu các thut toán khai phá lut dãy  
như AprioriAll [1], AprioriSome [1], GSP [2] là những thut toán khi thy khai phá  
lut dãy. Gii thiệu hai phương pháp khai phá luật dãy được công bthi gian gần đây  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 7 -  
là “Khai phá lut dãy sdng kthut phân vùng” [10] và “Khai phá lut dãy bng mã  
hóa khối cơ bản” [16].  
Trong chương ba, luận văn giới thiu tng quan vHthng Qun lý khách hàng  
và tính hóa đơn nước, đồng thời đề xut ng dng khai phá lut dãy vi thut toán  
AprioriAll. Trong đó, đưa ra yêu cầu đầu bài và mô hình cthgii quyết bài toán.  
Luận văn sử dng dliu mô phng ca Xí nghiệp kinh doanh nước sch Hoàn Kiếm  
làm dliu thnghiệm đthực thi chương trình, đánh giá kết quthc nghim.  
Luận văn được htrmt phn từ Đề tài QG.10-38.  
Luận văn được thc hin dưới shướng dn ca PGS. TS. Hà Quang Thy –  
trường Đại hc Công Ngh. Em xin bày tlòng biết ơn sâu sắc ti Thầy đã hướng dn  
và có ý kiến chdn quý báu trong quá trình em thc hin luận văn. Xin chân thành  
cảm ơn Thạc sĩ Đặng Tiu Hùng – Công ty CSE đã đóng góp nhiều ý kiến bổ ích để  
bn luận văn được hoàn thiện hơn. Cuối cùng xin bày tlòng biết ơn tới những người  
thân trong gia đình, bạn bè đã động viên và giúp đỡ để tác gihoàn thành bn luận văn  
này.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 8 -  
CHƯƠNG 1 – KHÁI QUÁT CHUNG VỀ LUẬT DÃY VÀ  
KHAI PHÁ LUẬT DÃY  
Khai phá lut dãy là mt chủ đề thiết thc và quan trng trong khai phá dliu  
vi nhiu ng dụng như là trong phân tích giao dịch mua hàng ca khách hàng, khai  
thác weblogs, khai thác các dãy ADN, nghiên cu dliệu trong các bài toán khí tượng  
- thủy văn như dự báo thi tiết, các thm ha tự nhiên như động đất, sóng thn...  
Các thut toán khai phá lut dãy kế tha nhiu tcác thut toán khai phá lut kết  
hp, và nhiu thut toán trong số đó là mở rng ca các thut toán khi thy, ở đó sự  
khác bit chính là trong khai phá lut dãy đưa ra các phân tích liên giao dịch (inter-  
transaction), trong khi đó khai phá luật kết hp là tìm lut vmi liên quan gia các  
phn ttrong cùng mt giao dch (intra- transaction). Trước tiên, ta cn tìm hiu mt  
svấn đề ca lut kết hp.  
1.1 Giới thiệu chung về luật kết hợp  
1.1.1 Khái niệm luật kết hợp  
Mục đích của lut kết hp (Association Rule) là tìm ra các mi liên hgia các  
đối tượng trong khối lượng ln dliu [4]. Ni dung ca lut kết hợp được phát biu  
như sau:  
Cho tp các phn tI = {i1, i2, …, im}. Cho CSDL D là tp các giao dch, trong  
đó mỗi giao dch T là mt tp các phn t, tc là T I. Mi giao dịch được gn vi  
một đnh danh gi là TID.  
Cho A là tp các phn t. Giao dch T được gi là cha A nếu và chnếu A T.  
Mt lut kết hp có dng A B, trong đó A I, B I A B = Ø.  
Độ htrợ (support) và độ tin cây (confidence) là 2 tham số dùng để đo lường  
lut kết hp.  
Lut A B trong tp giao dch D với độ htr(support) s, kí hiu là support(A  
B), trong đó s là tlphần trăm ca các giao dch trong D mà có cha A B. Hay  
là xác sut P(A B ).  
Công thức để tính độ htrca lut A B như sau:  
n(A B)  
support(A B) = P(A B ) =  
N
Trong đó: N là tng sgiao dch; n(A B ) là sgiao dch có cha (A B )  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 9 -  
Lut A B có độ tin cy (confidence) c trong tp giao dch D, kí hiu là  
confidence(A B), trong đó c là tlphần trăm ca các giao dch trong D có cha A  
và cũng chứa B. Hay là xác sut P(B | A).  
Công thức để tính độ tin cy ca lut A B là xác suất có điều kin B khi đã biết  
A, như sau:  
n(A B)  
confidence(A B) = P(B | A ) =  
n(A)  
Trong đó: n(A) là sgiao dch cha A; n(A B ) là sgiao dch có cha (A B )  
Các luật đáp ứng được (lớn hơn hoặc bng) cả ngưỡng htrti thiu (min_sup)  
và ngưỡng tin cy ti thiu (min_conf) được gi là các lut mnh (strong rules). Thông  
thường, ta viết độ htrợ và độ tin cy là các giá trgia khong 0% và 100% thay vì  
từ 0 đến 1.0.  
min_sup min_conf gi là các giá trị ngưỡng (threshold) và phải xác định trước  
khi sinh các lut kết hp.  
1.1.2 Các ứng dụng điển hình của luật kết hợp  
Mt số ứng dụng điển hình như: phân tích giỏ hàng (market basket analysis), đưa  
ra chiến lược tiếp th, thiết kế bài trí gian hàng, chiến lược bán hàng khuyến mi, các  
bài toán phân lp, phân cm, ...  
Market basket analysis: Chng hn, mt người qun lý mt chi nhánh bán hàng,  
hmun biết thêm vthói quen mua sm ca khách hàng. Cthể như hmun biết  
rng “Trong mi ln mua sắm, khách hàng thường mua các nhóm mt hàng nào cùng  
nhau?”. Để trli câu hi này, vic phân tích gikhách hàng sẽ được thc hin trên  
dliu mua bán lca khách hàng đã được lưu trữ. Sau đó có thể sdng kết quả đó  
để lên kế hoch tiếp th, chiến lược qung cáo hoc dự định bsung các danh mc  
hàng hóa mi. Vic phân tích gihàng có thgiúp bn thiết kế gian hàng vi các cách  
bài trí hàng hóa khác nhau. Các mt hàng thường xuyên được mua vi nhau có thể  
được đặt gn nhau để thúc đẩy vic bán hàng. Nếu khách hàng mua máy tính cũng  
có xu hướng mua phn mm dit virus cùng lúc, cũng thế, đặt màn hình gn vi các  
phn mm hin thcó thể giúp tăng doanh sbán hàng ca chai. Trong mt chiến  
lược khác, btrí phn cng và phn mm ở hai đầu ca ca hàng có thlôi kéo khách  
hàng mua nhng mặt hàng khác trên đường di chuyn gia hai vtrí. Ví d, sau khi  
quyết định mua một máy tính đắt tin, trong khi đến mua phn mm dit virus, khách  
hàng quan sát thy hthng an ninh gia đình được trưng bày và có thquyết đnh mua.  
Vic phân tích gihàng cũng có thể giúp các nhà bán lẻ đưa ra các kế hoch bán hàng  
gim giá. Thông thường, khách hàng có xu hướng mua máy tính và máy in vi nhau,  
khi đó có thbán gim giá máy in nếu khách hàng mua máy tính.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 10 -  
Trong gian hàng, mi mt hàng gn vi mt biến Boolean biu thscó mt hay  
vng mt ca mặt hàng đó. Tiếp đến, mi gihàng có thể đưc thhin bi mt vector  
Boolean các giá trị được gán cho các biến đó. Các vector Boolean biu thcác mu  
mua hàng mà ở đó các mặt hàng được kết hp một cách thường xuyên hoặc được mua  
vi nhau. Các mu này có thể đưc biu thị ở dng các lut kết hp. Ví d, khách hàng  
mua máy tính cũng có xu hướng mua phn mm dit virus cùng lúc, có thể được biu  
din vi lut kết hợp như sau:  
computer antivirus_software [support = 2%, confidence = 60%]  
support = 2% nghĩa là có 2% trong tt ccác giao dịch được phân tích cho thy máy  
tính và phn mm diệt virus được mua cùng lúc. confidence = 60% nghĩa là có 60% số  
lượng khách hàng đã mua máy tính thì cũng mua phần mm. Thông thường, các lut  
kết hợp được quan tâm nếu chúng đáp ứng được cả ngưỡng htrti thiểu và ngưỡng  
tin cy ti thiểu. Các ngưỡng này có thể đưc thiết lp bởi người dùng.  
Mt sthuật toán thường được sdng cho khai phá lut kết hợp như: Apriori,  
Eclat, Frequent-Pattern tree, … .Dưới đây sẽ trình bày chi tiết thut toán Apriori vì  
thuật toán này được mrộng để sdng cho khai phá lut dãy.  
1.1.3 Thuật toán Apriori  
Tư tưởng ca thut toán Apriori là:  
- Tìm tt ccác tập thường xuyên (frequent itemsets): k-itemset (itemsets gm  
k items) được dùng để tìm (k+1)-itemset.  
- Đầu tiên tìm 1-itemset (ký hiu L1); L1 được dùng để tìm L2 (2-itemsets); L2  
được dùng để tìm L3 (3-itemset) và tiếp tục cho đến khi không có k-itemset  
được tìm thy.  
- Tcác tập thường xuyên (frequent itemsets) sinh ra các lut kết hp mnh  
(các lut kết hp tha mãn 2 tham smin_sup min_conf)  
Thut toán Apriori [4]  
Join Step: Ck is generated by joining Lk-1with itself.  
Prune Step: Any (k-1)-itemset that is not frequent cannot be a  
subset of a frequent k-itemset.  
Pseudo-code:  
Ck: Candidate itemset of size k  
Lk: frequent itemset of size k  
L1 = {frequent items};  
for (k = 1; Lk !=Ø; k++) do  
Ck+1 = candidates generated from Lk  
for each transaction t in database do  
increment the count of all candidates in Ck+1 that  
are contained in t  
Lk+1 = candidates in Ck+1 with min_support  
end  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 11 -  
return kLk  
Cth, thc hiện theo các bước sau:  
Bước 1: Duyt toàn bCSDL để có được độ htrs ca 1-itemset, so sánh s vi  
min_sup, để có được 1-itemset (L1)  
Bước 2: Thc hin phép ni (join) Lk-1 vi Lk-1 để sinh ra tp ng viên k-itemset. Loi  
bcác tp không phi là tập thường xuyên ta thu được k-itemset  
Bước 3: Duyt CSDL để có được độ htrs ca mi tp ng viên k-itemset, so sánh s  
vi min_sup để loi bcác tp không phi là tập thường xuyên (có s < min_sup), thu  
được tập thường xuyên k–itemset (Lk)  
Bước 4: Lp li từ bước 2 cho đến khi tp ng viên là rng (không tìm thy tập thường  
xuyên).  
Bước 5: Vi mi tập thường xuyên I, sinh tt ccác tp con s không rng ca I  
Bước 6: Vi mi tp con s không rng ca I, sinh ra các lut s => (I-s) nếu độ tin cy  
(confidence) ca nó > = min_conf  
Chn hn vi I= {A1,A2,A5},các tp con ca I:  
{A1}, {A2}, {A5}, {A1,A2},{A1,A5},{A2,A5}  
scó các lut sau  
{A1} => {A2,A5},{A2} =>{A1,A5},{A5} =>{A1,A2}  
{A1,A2} =>{A5},{A1,A5} =>{A2},{A2,A5} => {A1}  
d: Gista có có sdliu giao dịch như sau :  
Thut toán Apriori khai phá lut kết hợp được mô tả qua các bước sau  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 12 -  
Ta có tập thường xuyên I ={B,C,E}, vi min_conf = 80% ta có 2 lut kết hp là  
{B,C} => {E} và {C,E} => {B}  
1.2 Luật dãy  
1.2.1 Khái niệm luật dãy và ví dụ  
Ta gii thiu vấn đề da trên quá trình mua bán hàng và một CSDL lưu trữ thông  
tin giao dch mua bán hàng bao gm các thông tin vmã khách hàng (customer-id),  
thi gian giao dch (transaction-time) và các mt hàng trong giao dch.  
Các khái nim  
Mt itemset là mt tp không rng các phn t(item).  
Mt dãy (sequence) là mt danh sách có thtcác itemset.  
Không mt tính tng quát, chúng ta gisrng mt tp các phn tử được ánh xạ  
ti mt tp các snguyên lin k. Ta biu thitemset i bi (i1i2...im), trong đó ij là mt  
phn t. Ta biu thdãy s bi (s1s2...sn), trong đó sj là mt itemset.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 13 -  
Dãy (a1a2...an) được cha trong dãy (b1b2...bn) nếu ở đó tồn ti các snguyên i1 <  
i2 < ... < in sao cho a1 bi1 , a2 bi2 , ..., an bin. Ta sdng ký hiu để biu thị  
quan hệ “được cha trong”. Ví d, dãy <(3) (4,5) (8)> <(7) (3 8) (9) (4 5 6) (8)>, vì  
((3) (3 8), (4 5) (4 5 6) và (8) (8). Tuy nhiên, dãy <(3) (5)> không được cha  
trong <(3 5)> và ngược li. Phn t3 và 5 trong dãy <(3) (5)> mô tchúng không nm  
trong cùng mt ln giao dch, trong khi phn t3 và 5 trong dãy <(3 5)> mô tchúng  
nm trong mt ln giao dch. Trong mt tp các dãy, mt dãy s là ln nht hay tối đa  
(maximal) nếu s không được cha trong bt kdãy nào khác.  
Tt ccác giao dch ca cùng mt khách hàng có thể được xem như là một dãy.  
Trong đó, mỗi giao dịch được xem như một tp các phn t, và danh sách các giao  
dch theo thtự tăng dần vthi gian giao dịch tương ứng vi mt dãy. Chúng ta gi  
đó là một dãy khách hàng (customer-sequence). Ta biu thcác giao dch ca mt  
khách hàng được sp xếp thtự tăng dần theo thi gian là (T1, T2, ..., Tn). Tp các  
phn t(item) trong Ti được biu thbi itemset(Ti). Dãy customer-sequence ca mt  
khách hàng là mt dãy <itemset(T1) itemset(T2) ... itemset(Tn)>.  
Mt khách hàng htrmt dãy s nếu s được cha trong dãy customer-sequence  
đối với khách hàng đó. Độ htrca mt dãy được định nghĩa là skhách hàng htrợ  
dãy đó.  
Các dãy tối đa trong stt ccác dãy phbiến đáp ứng mc htrti thiu cụ  
thể nào đó được gi là lut dãy hay mu dãy (sequential patterns). [1]  
Ta gi dãy đáp ứng độ htrti thiu là dãy phbiến (large sequence)  
dụ  
Cho CSDL mua bán hàng thhin trong hình 1.1.  
Transaction Time  
June 10 '93  
June 12 '93  
June 15 '93  
June 20 '93  
June 25 '93  
June 25 '93  
June 25 '93  
June 30 '93  
June 30 '93  
July 25 '93  
Customer Id Items Bought  
2
5
2
2
4
3
1
1
4
4
10, 20  
90  
30  
40, 60, 70  
30  
30, 50, 70  
30  
90  
40, 70  
90  
Hình 1.1: CSDL gốc  
CSDL trong hình 1.2 đã được sp xếp theo mã khách hàng (customer-id) và thi gian  
giao dch.  
Customer Id Transaction Time Items Bought  
1
June 25 '93  
30  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 14 -  
June 30 '93  
1
2
2
2
3
4
4
4
5
90  
10, 20  
30  
40, 60, 70  
30, 50, 70  
30  
40, 70  
90  
90  
June 10 '93  
June 15 '93  
June 20 '93  
June 25 '93  
June 25 '93  
June 30 '93  
July 25 '93  
June 12 '93  
Hình 1.2: CSDL được sắp xếp theo  
Khách hàng ID và thời gian giao dịch  
CSDL hình 1.3 thhin như là một tp các dãy khách hàng (customer-sequence).  
Customer Id  
Customer Sequence  
<(30) (90)>  
<(10 20) (30) (40 60 70)>  
<(30 50 70)>  
<(30) (40 70) (90)>  
<(90)>  
1
2
3
4
5
Hình 1.3: CSDL theo dãy khách hàng  
(customer-sequence)  
Vi mc htrti thiu là 25%, tc là xut hin ti thiu 2 trong tng s5 khách  
hàng, hai dãy <(30) (90)> và <(30) (40 70)> là ln nht trong scác dãy đáp ứng điều  
kin giàng buc htr, và là các mu dãy mong mun. Mu dãy <(30) (90)> xut hin  
trong các giao dch ca khách hàng 1 và 4. Mu dãy <(30) (40 70)> xut hin trong  
giao dch ca khách hàng 2 và 4.(Vì (40 70) là tp con ca (40 60 70) nên cũng được  
tính cho khách hàng 2).  
dvmt dãy mà không có htrti thiu là dãy <(10 20) (30)>, dãy này chỉ  
xut hin trong giao dch ca khách hàng 2. Các dãy <(30)>, <(40)>, <(70)>,  
<(90)>, <(30) (40)>, <(30) (70)>, <(40 70)> mc dù tha mãn htrti thiểu, nhưng  
chúng không phi dãy tối đa nên không phi là kết qucn tìm.  
Sequential Patterns with support > 25%  
<(30) (90)>  
<(30) (40 70)>  
Hình 1.4: Tập kết quả  
1.2.2 Một số ứng dụng  
Khai phá dãy cho các mẫu hành vi người dùng trong lĩnh vực thương mại điện  
thoại di động [7]  
Sphát trin ca máy tính và các công nghtruyn thông gần đây giúp cho các  
hthng liên lc cá nhân (Personal Communication Systems - PCSs) ngày càng trở  
nên phbiến, đặt ra vấn đề vqun lý thông tin di đng.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 15 -  
Mô hình hóa mt cách hiu qucác mu hành vi của người sdng trong các hệ  
thống điện thoại di động đem lại li ích không chcho ngưi sdng trong nhng truy  
cp thông minh, mà còn đem lại li nhun tài chính cho các nhà cung cp dch vdi  
động như quảng cáo. Trong môi trường web, người sdng di đng có thyêu cu các  
loi hình dch vkhác nhau và ng dng của điện thoại di động, PDA hay máy tính  
xách tay tbt cứ đâu ti bt kthi gian nào thông qua GSM, GPRS hoc mng  
không dây. Rõ ràng là nhng hành vi của người sdụng điện thoại di động (trong đó  
vtrí và dch vvốn đã cùng tn ti) trnên phc tạp hơn so với các hthng web  
truyn thng. Để giúp người sdng thu nhận được thông tin mong mun trong mt  
thi gian ngn là mt trong nhng ng dng nhiu ha hẹn, đặc biệt khi mà người  
dùng không có nhiu thời gian để lướt nhiu trang web.  
Hthng qun lý thông tin di động lưu trữ và cp nht các thông tin vtrí ca  
ngưi sdụng điện thoại di động, những người được phc vbi hthng. Mt chủ  
đề nóng trong lĩnh vực nghiên cu quản lý thông tin di động là dự đoán di động. Dự  
đoán di động có thể được định nghĩa là dự đoán vtrí di chuyn tiếp theo của người sử  
dụng di động gia các vùng trong hthng liên lc cá nhân PCS hoc mng GSM. Dự  
đoán đó có thể được sdụng để tăng hiệu quca PCSs. Sdng dự đoán di chuyn,  
hthng có thphân bngun tài nguyên mt cách hiu qukhả năng di chuyển đến  
các vùng thay vì phân bngun tài nguyên mt cách không có định hướng trong các  
vùng lân cn ca người sdụng điện thoại di động. Hiu quphân bngun tài  
nguyên cho người dùng di động sci thin vic sdng tài nguyên và giảm độ trễ  
trong vic tiếp cn các ngun tài nguyên. Dbáo chính xác thông tin vtrí cũng rất  
quan trng trong xlý các truy vn phthuc vào vtrí của người dùng di động. Khi  
người dùng đưa ra một truy vấn liên quan đến vtrí, câu trli cho truy vn sphụ  
thuc vào vtrí hin ti của người dùng. Nhiu phm vi ng dng bao gm clĩnh vực  
chăm sóc sức khe, khoa hc sinh hc, qun lý khách sn, và li ích quân sthiu  
quxlý các truy vn phthuc vào vtrí. Vi hiu qudự đoán vvtrí, có ththể  
trli các truy vn liên quan đến vtrí di chuyn tiếp theo của người sdng.  
So vi số lượng công vic thc hin cho vic cp nht vtrí, mt số ít đã được  
thc hin trong lĩnh vực dbáo di chuyn. Nhng công vic này có mt shn chế,  
được giải thích như sau:  
Mt số trong đó là sự không nlc tìm kiếm các mu thông tin di động.  
Thay vào đó, các mẫu này được giả định là có sn. Nhng mu này sau đó  
được sdng để dbáo di chuyn.  
Vic dự đoán được da trên khả năng phân bố ca tốc độ và hướng ca  
ngưi sdụng điện thoại di động. Để thu thp những thông tin như vậy,  
cn thiết phi có nhng công crt tinh vi và tốn kém như hệ thống định  
vtoàn cu (Global Positioning System - GPS).  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 16 -  
Nhm khc phc nhng hn chế trên, người ta đã phát trin mt thut toán dự  
đoán di động hiu qu. Nhng qui lut này được gi là các mẫu di động. Sau đó, các  
luật di động này được trích xut ra tcác mẫu di động. Các quy tắc di động được gn  
vi quỹ đạo hin ti ca một người sdụng điện thoại di động, và được sdng cho  
các dự đoán hướng di chuyn tiếp theo ca ngưi dùng. Thut toán dự đoán này là  
khai phá các mẫu di động của người dùng và sinh ra các luật di động, được thc hin  
offline bi hthng. Tuy nhiên, dbáo di chuyn được thc hin online. Điều đó có  
nghĩa là bt cứ khi nào người dùng có ý định thc hin mt di chuyn trong mt khu  
vc nhất định, mt yêu cu dự đoán sẽ được gửi đến hthng và dự đoán được thc  
hin bi hthng bng cách sdng các lut di đng da trên thut toán dự đoán.  
Hình 1.5: Kiến trúc tng thca hthng quản lý thông tin di động  
1.2.3 Luật dãy và luật kết hợp: một số đối sánh  
Vấn đề ca lut kết hp là tìm kiếm các mẫu thường xuyên, các liên kết, các mi  
tương quan, hoặc các cu trúc có quan hnhân qugia tp các phn thoặc các đối  
tượng trong các CSDL giao dch, CSDL quan h, các kho thông tin khác. Lĩnh vực  
khai phá lut kết hợp được phát trin vi nhiu mục đích như thực hin phân tích thói  
quen mua bán hàng, trong đó cần tìm nhng mặt hàng được mua vi nhau nhiu nht.  
Như trong khai phá web, khai phá lut kết hp tìm các trang web liên quan được truy  
cp theo đợt, điều đó scung cp những ước tính nhất định vxác sut truy cp web.  
Ví dụ như “Nếu một người truy cp trang CNN thì có đến 60% khả năng họ struy  
cp trang ABC News trong tháng đó”.  
Trong khi đó, vấn đề ca lut dãy là tìm kiếm các mu có liên quan đến yếu tố  
thi gian trên mt CSDL dãy (các phn tử được sp tht), ví dụ như CSDL nht ký  
duyt web. Khai phá lut dãy được xem là mrng ca khai phá lut kết hp, vì lut  
kết hp chkho sát các mu không có liên quan đến yếu tthi gian. Khai phá lut  
dãy có vai trò rt quan trng trong nhiu ng dng thc tế, ví dụ như vic phát hin tri  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 17 -  
thc trong dliu nht ký web, do nhật ký web được sp xếp theo thi gian. Khi đó,  
khai phá lut dãy có thcho kết quả như “Nếu người dùng truy cập trang X, sau đó  
truy cp trang Y, thì c% khả năng sẽ truy cp trang Z”.  
1.2.4 Sơ bộ về các phương pháp khai phá luật dãy  
Phương pháp dựa trên Apriori (Apriori-based method)  
Thut toán GSP da trên nguyên tc duyt dliu theo chiu rng (breadth-first),  
mrng ca mô hình A-priori. Thut toán GSP sdụng phương pháp “To – Ta”  
(“Generating-Pruning”) được định nghĩa trong (Agrawal và cng s, 1993.) và thc  
hin theo cách sau đây. Dãy ng viên có độ dài (k +1) được to ra sdng phép ni  
hai dãy phbiến, s1 và s2, có độ dài k, nếu dãy con thu được bằng cách lược bphn tử  
đầu tiên ca s1 trùng vi dãy con thu được bng cách lược bphn tcui cùng ca s2.  
Vi ví dtrong Hình 1.6, và k = 2, ta có s1 là <(DVD Rec, DVD-R)> và s2 là <(DVD-  
R) (Video Soft)>, khi đó dãy ng viên sẽ là <“(DVD Rec, DVD-R) (Video Soft)”> bởi  
dãy con được nói đến ở trên là <(DVD-R)> (chung ca s1 và s2). Một phương pháp  
khác sdng nguyên lý "Generating-Pruning" là PSP (Masseglia et al., 1998). Sự  
khác biệt chính với GSP là các ứng viên cũng như các dãy phổ biến được quản lý  
trong một cấu trúc hiệu quả hơn. Các phương pháp trình bày cho đến nay được thiết kế  
để phụ thuộc ít nhất có thvào bộ nhớ chính. Vì chúng cn phi ti toàn bCSDL  
(hoc mt ánh xca CSDL) trong bnhchính. Phương pháp này đạt hiu qucao  
khi CSDL có thphù hp vi bnh.  
Cust  
June 04, 2004  
June 05, 2004  
June 06, 2004 June 07, 2004  
C1 Camcorder, MiniDV Digital Camera  
C2 Camcorder, MiniDV DVD Rec, DVD-R  
MemCard  
USB Key  
Video Soft  
C3 DVD Rec, DVD-R  
C4  
MemCard  
Camcorder, MiniDV Laptop  
Video Soft  
USB Key  
DVD Rec, DVD-R  
Hình 1.6: Các dãy dliu ca 4 khách hàng mua trong 4 ngày  
Phương pháp dựa trên định dạng dọc (Vertical format-based method)  
Trong (Zaki, 2001), tác giả đề xuất thuật toán SPADE (Sequential PAttern  
Discovery using Equivalent Class – Khai phá mẫu dãy sử dụng lớp tương đương). Ý  
tưởng chính ca phương pháp này là mt phân cm các dãy phbiến da trên các tin  
tphbiến ca chúng và tính các dãy ng viên nhmt ánh xca CSDL (np trong  
bnhchính). SPADE chỉ cần quét CSDL ba lần để trích xuất các mẫu dãy. Lần quét  
đầu tiên nhằm tìm kiếm các phần tử thường xuyên, lần thứ hai để tìm kiếm các dãy  
phổ biến độ dài 2 (length 2) và lần cuối cùng để kết hợp các dãy phổ biến có độ dài  
2, một bảng chứa định danh tương ứng của các dãy và tập các phần tử trong CSDL (ví  
dụ như dữ liệu dãy có chứa các dãy phổ biến và mốc thời gian tương ứng). Dựa trên  
những biểu diễn này trong bộ nhớ chính, độ hỗ trợ của các dãy ứng viên có độ dài k là  
kết quả của phép nối (join) trên các bảng liên quan đến các dãy phổ biến có độ dài (k -  
1) có thể sinh ra ứng viên này (như vậy, mọi thao tác sau khi khai phá các dãy phổ  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 18 -  
biến có chiều dài 2 được thực hiện trong bộ nhớ). SPAM (Ayres et al., 2002) là một  
phương pháp khác mà cần phải ánh xạ CSDL trong bộ nhớ chính. Các tác giả đã đề  
xuất ánh xạ CSDL theo không gian điểm ảnh định dạng dọc (vertical bitmap) cho việc  
thể hiện các ứng viên và tính độ hỗ trợ.  
Các phương pháp dựa trên việc phát triển mẫu (Pattern growth based methods)  
Một cách tiếp cận khởi đầu cho khai thác mẫu dãy thực hiện phép chiếu đệ quy  
các dữ liệu dãy thành các CSDL nhỏ hơn. Đề xuất trong (Han et al., 2000), FreeSpan  
là thuật toán đầu tiên xem xét phương pháp quy chiếu mẫu (pattern-projection) trong  
khai phá mẫu dãy. Công trình được tiếp tục với PrefixSpan, (Pei et al., 2001), dựa trên  
nghiên cứu về số lượng các ứng viên được đề xuất bởi phương pháp Generating-  
Pruning. Bắt đầu từ các phần tử thường xuyên của CSDL, PrefixSpan sinh ra CSDL  
quy chiếu với phần dữ liệu dãy còn lại. Các CSDL quy chiếu như vậy chứa các hậu tố  
của dữ liệu dãy tCSDL gốc, được nhóm theo các tiền tố. Quá trình này được lặp đi  
lặp lại một cách đệ quy cho đến khi không có phần tử thường xuyên nào được tìm thấy  
trong các CSDL quy chiếu. mức này, mẫu dãy phổ biến đường đi của các phần tử  
thường xuyên đến CSDL quy chiếu đó.  
Các mẫu dãy đóng (Closed Sequential Patterns)  
Mẫu dãy đóng là mẫu dãy mà không được chứa trong mẫu dãy khác có cùng mức  
hỗ trợ. Xét CSDL minh họa trong hình 1.6, mẫu dãy phổ biến <(DVD Rec) (Video  
Soft)> không phải là mẫu dãy đóng vì nó được chứa trong mẫu dãy s2 và có cùng độ hỗ  
trợ (50%). Mặt khác, mẫu dãy <(Camcorder, MiniDV)> là mẫu dãy đóng vì nó được  
chứa trong mẫu dãy s1 nhưng có độ hỗ trợ là 75%, khác với độ hỗ trợ của s1 là 50%.  
Thuật toán đầu tiên cho việc trích xuất các mẫu dãy đóng là CloSpan (Yan et al.,  
2003) với việc phát hiện các mẫu tuần tự không đóng, tránh được một số lượng lớn các  
lần gọi đệ quy. Thuật toán CloSpan dựa trên việc phát hiện các mẫu tuần tự có độ dài  
2, ví dụ như “A luôn xảy ra trước hoặc sau B”. Xét CSDL trong hình 1.6, chúng ta biết  
rằng <(DVD Rec) (Video Soft)> là một mẫu thường xuyên. Các tác gicủa thuật toán  
CloSpan đề xuất các phương pháp liên quan để chứng minh rằng <(DVD-R)> luôn  
luôn xảy ra trước <(Video Soft)>. Dựa vào quan sát này, CloSpan có thchỉ ra rằng  
<(Rec DVD, DVD-R) (Video Soft)> là mẫu thường xuyên mà không cần bất kỳ lần  
quét CSDL nào nữa.  
Thuật toán BIDE (Wang và Han, 2004) là mở rộng của thuật toán CloSpan như  
sau. Đầu tiên, thông qua một phần mở rộng dãy mới, được gọi là BI-Directional  
Extension, thuật toán sử dụng cả hai phương pháp là mẫu tiền tố và kiểm tra thuộc tính  
đóng để phát triển. Thứ hai, để lược bớt không gian tìm kiếm sâu hơn so với phương  
pháp tiếp cận trước, thuật toán đề nghị một phương pháp lược bớt gọi là BackScan. Ý  
tưởng chính của phương pháp này là để tránh mở rộng dãy bằng cách phát hiện trước  
phần mở rộng đã được chứa trong một dãy rồi.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 19 -  
Khai phá mẫu dãy tăng dần (Incremental Mining of Sequential Patterns)  
Khi CSDL phát triển, vấn đề duy trì các mẫu dãy trong một thời gian dài trở nên  
rất cần thiết vì một số lượng lớn các bản ghi mới có thể được thêm vào CSDL. Để  
phản ánh hiện trạng của CSDL, ở đó các mẫu dãy trước đó sẽ trở nên không thích hợp  
và các mẫu dãy mới có thể xuất hiện, các cách tiếp cận hiệu quả mới đã được đề xuất.  
(Masseglia et al, 2003.) đề xuất một giải thuật hiệu quả, được gọi là ISE, để tính toán  
các dãy phổ biến trong CSDL cập nhật. Giải thuật ISE giảm thiểu chi phí tính toán  
bằng cách tái sử dụng các thông tin tối thiểu từ các dãy phổ biến cũ, tức là độ hỗ trợ  
của các dãy phổ biến. Các tính năng chính mới của ISE là tập các dãy ứng viên cần  
kiểm tra được giảm đáng kể. Các thuật toán SPADE đã được mở rộng trong thuật toán  
ISM (Parthasarathy et al, 1999.). Để cập nhật mức hỗ trợ và liệt kê các dãy phổ biến,  
ISM duy trì “các dãy phổ biến tối đa” (“maximally frequent sequences”) và “các dãy  
không thường xuyên tối thiểu” (“minimally infrequent sequences”). KISP (Lin và Lee,  
2003) cũng đề xuất để tận dụng những kiến thức đã được tính toán trước và tạo ra một  
nền tảng kiến thức cho các truy vấn bổ sung vmẫu dãy và các giá trhỗ trợ khác  
nhau.  
Mở rộng vấn đề dựa trên việc trích xuất các mẫu dãy (Extended Problems Based  
on the Sequential Pattern Extraction)  
Được thúc đẩy bởi các ứng dụng tiềm năng cho khai phá mẫu dãy, nhiều mở rộng  
của định nghĩa ban đầu đã được đề xuất có thể liên quan đến việc bổ sung các ràng  
buộc hoặc định dạng của các mẫu. Trong (Pei et al., 2002) tác giả đã liệt kê một số  
những ràng buộc hữu ích nhất cho việc trích xuất các mẫu dãy. Những ràng buộc này  
có thể được xem như là những bộ lọc được áp dụng cho việc trích xuất các mẫu,  
nhưng hầu hết các phương pháp thông thường dùng chúng cho việc liệt kê trong suốt  
quá trình xử lý. Các bộ lọc này có thliên quan tới các phần tử (“trích xuất các mẫu  
chchứa các phần tử Camcorder”) hoặc theo độ dài của mẫu. Định nghĩa mẫu dãy  
cũng đã được điều chỉnh bởi một số nghiên cứu. Ví dụ (Kum et al., 2003) đã đề xuất  
ApproxMap để khai phá các mẫu dãy gần đúng. ApproxMap đầu tiên đề xuất phân  
cụm dữ liệu dãy dựa trên các phần tử của chúng. Sau đó, mỗi cụm ApproxMap cho  
phép trích xuất các mẫu dãy gần đúng liên quan tới các cụm này. Ta xét các CSDL  
trong hình 1.6 như một cluster. Bước đầu tiên của quá trình trích xuất là cung cấp các  
dữ liệu dãy của cluster với một sự liên kết tương tự như của tin sinh học.  
Camcorder,  
MiniDV  
DigiCam  
MemCard  
USB Key  
Camcorder,  
MiniDV  
DVD Rec,  
DVD-R  
DVD Rec, MemCard  
DVD-R  
Video Soft  
Video Soft  
USB Key  
Camcorder,  
MiniDV  
Laptop  
DVD Rec,  
DVD-R  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 20 -  
Camcorder: 3 DigiCam: 1 DVD Rec: 3 MemCard: 2 Video Soft: 2 USB Key: 2  
MiniDV: 3  
Laptop: 1 DVD-R: 3  
Hình 1.7: Các liên được đề xuất đối với dữ liệu dãy của Hình 1.6  
Dãy cuối cùng trong Hình 1.7 thể hiện dãy trọng số thu được bởi ApproxMap trên dãy  
Hình 1.6. Với độ hỗ trợ 50%, dãy trọng scho các mẫu gần đúng được đưa ra như sau:  
<(Camcorder: 3, MiniDV: 3) (DVD Rec: 3, DVD-R: 3) (MemCard: 2) (Video Soft: 2)  
(USB Key: 2)>.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 21 -  
CHƯƠNG 2 CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY  
2.1 Khái quát về khai phá luật dãy  
Khai phá lut dãy xlý dliu điển hình là các dãy [3] (mt dãy là mt tp hp  
các phn tử được sp tht). So vi vấn đề lut kết hp, lut dãy nghiên cu dliu  
đưa ra các phân tích “liên giao dch” (inter-transaction) [1]. Có rt nhiu ng dng về  
khai phá mu dãy và vấn đề cũng được định nghĩa theo nhng cách khác nhau vi mc  
độ thay đổi không đáng kể. Kết hp vi các gii pháp hiu qu, nhng vấn đề này có  
thphù hp vi dliu thc tế có mc thi gian (timestamp) (khi mà lut kết hp đã  
không gii quyết đưc) và cung cp nhng kết quhu ích.  
Ta sdng CSDL giao dch mua bán hàng làm ví d, vi các thông tin v: định  
danh ca dãy hoặc định danh khách hàng (sequence-id or customer-id), thi gian giao  
dch (transaction-time) và mt hàng liên quan trong giao dch (item). Mt CSDL như  
vy được gi là CSDL dãy. Chính xác hơn, mỗi giao dch là mt tp hp các mt hàng  
(itemset) và mi dãy là mt danh sách các giao dch được sp xếp theo thi gian giao  
dịch. Đối vi hiu quca vic trgiúp ra quyết định, mục đích là để tìm ra nhng  
thói quen tiêu biu của người dùng. Để làm được việc đó, đòi hi phi có mt CSDL  
dãy và đưa ra giá trhtrtc là sln xut hin trong CSDL. Mt mu dãy phbiến  
là mt dãy mà tn xut xut hin trong CSDL vượt ngưỡng quy định. Vấn đề tìm kiếm  
tt ccác mu thường xuyên từ lưng dliu khng lồ đòi hi chi phí vmt thi gian  
là rt ln. Thông thường, vic kim tra ca tt ccác kết hp có thtrong dliu là  
vấn đề khó và nhng thut toán mi tp trung vào dliu dãy được coi là quan trng  
đối vi mt tchc.  
Khai phá lut dãy có thể được áp dng rng rãi trên các ng dng tnhiu loi  
dliu có thi gian liên quan. Ví d, tmt CSDL mua bán hàng, mt mu dãy có thể  
được dùng để phát trin các chiến lược tiếp thvà sn phm; Bng cách phân tích  
weblog, các mu dãy rt hu ích cho vic xây dng website công ty giúp khách hàng  
truy cp mt cách ddàng các liên kết phbiến nht (Kosala và Blockeel, 2000); Ta  
cũng có thể thy CSDL báo đng mng vin thông, phát hin xâm nhp (Hu và Panda,  
2004), các dãy ADN (Zaki, 2003), …  
Chúng ta chia vấn đề khai phá lut dãy thành các giai đoạn sau đây:  
Giai đoạn sp xếp (Sort Phase): CSDL (D) được sp xếp, vi mã khách hàng  
(custorm-id) là khóa chính và thi gian giao dch (transaction-time) là khóa phụ. Bước  
này chuyển đi ngầm cơ sơ dữ liu giao dch gc thành CSDL dãy khách hàng.  
Giai đoạn Litemset (Litemset Phase): Trong giai đoạn này, chúng ta tìm tp tt cả  
litemsets L, đồng thi cũng tìm kiếm tp tt ccác dãy phbiến 1-sequence, vì tp này  
cũng là {<l> | l L}.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 22 -  
Vi giao dch ca một khách hàng, độ htrợ được tính tăng lên chỉ mt ln ngay  
ckhi khách hàng mua cùng mt tp các sn phm trong hai hay nhiu giao dch khác  
nhau.  
Tp hợp các litemsets được ánh xti mt tp hp các snguyên liên tiếp. Sau  
bước xlý litemsets để có được các thc thduy nht, vic ánh xnày giúp ta có thể  
so sánh hai litemsets có bng nhau hay không trong thi gian cố định, và gim sln  
cn thiết để kim tra nếu mt dãy được cha trong dãy khách hàng.  
Giai đoạn chuyển đổi (Transformation Phase): Như chúng ta sẽ thy trong giai  
đoạn dãy (Sequence Phase), cn phải xác định lặp đi lặp li nhiu lần để đưa ra một  
tp các dãy phbiến (large sequences) được cha trong mt dãy khách hàng. Để thc  
hiện điu này mt cách nhanh chóng, ta chuyển đi mi dãy khách hàng thành một đi  
din thay thế.  
Trong mt dãy khách hàng được chuyển đổi, mi giao dịch được thay thế bng  
tp tt ccác litemsets được cha trong giao dịch đó. Nếu mt giao dch không cha  
bt klitemset nào, nó không được gili trong dãy chuyển đổi. Nếu mt dãy khách  
hàng không cha bt klitemset nào thì dãy này bloi btrong CSDL chuyn  
đổi. Tuy nhiên, nó vn góp phn vào vic tính tng số lượng khách hàng. Mt dãy các  
khách hàng khi đó được thhin bi mt danh sách tp các litemsets. Mi tp  
litemsets được biu din bi {l1, l2, ..., ln}, trong đó li mt litemset.  
CSDL chuyển đổi này gi là DT. Tiếp tc sdng CSDL trong phn 1.2 làm ví  
d, vic chuyển đổi CSDL Hình 1.3 được thhin trong Hình 2.1. Ví d, trong trong  
vic chuyển đi dãy khách hàng vi Id 2, giao dch (10 20) bloi bvì nó không cha  
bt klitemset nào và giao dịch (40 60 70) được thay thế bng tp litemsets {(40),(70),  
(40 70)}.  
Customer  
Id  
Original  
Customer Sequence  
Transformed  
Customer Sequence  
After Mapping  
1
2
< (30) (90)>  
< (10 20) (30)  
(40 60 70) >  
< (30 50 70)>  
< {(30)} {(90)}>  
< {(30)} {(40), (70),  
(40 70)}>  
<{1} {5}>  
<{1} {2,3,4}>  
3
4
< {(30), (70)}>  
<{1,3}>  
< (30) (40 70) (90)> < {(30)} {(40), (70), (40 70)} <{1} {2,3,4}  
{(90)}>  
{5}>  
5
< (90)>  
< {(90)}>  
<{5}>  
Hình 2.1: CSDL đã được chuyển đổi từ Hình 1.3  
Giai đon dãy (Sequence Phase): Ta sdng tp các litemsets để tìm các dãy ng  
viên. Cu trúc chung là thc hin các quá trình duyt lặp đi lặp li trên dliu. Trong  
mi ln duyt, ta bắt đầu vi mt tp khi to các dãy phbiến. Ta sdng tp khi  
to này để sinh ra các dãy phbiến mi, tiềm năng, gọi là các dãy ng viên (candidate  
sequences). Tìm độ htrcho các dãy ng viên này trong sut quá trình duyt dliu.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 23 -  
Ti ln duyt cui cùng ca mỗi bước, xác định dãy nào trong các dãy ng viên là dãy  
phbiến thc s. Các dãy ng viên phbiến trthành khi to cho ln duyt tiếp  
theo. Trong ln duyệt đầu tiên, tt ccác 1-sequences với độ htrti thiểu, được  
chứa trong giai đoạn litemset, to nên tp khi to.  
Giai đoạn tìm dãy tối đa (Maximal Phase): Tìm các dãy tối đa trong tập các dãy  
phbiến (large sequences). Giai đoạn này được kết hp với giai đoạn dãy (Sequence  
Phase) để gim chi phí thi gian trong vic tính các dãy không tối đa.  
Tp tt ccác dãy phbiến S được tìm thấy trong giai đoạn dãy, thut toán tiếp  
theo đây có thể được sdụng để tìm các dãy tối đa. Vi n là độ dài ca dãy dài nht.  
for ( k = n; k > 1; k – – ) do  
foreach k-sequence sk do  
Delete from S all subsequences of sk  
2.2 Các thuật toán khởi thủy  
Phn này gii thiu ba thuật toán cơ bản khai phá lut dãy bao gm: AprioriAll,  
AprioriSome, GSP. Đây là những thut toán rt phbiến trong khai phá lut dãy.  
2.2.1 Thuật toán AprioriAll  
Thut toán AprioriAll  
L1 = {large 1-sequences}; // Result of the litemset phase  
for ( k = 2; Lk-1 Ø; k++ ) do  
begin  
Ck New candidates generated from Lk-1 (see Apriori Candidate Generation).  
foreach customer-sequence c in the database do  
Increment the count of all candidates in Ck that are contained in c.  
Lk = Candidates in Ck with minimum support.  
end  
Answer = Maximal Sequences in k Lk;  
Hình 2.2: Thuật toán AprioriAll  
Trong mi ln duyt, ta sdng các dãy phbiến tln duyệt trước đó để to ra  
các dãy ng viên, sau đó tính độ htrca chúng bng cách duyt toàn bCSDL. Ti  
ln duyt cui cùng ti mỗi bước, độ htrca các ng viên được sdụng để xác định  
các dãy phbiến cho bước tiếp theo. Trong ln duyệt đầu tiên, đầu ra của giai đoạn  
litemset được sdụng để khi to tp các dãy phbiến 1-sequences.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 24 -  
Sinh các dãy ng viên (Apriori Candidate Generation): Hàm apriori-generate có  
dliu đầu vào là Lk-1: tp tt ccác dãy phbiến (k-1)-sequences. Hàm thc hiện như  
sau:  
insert into Ck  
select p.litemset1, p.litemset2, ..., p.litemsetk-1, q.litemsetk-1  
from Lk-1 p, Lk-1 q  
where p.litemset1 = q.litemset1, . . ., p.litemsetk-2 = q.litemsetk-2;  
Next, delete all sequences c Ck such that some (k-1)-subsequence of c is not  
in Lk-1:  
forall sequences c Ck do  
forall (k-1)-subsequences s of c do  
if (s Lk-1) then  
delete c from Ck;  
Hình 2.3: Hàm apriori-generate  
Tiếp tc vi CSDL trong phn 1.2, xét tp các dãy 3-sequences L3 trong Hình  
2.4. Nếu L3 được ly làm đầu vào cho hàm apriori-generate, ta snhn được các dãy  
như trong hình 2.5 sau khi thc hin phép ni. Sau khi lược bt các dãy có dãy con  
không thuc L3 ta được kết qulà các dãy trong hình 2.6. Ví d, dãy <1 2 4 3> bị lược  
bỏ đi vì có dãy con <2 4 3> không thuc L3.  
Sequence  
<1 2 3>  
<1 2 4>  
<1 3 4>  
<1 3 5>  
<2 3 4>  
Support  
2
2
3
2
2
Hình 2.4: Large 3-Sequences  
<1 2 3 4>  
<1 2 4 3>  
<1 3 4 5>  
<1 3 5 4>  
Hình 2.5: Candidate 4-Sequences (after join)  
<1 2 3 4>  
Hình 2.6: Candidate 4-Sequences (after pruning)  
Ta cn chng minh rng Ck Lk. Rõ ràng là bt kdãy con nào ca mt dãy phổ  
biến cũng cần có độ htrti thiu. Do đó, nếu ta mrng mi dãy trong Lk-1 vi tt  
ctp các phn tphbiến có th, sau đó xóa tt cnhng dãy mà có dãy con (k-1)-  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 25 -  
subsequences ca chúng mà không nm trong Lk-1, điều này có thể không đúng với  
mt superset ca các dãy trong Lk.  
Phép ni này tương đương với vic mrng Lk-1 vi mi tp phn tphbiến và  
sau đó lược bcác dãy mà có dãy con (k-1)-subsequences không nm trong Lk-1. Vì  
vậy, sau bước thc hin phép ni, Ck Lk. Cũng với lp luận tương tự, tại bước lược  
b, ta cũng xóa từ Ck tt ccác dãy mà có các dãy con (k-1)-subsequences không nm  
trong Lk-1, và không xóa bt kdãy nào có thnm trong Lk.  
Ví d: Xét CSDL vi các dãy khách hàng trong hình 2.7. Các dãy khách hàng  
được chuyển đổi, ở đó mi giao dịch được thay thế bi tp các litemsets cha trong  
giao dch và các litemsets được thay thế bi các snguyên. Độ htrti thiểu được  
đưa ra cụ thlà 40%. Ln duyệt đầu tiên trên CSDL được thc hiện trong giai đoạn  
litemset, và ta xác định được dãy phbiến 1-sequences thhin trong hình 2.8. Sau  
khi kết thúc các ln duyt th2, 3, 4, các dãy phbiến cùng vi độ htrca chúng  
được thhin trong các hình 2.9, hình 2.10, và hình 2.11 tương ứng. Không có ng  
viên nào được to trong ln duyt th5. Các dãy phbiến tối đa là ba dãy như hình  
2.12.  
<{1 5} {2} {3} {4}>  
<{1} {3} {4} {3 5}>  
<{1} {2} {3} {4}>  
<{1} {3} {5}>  
<{4} {5}>  
Hình 2.7: Dãy khách hàng  
Sequence  
Support  
<1>  
<2>  
<3>  
<4>  
<5>  
4
2
4
4
2
Hình 2.8: Dãy phổ biến 1-sequences  
Sequence  
Support  
<1 2>  
<1 3>  
<1 4>  
<1 5>  
<2 3>  
<2 4>  
<3 4>  
<3 5>  
<4 5>  
2
4
3
3
2
2
3
2
2
Hình 2.9: Dãy phổ biến 2-sequences  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 26 -  
Sequence  
Support  
<1 2 3>  
<1 2 4>  
<1 3 4>  
<1 3 5>  
<2 3 4>  
2
2
3
2
2
Hình 2.10: Dãy phổ biến 3-sequences  
Sequence  
<1 2 3 4>  
Support  
2
Hình 2.11: Dãy phổ biến 4-sequences  
Sequence  
Support  
<1 2 3 4>  
<1 3 5>  
<4 5>  
2
2
2
Hình 2.12: Dãy phổ biến 5-sequences  
Hàm tìm dãy con (Subsequence Function): Các dãy ng viên Ck được lưu trữ  
bng cây hash-tree, nút ca hash-tree hoc là cha danh sách các dãy (nút lá) hoc  
cha mt bảng băm (nút trung gian). Trong nút trung gian, mỗi bucket ca bảng băm  
trti mt nút khác. Gc ca hash-tree được định nghĩa có độ sâu là 1. Mt nút trung  
gian tại độ sâu d trtới các nút có độ sâu d + 1. Các dãy được lưu trữ ti các lá. Khi ta  
thêm mt dãy c, ta sbắt đầu tgc và duyt xung cho tới khi đến lá cây. Ti mt  
cây trung gian có độ sâu d, ta quyết định chọn nhánh nào để đi tiếp bng cách áp dng  
một hàm băm cho litemset thứ d ca dãy. Tt cả các nút được tạo ban đầu là nhng nút  
lá. Khi số lượng dãy trong một nút lá vượt quá ngưỡng thì nút lá được chuyn thành  
nút trung gian.  
Bắt đầu tnút gc, hàm tìm dãy con (subsequence function) tìm tt ccác ng  
viên được cha trong dãy khách hàng c. Nếu ta đang ở nút lá, ta tìm các dãy trong nút  
lá đưc cha trong dãy c và bsung tham chiếu ti chúng vào tp kết qu. Nếu ta đang  
tại nút trung gian và đã đạt được bằng cách băm litemset i, ta thc hiện băm trên mi  
litemset trong c mà xut hin trong mt giao dch sau khi giao dch cha i và áp dng  
đệ quy thtục này cho các nút trong bucket tương ứng. Đối vi nút gc, ta thc hin  
băm trên mọi litemset trong c.  
Để thy ti sao hàm tìm dãy con trvtp các tham chiếu mong mun, xem xét  
nhng gì xy ra ti nút gốc. Đối vi bt kdãy s nào đưc cha trong dãy khách hàng  
c, litemset đầu tiên ca s phi trong c. Ti nút gc, bng cách băm trên mỗi litemset  
trong c, ta đảm bo rng chbqua các dãy mà bắt đầu bng mt litemset không nm  
trong c. Lp luận tương tự áp dng ở độ sâu hơn. Chbsung nhân tố đó khi các  
litemsets trong bt kdãy ng viên hoc dãy phbiến thhin cho mt tp các phn  
tử được mua trong các giao dch khác nhau, nếu chúng ta đạt đến nút hin hành bng  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 27 -  
cách băm litemset i, ta chcn xem xét các litemsets trong c xy ra trong các giao dch  
sau khi các giao dch có cha i.  
2.2.2 Thuật toán AprioriSome  
Thut toán AprioriSome được trình bày như sau:  
// Forward Phase  
L1 = {large 1-sequences}; // Result of the litemset phase  
C1 = L1; // so that we have a nice loop condition  
last = 1; // we last counted Clast  
for ( k = 2; Ck-1 Ø and Llast Ø; k++ ) do  
begin  
if (Lk-1 known) then  
Ck = New candidates generated from Lk-1;  
else  
Ck = New candidates generated from Ck-1;  
if ( k = = next(last) ) then begin  
foreach customer-sequence c in the database do  
Increment the count of all candidates in Ck that are contained in c.  
Lk = Candidates in Ck with minimum support.  
last = k;  
end  
end  
// Backward Phase  
for ( k – – ; k >= 1; k – – ) do  
if ( Lk was not determined in the forward phase ) then begin  
Delete all sequences in Ck contained in some Li, i > k;  
foreach customer-sequence c in DT do  
Increment the count of all candidates in Ck that are contained in c.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 28 -  
Lk = Candidates in Ck with minimum support.  
end  
else begin // Lk already known  
Delete all sequences in Lk contained in some Li, i > k.  
end  
Answer = k Lk;  
Hình 2.13: Thut toán AprioriSome  
Trong giai đoạn duyt xuôi (forward pass), chúng ta chtính các dãy có độ dài  
nhất định. Ví d, chúng ta có thtính các dãy độ dài 1, 2, 4 và 6 trong các ln duyt  
xuôi và tính các dãy độ dài 3 và 5 trong các ln duyệt ngược. Hàm next có tham slà  
độ dài ca dãy được tính trong ln duyt trước và trvề độ dài ca dãy trong ln duyt  
tiếp theo. Vì vy, hàm này xác đnh chính xác các dãy được tính, và cân bng mt cách  
tt nht gia chi phí thi gian trong vic tính các dãy không tối đa và vic tính phn  
mrng ca các dãy ng viên không phbiến. Mt hn chế next(k) = k +1 (k là  
chiu dài mà ứng viên đã được tính trước đó), khi tt ccác dãy không tối đa được  
tính, nhưng không tính cho mrng ca các dãy ng viên không phbiến. Trong  
trường hp này, thut toán AprioriSome suy biến thành AprioriAll. Mt hn chế khác,  
hàm next(k) = 100 * k, trong khi hầu như không tính các dãy phbiến không tối đa,  
nhưng rất nhiu mrng ca các ng viên không phbiến được tính.  
function next(k: integer)  
begin  
if  
(hitk < 0.666)  
return k + 1;  
return k + 2;  
return k + 3;  
return k + 4;  
return k + 5;  
elsif (hitk < 0.75)  
elsif (hitk < 0.80)  
elsif (hitk < 0.85)  
else  
end  
Ly hitk biu thtlgia số lượng các dãy phbiến k-sequences vi số lượng  
các dãy ng viên k-sequences (tc là |Lk| / |Ck|). Chúng ta sdng hàm next trong các  
thnghim dưới đây. Bng trc quan và kinh nghim cho thy rng, tlvsố lượng  
các ng viên trong ln duyt hin ti có độ htrti thiu tăng lên, chi phí thi gian  
tính cho phn mrng ca các dãy ng viên không phbiến gim xung khi chúng ta  
bqua độ dài.  
Ta sdng hàm apriori-generate đã nêu trong phn 2.2.1 để to ra các dãy ng  
viên mi. Tuy nhiên, ti ln duyt thk, ta không có được tp dãy phbiến Lk-1 sn có  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 29 -  
vì ta đã không tính các dãy ng viên (k – 1)-candidate. Trong trường hp này, ta sử  
dng tp Ck-1 các ứng viên để to ra Ck , điều đó hoàn toàn đúng vì Ck-1 Lk-1  
Trong giai đoạn duyệt ngược (backward phase), chúng ta tính các dãy có độ dài  
mà ta đã bqua trong sut giai đoạn duyt xuôi, sau ln loi bỏ đầu tiên tt ccác dãy  
được cha trong mt sdãy phbiến. Các dãy không phbiến không thể được la  
chn vì ta chỉ quan tâm đến các dãy tối đa. Ta cũng loi bcác dãy phbiến không  
phi dãy tối đa được tìm thấy trong giai đoạn xuôi.  
Khi thực thi, các giai đoạn duyt xuôi và duyệt ngược được xen kẽ để gim bộ  
nhsdng cho việc lưu trữ các ng viên. Tuy nhiên, chúng ta đã bqua chi tiết này  
trong hình 2.13 để đơn giản hóa vic trình bày.  
<1 2 3>  
<1 2 4>  
<1 3 4>  
<1 3 5>  
<2 3 4>  
<3 4 5>  
Hình 2.14: (C3)  
<1 3 5>  
<3 4 5>  
Hình 2.15: C3 sau khi loại bỏ các dãy con của L4  
dụ  
Sdng li CSDL trong ví dụ ở thut toán AprioriAll, ta tìm được dãy phbiến  
1-sequences, trong giai đoạn litemset, thhin trong hình 2.8 (ln duyệt đầu tiên trên  
CSDL). Để minh homột cách đơn giản, f(k) = 2k. Trong ln duyt thhai, ta tính C2  
để được L2 (hình 2.9). Sau ln duyt thba, gi hàm apriori-generate vi L2 làm  
tham số để có được C3. Các ng viên trong C3 được thhin trong  
hình 2.14. Ta không tính C3, và do đó không sinh ra L3. Tiếp theo, gi hàm apriori-  
generate vi C3 làm tham số để có được C4, mà khi lược bt, được kết quC4 như  
hình 2.6. Sau khi tính C4 để có được L4 (hình 2.11), ta tiếp tc to ra C5 và cho kết quả  
C5 là rng.  
Sau đó chúng ta bắt đầu vi giai đoạn duyt ngưc (backward phase). Không có  
gì bloi btL4 vì không có dãy ln hơn. Ta đã bqua vic tính mc htrcho các  
dãy trong C3 ở giai đoạn xuôi (forward phase). Sau khi loi btrong C3 nhng dãy là  
dãy con ca các dãy trong L4, tc là các dãy con ca <1 2 3 4>, chúng ta thu được các  
dãy hình 2.12. Chúng sẽ được tính để nhn <1 3 5> như là dãy phbiến tối đa 3-  
sequences. Tiếp theo, tt ccác dãy trong L2 tr<4 5> được loi bchúng được  
cha trong mt sdãy dài hơn. Cũng vi lý do, tt ccác dãy trong L1 cũng được loi  
b.  
Khai phá luật dãy  
Nguyễn Đình Văn  
- 30 -  
Trong ví dnày, thut toán AprioriSome chtính hai dãy 3-sequences so vi sáu  
dãy 3-sequences được tính bi thut toán AprioriAll, và nó không tính bt kdãy nào  
không được tính bi AprioriAll . Tuy nhiên, nhìn chung, thut toán AprioriSome sẽ  
tính mt smrng ca các dãy ng viên không phbiến, mà không được tính bi  
AprioriAll. Điều đó sẽ xy ra trong ví dnày nếu C4 to ra tC3 lớn hơn C4 to ra từ  
L3.  
Nhn xét  
Ưu điểm chính ca thut toán AprioriSome so với AprioriAll là tránh được vic  
tính độ htrca nhiu dãy không phi là ln nht. Tuy nhiên, li thế này sbgim  
đi vì hai lý do. Thnht, trong thut toán AprioriAll sdng Lk-1 để sinh các dãy ng  
viên Ck, trong khi thut toán AprioriSome đôi lúc sử dng Ck-1 để sinh Ck. Vì Ck-1  
Lk-1, do đó số dãy ng viên Ck được sinh sdng thut toán AprioriSome có thln  
hơn. Thhai, mc dù AprioriSome bqua vic tính các ng viên mt số độ dài, tuy  
nhiên chúng đã được sinh ra và lưu trtrong bnh. Nếu bnhbị đầy, AprioriSome  
buc phi tính tp các ng viên cuối cùng được to ra. Điều này làm giảm độ chênh  
lch gia hai tp ng viên thc sự được tính, và khi đó AprioriSome sẽ tương tự như  
AprioriAll.  
So sánh hiu sut thc hin gia hai thut toán AprioriSome và AprioriAll cho  
thy AprioriSome hin tốt hơn khi độ htrợ ở các mc thấp hơn, vì có nhiu dãy phổ  
biến hơn, và do đó có nhiu dãy không tối đa hơn.  
2.2.3 Thuật toán GSP (Generalized Sequential Patterns)  
Thut toán GSP khai phá mu dãy tng quát. Theo đánh giá da trên thc  
nghim sdng dliu mô phng và dliu thc tế cho thy GSP là nhanh hơn nhiều  
ln so vi thut toán AprioriAll đã được gii thiu trên. Có hai lý do chính [2]:  
-
-
Thut toán GSP tính số lưng ng viên ít hơn so vi AprioriAll  
Thut toán AprioriAll phi tìm kiếm lần đầu tp các phn tphbiến xut  
hin trong mi thành phn ca mt dãy trong thi gian chuyển đi dliu, và  
sau đó tìm trong dliu chuyển đổi các dãy ng viên tn ti trong đó. Điều  
này thường dẫn đến chậm hơn so với tìm kiếm trc tiếp các dãy ng viên.  
Cấu trúc cơ bản ca thut toán GSP tìm kiếm mu dãy là thut toán duyt dliu  
nhiu ln, ln duyt đầu tiên xác định độ htrca tng phn t, tc là số lượng dữ  
liu dãy có cha các phn t. Kết thúc ln duyt đầu tiên, thut toán đưa ra được các  
phn tử thường xuyên, nghĩa là tha mãn độ htrti thiu. Mi phn tử như vy tiết  
lmt dãy phbiến 1-element cha phn tử đó. Mi dãy con bắt đầu duyt vi tp  
khởi đầu là các dãy phbiến được tìm thy trong ln duyt trước đó. Tp khởi đầu  
được sdụng để sinh ra các dãy phbiến tiềm năng mới, gi là các dãy ng viên. Mi  
dãy ng viên có ít nht mt phn tthuc dãy khởi đầu, vì thế tt ccác dãy ng viên  
Khai phá luật dãy  
Nguyễn Đình Văn  

Tải về để xem bản đầy đủ

pdf 60 trang yennguyen 15/04/2025 90
Bạn đang xem 30 trang mẫu của tài liệu "Luận văn Một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfluan_van_mot_so_thuat_toan_khai_pha_luat_day_va_ung_dung_thu.pdf