Thuật toán xây dựng dàn tập phổ biến đóng (CHARM-L)

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 52 - 57)

Ý tƣởng cơ bản của CHARM-L là: Khi một tập đóng mới X đƣợc tìm thấy, chúng ta xác định ngay tập tất cả các tập đóng cha của nó S Y|YCXY. Các phần tử nhỏ nhất trong S đƣợc tạo th nh nhằm xác định các li n kết từ X đến các phần tử này.

2.3.2.1. Thuật toán CHARM-L

Đầu vào : CSDL D v ngƣỡng phổ biến minSupCount.

Kết quả : dàn FCI chứa tất cả các tập phổ biến đóng của D.

Hình 2.18 – Thuật toán sinh dàn tập phổ biến đóng CHARM-L

Hình 2.18 trình b y m giả của CHARM-L. Gọi L là dàn tập đóng với lr l nút gốc

của d n; ban đầu lr = {}. CHARM-L bắt đầu cùng cách với CHARM bằng việc

khởi tạo nút gốc chứa các 1-itemset phổ biến. Sau đó nó gọi thủ tục CHARM-L- EXTEND, qua nó lớp tƣơng đƣơng cha v nút gốc d n trở th nh nút (d n) hiện hành.

CHARM-L-EXTEND đƣa v o nút (d n) hiện h nh lc (ban đầu l nút gốc lr) v lớp

tƣơng đƣơng [P]. Mỗi khi CHARM-L sinh ra một tập đóng mới, nó ấn định một định danh itemset đóng duy nhất đƣợc gọi l cid (closed id). Trong CHARM-L mỗi phần tử lit(li) P kết hợp với nó một Cidset, kí hiệu C - tập tất cả các cid của các itemset đóng l tập cha của Pli. Cho trƣớc C(li) và C(lj), có thể thu đƣợc tập các itemset đóng chứa cả Pli và Plj bằng cách đơn giản lấy phần giao của hai Cidset, nghĩa l C(X) = C(li)  C(lj) đƣợc mô tả ở dòng 8. CHARM-L liệt k tất cả các tập đóng không đƣợc gộp (dòng 10). Hơn nữa, nó cũng sinh ra một nút d n mới ln cho

tập đóng mới v th m nó v o vị trí thích hợp tr n d n itemset đóng L. Nút d n mới

CHARM-L() 1. [] = {lit(li),:liI(li) minSupCount} 2. CHARM-L-EXTEND([],lr = {}) 3. return lr CHARM_L_EXTEND([P], lc) 4. for each lit(li),C(li)in [P] do 5. PiPli and [Pi] 6. UPDATE-C(li, [P])

7. for each ljt(lj),C(lj) in P with ji do

8. Xlilj, Yt(li)t(lj),C(X)C(li)C(lj)

9. CHARM-PROPERTYXY,li,lj,Pi,   Pi , P

10. ln = SUBSUMPTION-CHECK-L(lc, Pi, C(Pi)) 11. CHARM-L-EXTEND([Pi], ln)

n y trở th nh nút hiện h nh trong lần gọi đệ qui tiếp theo của thủ tục CHARM-L- EXTEND (dòng 11). Vì danh sách các tập đóng cha của li có thể thay đổi khi một tập đóng mới đƣợc th m v o d n, một sự kiểm tra đƣợc tạo ra tại dòng 6 để cập nhật C(li) cho một phần tử còn lại trong lớp.

Hình 2.19 – Kiểm tra gộp v cập nhật d n

Kiểm tra gộp và cập nhật dàn: Để kiểm tra một itemset mới Pi l đóng hay không (hình 2.18, dòng 10), áp dụng h m SUBSUMPTION-CHECK-L đƣợc trình b y trong hình 2.19. H m n y nhận đầu v o l nút d n hiện h nh, itemset mới X v tập Cidset C(X). Công việc đầu ti n l kiểm tra xem X có đƣợc gộp không? Để l m điều n y, xét tất cả các các tập đóng S l tập cha của X (dòng 1), nếu X có cùng độ phổ biến với bất kì tập cha ZS nào (dòng 2) thì X đƣợc gộp v dừng. Ngƣợc lại, một nút mới đƣợc khởi tạo l ln = X (dòng 4). Mỗi nút tr n d n giữ một danh sách các nút cha (tập con hiện h nh) v các nút con (tập cha hiện h nh). Ta th m nút ln là

nút con của nút hiện h nh lclc l nút cha của ln.

Ngo i tất cả các tập đóng cha của ln (chẳng hạn X), các tập cha tối tiểu Smin của X

