Tổng quan về các đóng góp của luận án

Một phần của tài liệu NÂNG CAO HIỆU QUẢ CỦA CÁC THUẬT TOÁN KHAI THÁC LUẬT KẾT HỢP DỰA TRÊN DÀN (đầy đủ) (Trang 68 - 149)

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 XYXY Y

X  n n nút d n chứa XY 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 = lilj 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 (adsbygoogle = window.adsbygoogle || []).push({});

{}

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 XY. 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: (adsbygoogle = window.adsbygoogle || []).push({});

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 LsL.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 D4 ,4/4 C

DW 3 CDW DW3 ,3/3 C

CDW 3 CD 4

T 4 CT T 4,4/4 C (adsbygoogle = window.adsbygoogle || []).push({});

AT 3 ATW, ACT, ACTW AT 3 ,3/3 W

,AT 3,3/3 C

, AT3 ,3/3 CW

ATW 3 ACTW ATW3 ,3/3 C

ACTW 3

ACT 3 ACTW ACT3 ,3/3 W

CTW 3 ACTW CTW3 ,3/3 A

TW 3 ATW, CTW, ACTW TW3 ,3/3 A

,TW3 ,3/3 C

,TW3 ,3/3 AC

CT 4

A 4 AW, AC, ATW, ACW W A 4,4/4 ,A 4,4/4 C , A4 ,4/4 CW AW 4 ACW AW  4,4/4 C ACW 4 AC 4 ACW AC4 ,4/4 W W 5 AW, CW, ACW W4 ,4/5 A ,W5 ,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). (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu NÂNG CAO HIỆU QUẢ CỦA CÁC THUẬT TOÁN KHAI THÁC LUẬT KẾT HỢP DỰA TRÊN DÀN (đầy đủ) (Trang 68 - 149)