Thuật toỏn sinh cỏc luật kết hợp từ tập mục phổ biến

Một phần của tài liệu (LUẬN văn THẠC sĩ) khai phá dữ liệu sử dụng luật kết hợp (Trang 56 - 60)

2.8.10 .Giải thuật di truyền

3.2. Khai phỏ luật kết hợp đơn chiều, đơn mức, luật kết hợp Boolean

3.2.3. Thuật toỏn sinh cỏc luật kết hợp từ tập mục phổ biến

Sau khi tỡm đƣợc cỏc tập mục phổ biến từ cỏc tỏc vụ trong CSDL, từ đú cú thể sinh ra cỏc luật kết hợp mạnh (Luật kết hợp mạnh là luật thỏa món cả hai độ hỗ trợ cực tiểu và độ tin cậy cực tiểu). Áp dụng việc tớnh độ tin cậy của luật XY:

) ( supp / ) ( supp ) / ( ) (X Y PY X X Y X conf    

Trong đú : supp(XY) là độ hỗ trợ của XY )

(

suppX là độ hỗ trợ của X

Coi nhƣ tỷ số trờn là tỷ số giữa cỏc tỏc vụ chứa XY và số cỏc tỏc vụ chứa

X. Dựa trờn cỏc tập mục phổ biến L sinh ra cỏc luật nhƣ sau:

- Với mỗi tập mục phổ biến L, sinh ra tất cả cỏc tập con khụng rỗng của L

- Với mỗi tập con khụng rỗng của l ta cú luật a  (l-a) nếu:

) ( ) ( a SUPP l

SUPP minsup

Vỡ cỏc luật đƣợc sinh ra trờn tập mục phổ biến nờn độ hỗ trợ của nú đƣợc thỏa món (chớnh là supp(L)).

Xem CSDL trờn bảng 3.1 ở trờn, giả sử dữ liệu chứa tập phổ biến l = {11, 12, 15}. Những luật kết hợp nào là cú thể sinh ra từ l? Cỏc tập con khụng rỗng của l là:

{11, 12}, {11, 15}, {12, 15}, {11}, {12} và {15} Cỏc luật kết hợp cựng với độ tin cậy nhƣ sau: 11  12  15, với độ tin cậy conf = 2/4 = 50% (r1) 11  15  12, với độ tin cậy conf = 2/2 = 100% (r2) 12  15  11, với độ tin cậy conf = 2/2 = 100% (r3) 11  12  15, với độ tin cậy conf = 2/6 = 33% (r4) 12  11  15, với độ tin cậy conf = 2/7 = 29% (r5)

15  11  12, với độ tin cậy conf = 2/2 = 100% (r1)

Nếu ngƣỡng tin cậy cực tiểu minconf = 70% thỡ cú luật r2, r3 và r6 là cỏc luật kết hợp mạnh nhận đƣợc.

Phần tiếp theo sẽ trỡnh bày thuật toỏn tỡm cỏc luật kết hợp từ cỏc tập mục phổ biến đó cú:

Thuật toỏn đơn giản

Chỳng ta cải tiến thủ tục xử lý bằng cỏch sinh ra cỏc tập con của tập mục lớn theo kiểu đệ qui ƣu tiờn độ sõu. Vớ dụ với tập mục ABCD, đầu tiờn chỳng ta xột tập con ABC, sau đú đến AB, …

Tiếp đến, nếu tập con a của tập mục lớn khụng sinh ra đƣợc luật thỡ ta khụng

cần xột đến cỏc tập con của nú nữa. Chẳng hạn: nếu luật ABC  D khụng đủ độ tin

cậy thỡ khụng cần xột luật AB  CD.

Điều này cú thể chứng minh đơn giản nhƣ sau:

Nếu luật a  (l-a) khụng thỏa món độ tin cậy, tức là: conf(a  (l-a)) nhỏ hơn minconf, thế thỡ với bất kỳ tập con b nào của a ta cú:

Vỡ ba nờn supp(b)  supp(a), do vậy:   ( )) (b l b conf ss (()) b upp l upp ss (())  a upp l upp )) ( (a l a conf   < minconf

Tức là độ tin cậy của luật b  (l-b) cũng nhỏ hơn minconf. Ta mụ tả thuật

toỏn này nhƣ sau: Thuật toỏn 1:

(1)For all large itemsets lk, k2 do (2) Call genrules(lk,lk)

 Procedure genrules(lk: large k-itemsets, am: large m-itemsets) (1)A = { (m-1)-itemsets am1| am1am}; // lấy ra tập m-1 ứng cử (2)For all am1  A do again

(3)Conf = support(lk)/support(am1)

(4)If ( conf  minconf ) then (5) Begin

(6) Output the rule am1  (lk-am1)

(7) With confidence = conf and support = support(lk)

(8) If ( m-1 > 1 ) then

Call genrules(lk,am1); // để sinh ra cỏc luật với tập con của am1 là phần tiền đề.

(9)End

 Nếu một luật khụng xảy ra với tập cha thỡ cũng khụng xảy ra vơi tập con

của nú.

Thuật toỏn nhanh hơn

Qua đú ta thấy rằng: Nếu một luật khụng thỏa món với tập cha a thỡ cũng khụng thỏa món với tập con của nú. Vỡ vậy: nếu ABC=>D khụng đủ độ tin cậy thỡ luật AB=>CD cũng khụng đủ độ tin cậy. Điều đú cú thể ỏp dụng theo hƣớng ngƣợc lại nhƣ sau: nếu xảy ra luật với tập con thỡ cũng xảy ra luật với tập cha. Vớ dụ nếu luật AB=>CD cú đủ độ tin cậy thỡ luật ABC => D cũng đủ độ tin cậy.

Thuật toỏn 2:

For all large itemsets lk, k2 do begin

1

H = { Cỏc phần kết luận của cỏc luật nhận đƣợc từ lk với 1-mục ở kết luận

}; Call ap_genrules(lk ,H1) end Procedure ap_genrules(lk : large k-itemsets, Hm

IF ( k > m+1) then begin

1

m

H = apriori_gen(Hm);

For all hm1Hm1 do begin Conf = support(lk

)/support(lk

-hm1

); If ( conf  minconf) then

Output the rule (lk-hm1)hm1; // với độ tin cậy là conf và độ hỗ trợ là support(lk ); else delete hm1 from Hm1; end call ap_genrules(lk , Hm1 ); end

Thuật toỏn nhanh hơn này sử dụng thủ tục apriori_gen mụ tả ở phần thuật toỏn Apriori ở trờn. Xột xem tại sao thuật toỏn thứ 2 này lại nhanh hơn thuật toỏn đơn giản ở trờn.

Vớ dụ, ta xột tập mục ABCDE. Giả sử rằng ACDE => B và ABCE => D là cỏc luật cú 1-mục ở phần kết luận thỏa món độ hỗ trợ cực tiểu minconf.

Trong thuật toỏn đơn giản ở trờn, gọi đệ qui genrules(ABCDE, ACDE) sẽ kiểm tra cỏc luật với 2 mục ở phần kết luận là: ACD => BE, ADE => BD, CDE => BA và ACE =>BD.

Luật thứ nhất khụng xảy ra vỡ EBEABCDE khụng thỏa món độ tin

Chỉ cú luật với 2-mục ở phần kết luận nhận đƣợc là ACE => BD, ở đú B và D là cỏc kết luận của cỏc luật hợp lệ cú 1-mục ở phần kết luận. Thuật toỏn nhanh hơn này chỉ kiểm tra một luật này.

Một phần của tài liệu (LUẬN văn THẠC sĩ) khai phá dữ liệu sử dụng luật kết hợp (Trang 56 - 60)

Tải bản đầy đủ (PDF)

(107 trang)