đƣợc lọc ra từ S (dòng 6). Mỗi tập cha tối tiểu ZSmin trở th nh nút con của ln (ln

SUBSUMPTION-CHECK-L(lc, Pi,C(X)) 1. S = {ZC | Z.cid C(X)} 2. for each ZS do 3. if (Z) = (X) then return lc 4. ln = X 5. lc.AddChildren(ln); ln.AddParents(lc)

6. Smin = { ZS | Z is Minimal} // Lọc các tập cha tối tiểu của X

7. for each ZSmin do

8. ln. AddChildren(Z); Z.AddParents(ln) 9. for each ZpZ.Parents do

10. if Zpln then

11. Zp.RemoveChildren(Z); Z.RemoveParents (Zp) 12. return ln

l cha của Z) (dòng 8). Cuối cùng, với mỗi nút cha ZP của Z, nếu ZP  ln thì các con

trỏ con của nó phải đƣợc điều chỉnh, chúng ta loại bỏ Z từ các con của ZP và ZP từ cha của Z.

Việc kiểm tra gộp trong CHARM-L khác với CHARM. Thuật toán CHARM kiểm tra gộp nhanh dựa v o bảng băm, còn thuật toán CHARM-L kiểm tra gộp bằng cách dựa v o sự giao nhau của các Cidset. (adsbygoogle = window.adsbygoogle || []).push({});

Cập nhật C: Xét thủ tục UPDATE-C trong CHARM-L (hình 2.18, dòng 6). Sau

khi gọi đệ qui thủ tục CHARM-L-EXTEND (hình 2.18, dòng 11), các tập đóng

mới có thể đƣợc tạo ra n n chúng ta cần cập nhật các Cidset cho tất cả các IT-pair còn lại trong lớp [P]: Với tất cả các IT-pair ljt(lj) P với ljf li, UPDATE-C th m các cid của tất cả các tập đóng mới sinh ra v o C(lj).

2.3.2.2 Minh họa CHARM-L

Hình 2.20 minh họa quá trình thực hiện của CHARM-L. Do các thủ tục khác ho n to n tƣơng tự nhƣ CHARM n n chỉ cần xét thủ tục SUBSUMPTION-CHECK-L.

Khi mỗi tập đóng đƣợc tìm thấy, nó đƣợc ấn định một cid mới v chèn v o bảng tra nhƣ đƣợc biểu diễn b n trái hình. Ban đầu, d n chỉ có nút gốc lr=  v tập Cidset của tất cả các item l rỗng. Tập đóng đầu ti n đƣợc th m v o l DC (hay CD), với nút hiện h nh l lc = lr nên ta thêm ln = CD l một nút con mới v cập nhật các

Cidset của C v D (với C(C) = {c1}và C(D) = {c1}) (đƣợc trình b y b n phải mỗi hình con). Kế tiếp, chúng ta th m Pi = CDW với lc = CD. CD đƣợc th m v o l một

nút mới ln v trở th nh một nút con của CD; bảng Cidset cũng đƣợc cập nhật. Tiến

trình đƣợc tiếp tục v mỗi nút mới trở th nh nút con của nút hiện h nh.

Một trƣờng hợp thú vị là khi thêm Pi = WC (hay CW), đòi hỏi phải điều chỉnh các li n kết cha của các nút đang tồn tại tr n d n. Ta có:

} , , { } , , { } , , , , { ) ( ) ( ) (CW C C C W c1 c2 c3 c4 c5 c2 c4 c5 c2 c4 c5 C     

Hình 2.20 biểu diễn quá trình cập nhật dàn tập phổ biến mỗi khi có một tập đóng mới th m v o (thứ tự của các tập phổ biến đóng đƣợc xét theo bảng 2.5). Các Cidset ở tr n đƣợc minh họa dƣới dạng cho từng item đơn nhƣng thực tế thì CHARM-L thực sự tính tập Cidset của to n bộ các itemset thông qua lấy phần giao (hình 2.19, dòng 8). Vì vậy, S = {CDW, ACTW, ACW}. Ta thấy CW không đƣợc gộp vì (CW) = 5 không trùng với độ phổ biến của bất kì tập đóng cha n o. Sau đó thêm ln = CW v o th nh một nút con của nút gốc lc = lr v tính tập cha tối tiểu Smin

= {CDW, ACW}, mỗi phần tử n y trở th nh nút con của CW. Kế tiếp, chúng ta kiểm tra xem có bất cứ tập cha n o của các phần tử trong Smin l con của CW hay không? Nếu có ta cần điều chỉnh d n. Trong trƣờng hợp n y không có nút con n o của CDW thỏa bởi vì nó chỉ có một con l CD (trƣớc khi th m CW) và CD không phải l tập con của CW. Vì vậy, lr = , cha của ACW (trƣớc khi th m CW) l một

tập con của CW n n chúng ta bỏ quan hệ cha con giữa lr và ACW. Cuối cùng, tập

đóng C đƣợc th m v o v ta có đƣợc to n bộ dàn tập phổ biến đóng.

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 52 - 57)