Hình 2.26 trình b y tổng quan về các đóng góp của luận án li n quan đến b i toán khai thác luật kết hợp. Đối với khai thác luật kết hợp truyền thống, nhƣ đ đƣợc trình b y trong chƣơng 2, hiện nay có hai cách tiếp cận chính l phƣơng pháp vét cạn (dựa v o quan hệ cha – con) v dựa v o bảng băm. Khi số lƣợng tập phổ biến
Sinh luật Thú vị Thiết yếu nhất Không dƣ thừa Truyền thống FI + Vét cạn FI + bảng băm FI + Vét cạn Dựa v o FI/MFI NAR (dựa vào FCI) MNAR (dựa v o FCI)
lớn, cả hai đều tốn nhiều chi phí cho việc duyệt qua các tập con để tính xác định độ phổ biến của chúng. Vì vậy, luận án đề nghị một cách tiếp cận mới bằng cách sử dụng dàn tập phổ biến để khai thác luật nhằm khắc phục nhƣợc điểm duyệt của hai cách tiếp cận tr n [A2]. Đối với luật thiết yếu nhất, v o năm 2004, Xia v các đồng sự [B93] đề nghị thuật toán khai thác luật dựa tr n tập phổ biến tối đại. Luận án đề nghị sử dụng tập phổ biến đóng v dàn tập phổ biến đóng để khai thác chúng [A1, A10]. Đối với luật không dƣ thừa tối tiểu, Bastide v các đồng sự [B13] sử dụng tập phổ biến đóng. Luận án sử dụng d n phổ biến (sửa đổi) để khai thác loại luật n y [A3]. Sau đó, luận án cũng thử nghiệm sử dụng dàn tập phổ biến đóng để khai thác luật không dƣ thừa tối tiểu [A23].
Ngo i ra, để khai thác nhanh tập phổ biến, tập phổ biến đóng v tập sinh tối tiểu (phục vụ cho khai thác luật từ tập đóng v dàn tập đóng), luận án cũng đ đề nghị một số cải tiến cho giai đoạn n y bao gồm: Đối với tập sinh tối tiểu, đề xuất cách thức tìm chúng ngay khi khai thác tập đóng bằng cách mở rộng thuật toán CHARM [A13]. B n cạnh đó, muốn khai thác luật từ d n, chúng ta cần phải xây dựng d n. Luận án cũng đóng góp v o giai đoạn n y bằng cách đề nghị thuật toán xây dựng dàn tập phổ biến [A2, A4, A5], d n phổ biến sửa đổi (MFIL – Modification of Frequent Itemsets Lattice) [A3] và dàn tập đóng (FCIL - Frequent Closed Itemsets Lattice) [A1, A6].
Các đóng góp của luận án trong giai đoạn khai thác luật đƣợc trình bày trong hình 2.26.
Hình 2.26 – Một số đóng góp của luận án trong khai thác luật kết hợp Sinh luật
Thú vị Thiết
yếu nhất
Không dƣ thừa tối tiểu Truyền thống Dựa vào MFIL Dựa vào FIL Dựa v o bảng băm v FIL Dựa vào FCIL
Chƣơng 3. KHAI THÁC LUẬT KẾT HỢP DỰA TRÊN DÀN TẬP PHỔ BIẾN
3.1. Khai thác luật kết hợp truyền thống dựa trên dàn tập phổ biến
3.1.1. Xây dựng dàn tập phổ biến [A2, A4, A5]
Xây dựng d n l xây dựng mối quan hệ cha – con (trực tiếp) giữa các nút tr n d n. Nhƣ đƣợc trình b y trong chƣơng một, có hai loại d n đƣợc quan tâm cho quá trình khai thác luật: Dàn tập phổ biến và dàn tập phổ biến đóng. Phần này trình bày các đóng góp của luận án trong việc đề xuất các thuật toán xây dựng dàn tập phổ biến phục vụ cho quá trình sinh luật kết hợp.
Dựa v o phƣơng pháp khai thác tập phổ biến tr n IT-tree [B96, B103], luận án mở rộng thuật toán bằng cách li n kết các itemset có quan hệ cha – con trực tiếp với nhau thành dàn tập phổ biến. Ý tƣởng chính nhƣ sau: Khi kết hợp hai IT-pair
) (X t X và Yt(Y) thành (XY)(t(X)t(Y)) thì rõ ràng X Y X và Y Y
X n n nút d n chứa X Y sẽ l nút d n con của nút d n chứa X và nút d n chứa Y. Nhƣ vậy, trong quá trình khai thác tập phổ biến dựa tr n IT-tree, ta có thể nối các nút chứa các itemset phổ biến với nhau để tạo th nh d n phổ biến. Tuy nhi n, do thuật toán sinh tập phổ biến trên IT-tree dựa tr n phƣơng pháp duyệt theo chiều sâu n n khi phát sinh một nút d n mới chứa k-itemset, có thể tồn tại các nút dàn (k+1)-itemset l nút con của nó – một điều thú vị l các nút con của nút hiện hành L nếu có phải l nút “cháu” của nút cha L. Vì vậy, thuật toán không cần xét tất cả nút d n (k+1)-itemset.
3.1.1.1. Thuật toán
Kết quả: d n FI chứa tất cả các tập phổ biến của D.
Phương pháp thực hiện:
Hình 3.1 – Thuật toán xây dựng d n phổ biến của CSDL D
Hình 3.1 trình b y m giả của thuật toán. Thuật toán bắt đầu bằng việc khởi tạo lớp tƣơng đƣơng [] chứa tất cả các 1-itemset phổ biến của CSDL D v nút gốc d n
lr= có các nút con l các tập 1-itemset phổ biến. Sau đó nó gọi thủ tục ENUMERATE_LATTICE([P]), thủ tục n y duyệt tr n IT-tree bằng cách kết hợp
2 tập phổ biến của lớp tƣơng đƣơng [P] th nh tập phổ biến mới v tạo ra một nút
LATTICE_FI() 1. lr = 2. [] = {lit(li)|liI (li)minSupCount} 3. for all li [] do 4. lr.AddChildren ({li}) 5. ENUMERATE_LATTICE([]) 6. return lr ENUMERATE_LATTICE([P]) 7. for all {li} [P] do 8. [Pi] =
9. for all {lj} [P], with j > i do 10. X = lilj 11. Y = t(li) t(lj) 12. if |Y| minSupCount then 13. [Pi] = [Pi] {XY} 14. UPDATE_LATTICE({li}, {X}) 15. {li}.AddChildren({X}) 16. {lj}.AddChildren({X}) 17. ENUMERATE_LATTICE([Pi]) UPDATE_LATTICE({li}, {X})
18.for all {lc} {li}.Children do 19. for all {lcc} {lc}.Children do 20. if Xlcc then
dàn {X} (nếu X phổ biến). Do {X} là con trực tiếp của li và lj n n thuật toán sẽ th m nút mới {X} v o tập các nút con của li và lj. Một điều đặc biệt l các nút con còn lại của {X} nếu có phải l nút con của nút con li, vì vậy thủ tục UPDATE_LATTICE chỉ xét {X} với các nút lcc l nút con của nút con li, nếu lcc X thì {X} là nút dàn cha của {lcc}. Cuối cùng, thuật toán trả về nút gốc của d n lr.
3.1.1.2. Minh họa thuật toán
Hình 3.2 – D n kết quả theo thuật toán LATTICE_FI của CSDL D với minSupCount= 3
Hình 3.2 minh họa quá trình xây dựng dàn tập phổ biến từ CSDL của bảng 1.1 với minSupCount = 3. Đầu ti n, nút gốc d n lr chứa các nút có 1-itemset phổ biến. Giả
sử hiện h nh đ có các nút d n {{D}, {T}, {DW}, {DC}, {TA}, {TW}, {TC}, {DWC}, {TAW}, {TAC}, {TWC}, {TAWC}} (đƣợc bao bởi đa giác đứt nét). Xét quá trình xây dựng nút d n {AW}: Do li = {A}, lj = {W}, thuật toán chỉ xét các nút
{}
Dx2456 Tx1356 Ax1345 Wx12345 Cx123456
DWx245 DCx2456 TAx135 TWx135 TCx1356 AWx1345 ACx1345 WCx12345
DWCx245 TAWx135 TACx135 TWCx135 AWCx1345
TAWCx135
con của {TA} (Vì {A} hiện tại chỉ có một nút con l {TA}, {TA} hiện có 2 nút con là {TAW} và {TAC}):
i) Xét {TAW}: Bởi vì AW TAW, {TAW} là nút con của {AW}. ii)Xét {TAC}: Bởi vì AW TAC, {TAC} không l nút con của {AW}.
Các đƣờng đứt nét từ nút A và nút TA trình b y các cách li n kết đến các nút con của {AW}. Các li n kết đậm trình b y quá trình sinh nút {AW} v li n kết nút {AW} với các nút con của nó. Các nút d n đƣợc bao trong đa giác đứt nét biểu diễn các nút d n đ đƣợc xây dựng trƣớc khi tạo ra nút {AW}.
3.1.1.3. Nhận xét
Thuật toán xây dựng dàn tập phổ biến ở tr n tuy có chậm hơn so với chỉ khai thác tập phổ biến do phải tốn chi phí cập nhật các li n kết tr n d n. B n cạnh đó, khối lƣợng bộ nhớ để lƣu trữ d n cũng sẽ lớn hơn so với chỉ lƣu trữ danh sách các tập phổ biến. Tuy nhi n, sử dụng d n để khai thác luật sẽ rất hiệu quả bởi vì khi muốn tìm các tập cha của một tập, chúng ta chỉ cần duyệt các nút con của nó tr n d n.
3.1.2. Sinh luật kết hợp truyền thống từ dàn [A2]
Nhƣ đ đƣợc trình b y trong phần 2.4.1, luật kết hợp đƣợc sinh từ tập phổ biến X
sang tập phổ biến Y với X Y. Thuật toán trong hình 2.21 phải xét mỗi tập phổ biến fi với tất cả các tập phổ biến fj đứng trƣớc nó. Vì vậy, độ phức tạp sẽ l O(n2) với n
l số lƣợng tập phổ biến. Ngo i ra, muốn sinh luật từ fj sang fi, nó phải kiểm tra xem fj có l tập con của fi hay không? Công việc n y cũng chiếm một thời gian đáng kể trong quá trình sinh luật kết hợp. Hạn chế của thuật toán trong hình 2.22 là tốn thời gian để sinh các tập con, không gian để lƣu trữ tập các tập con v truy cập bảng băm để xác định độ phổ biến của các tập phổ biến.
Phần n y trình b y quá trình sinh luật từ dàn tập phổ biến, nó khắc phục các nhƣợc điểm của 2 thuật toán kể tr n trong quá trình sinh luật kết hợp truyền thống. Nhƣ đ biết, d n thể hiện mối quan hệ cha – con trực tiếp giữa các tập phổ biến với nhau.
Vì vậy, duyệt d n để sinh luật có độ phức tạp nhỏ hơn so với độ phức tạp của hai thuật toán kể tr n.
Định lý 3.1.1. Gọi l1, l2 và l3 l 3 nút tr n d n. Nếu l1 l nút cha của l2 và l2 là nút cha của l3 và sup . sup . 1 2 l l < minConf thì sup . sup . 1 3 l l < minConf.
Chứng minh: Do l1 l nút cha của l2 và l2 l nút cha của l3, nên l1.itemset
l2.itemset l3.itemset dẫn đến l1.sup l2.sup l3.sup. Vì vậy,
sup . sup . 1 2 l l ≥ sup . sup . 1 3 l l . Do sup . sup . 1 2 l l < minConf nên sup . sup . 1 3 l l < minConf.
Dựa v o định lý 3.1.1, luận án phát triển thuật toán sinh luật kết hợp từ d n với ý tƣởng nhƣ sau: Xét mỗi nút {X} tr n d n với các nút {Y} l con của {X}, nếu luật sinh ra từ X sang Y không thỏa minConf, thì tất cả các luật đƣợc sinh ra từ {X} sang các nút con của {Y} cũng sẽ không thỏa minConf v vì vậy, chúng ta không cần xét các luật n y. Chẳng hạn: Xét nút d n {C} của hình 3.2 với minConf = 80%, do luật sinh ra giữa {C} v {AC} có độ tin cậy l 4/6 < 80% n n tất cả các luật sinh ra giữa {C} với các nút con {AC} đều không thỏa minConf. Vì vậy, chúng ta không cần xét {A} với các nút con của {AC} là {TAC}, {AWC} và {TAWC}.
3.1.2.1. Thuật toán
Thuật toán sinh luật từ dàn tập phổ biến đƣợc trình b y trong hình 3.3. Đầu ti n, thuật toán duyệt qua tất cả các nút con Lc của nút gốc Lr v gọi thủ tục
EXTEND_AR_LATTICE(Lc) (dòng 2 và 3). Thủ tục n y sẽ duyệt qua tất cả các nút của d n Lr (gọi đệ qui để duyệt v đánh dấu các nút đ duyệt bằng cách gán giá trị của thuộc tính isTraverse bằng True), dòng 5 – 9. Xét thủ tục
ENUMERATE_AR(Lc): Thủ tục n y sử dụng một h ng đợi (dòng 10) để duyệt các nút con của Lc. Với mỗi nút con Ls, thuật toán sẽ tính độ tin cậy của luật có thể đƣợc sinh ra từ Lc sang Ls, nếu độ tin cậy thỏa ngƣỡng độ tin cậy tối thiểu thì đƣa
Ls v o h ng đợi (dòng 12 - 14). Sau khi đƣa các nút con của Lc v o h ng đợi, thủ tục n y sẽ lấy từng nút trong h ng đợi ra để xử lý (dòng 16) v đƣa các nút con của các nút n y v o h ng đợi (với điều kiện độ tin cậy thỏa ngƣỡng tối thiểu v chƣa đƣợc đánh dấu, dòng 22). Việc áp dụng định lý 3.1.1 đƣợc thể hiện ở các dòng 12 – 14 và 19 – 22.
Đầu vào: Dàn (L, ) với nút gốc l Lr và minConf
Kết quả: Danh sách các luật kết hợp thỏa minConf Phương pháp thực hiện:
Hình 3.3 – Khai thác luật truyền thống từ dàn tập phổ biến
AR_LATTICE()
1. AR =
2. for each Lc Lr.Children do
3. EXTEND_AR_LATTICE(Lc)
4. return AR
EXTEND_AR_LATTICE(Lc)
5. if Lc.isTraverse = False then
6. ENUMERATE_AR(Lc)
7. Lc.isTraverse = True
8. for each Ls Lc.Children do
9. EXTEND_AR_LATTICE( Ls )
EXTEND_AR_LATTICE(Lc)
10.Queue =
11.for all Ls Lc.Children do
12. if (Ls)/ (Lc) minConf then // Do định lý 3.1.1
13. Add Ls to Queue 14. Mark Ls
15.while Queue do
16. L = Get an element from Queue
17. conf = (L)/ (Lc)
18. AR = AR { LcLc \ L ((Lc), conf)} 19. for all Ls L.Children do
20. if Ls is not marked and (Ls)/ (Lc) minConf then 21. Add Ls to Queue
3.1.2.2. Minh họa thuật toán
Xét dàn các tập phổ biến trong hình 3.2 với minConf = 80%, ta có quá trình sinh luật truyền thống nhƣ trong bảng 3.1.
Bảng 3.1. Kết quả sinh luật từ d n trên hình 3.2 với minConf = 80%
Itemset Queue Luật vớiconf minConf
D 4 CD D4 ,4/4 C
DW 3 CDW DW3 ,3/3 C
CDW 3 CD 4
T 4 CT T 4,4/4 C
AT 3 ATW, ACT, ACTW AT 3 ,3/3 W
,AT 3,3/3 C
, AT3 ,3/3 CW
ATW 3 ACTW ATW3 ,3/3 C
ACTW 3
ACT 3 ACTW ACT3 ,3/3 W
CTW 3 ACTW CTW3 ,3/3 A
TW 3 ATW, CTW, ACTW TW3 ,3/3 A
,TW3 ,3/3 C
,TW3 ,3/3 AC
CT 4
A 4 AW, AC, ATW, ACW W A 4,4/4 ,A 4,4/4 C , A4 ,4/4 CW AW 4 ACW AW 4,4/4 C ACW 4 AC 4 ACW AC4 ,4/4 W W 5 AW, CW, ACW W4 ,4/5 A ,W5 ,5/5 C ,W 4,4/5 AC CW 5 ACW CW 4,4/5 A C 6 CW C 5,5/6 W
Xét quá trình sinh luật kết hợp truyền thống với minConf = 80% từ nút {W}, ta có: - Đầu ti n, Queue =
- Các nút con của nút {W} l {AW, DW, TW, CW} nhƣng do chỉ có các luật sinh từ W đến AW v CW thỏa ngƣỡng n n th m AW và CW vào Queue Queue = {AW, CW}.
- Do Queue nên
conf = (AW)/(W) = 4/5, th m luật W A vào AR AR = {W 4,4/5 A}
Th m tất cả các nút con của AW (chỉ có ACW thỏa minConf) v o Queue
Queue = {CW, ACW}. - Kế tiếp, do Queue nên
L = CW (Queue = {ACW}).
conf = (CW)/(W) = 1, th m luật W C vào AR AR = {W 4,4/5 A
,W 5,1 C}. - Kế tiếp, do Queue nên
L = ACW (Queue = ).
conf = (ACW)/(W) = 4/5, th m luật W AC vào AR AR = {W 4,4/5 A
,W 5,1 C
,W 4,4/5 AC}. - Kế tiếp, do Queue = n n dừng.
3.1.2.3. Độ phức tạp thuật toán
Mệnh đề 3.1.1 (Độ phức tạp thuật toán). Thuật toán sinh luật truyền thống từ dàn tập phổ biến có độ phức tạp l O(nk) với n l số tập phổ biến v k là trung bình cộng các tập cha của các tập phổ biến tr n d n.
Chứng minh: Trong trƣờng hợp xấu nhất, với mỗi nút tr n d n, thuật toán sẽ duyệt
qua tất cả các nút con của nó để sinh luật kết hợp. Nhƣ vậy, độ phức tạp cho quá trình duyệt các nút con của mỗi nút tr n d n l trung bình cộng của số lƣợng các nút con (hay số tập cha của các tập phổ biến). B n cạnh đó, số nút tr n d n cần duyệt l
n. Vì vậy, ta có độ phức tạp l O(nk).
Trong thực tế, độ phức tạp của thuật toán có thể nhỏ hơn do áp dụng định lý 3.1.1, nghĩa l khi luật sinh ra giữa nút X với nút con Y không thỏa minConf thì chúng ta không cần xét X với tất cả các nút con của Y, dẫn đến không cần duyệt qua tất cả các nút cha của X.
3.1.4. Kết quả thực nghiệm
Luận án sử dụng tập cơ sở dữ liệu chuẩn đƣợc lấy từ [B44] với đặc điểm đƣợc mô tả trong bảng 3.2.
Bảng 3.2. Cơ sở dữ liệu chuẩn dùng để thử nghiệm Tên CSDL Số giao