Khai thỏc luật kết hợp

Một phần của tài liệu TÌM HIỂU MỘT SỐ LỚP TOÁN TỬ KÉO THEO VÀ ỨNG DỤNG MỘT VÀI BÀI TOÁN CỦA CƠ SỞ DỮ LIỆU MỜ (Trang 49)

a.Một vài khỏi niệm.

Giả sử L = {l1,l2…ln }, trong đú li (i=1..m) gọi là cỏc danh mục. Khi đú ta gọi L là tập cỏc danh mục.

Giao dịch và cơ sở dữ liệu giao dịch

T được gọi là một giao dịch nếu T là một tập cỏc danh mục con của tập L. (TL)

Tập D chứa cỏc giao dịch được gọi là cơ sở dữ liệu giao dịch hay đơn giản là tập cỏc giao dịch. Mỗi giao dịch được đỏnh dấu bởi một định danh và được gọi là định danh của giao dịch, ký hiệu là Tid. Bảng dưới đõy cho một vớ dụ đơn giản về cơ sở dữ liệu giao dịch (L=A,B,C,D,E)

Định danh giao dịch (TID) Tập mục (itemset) 1 A B D E 2 BC E 3 A B D E 4 A B C E 5 A B C D E 6 B C D Bảng 6

Giả sử X là một tập danh mục (XL). Nếu |X| = k thỡ ta gọi X là tập k- danh mục. Giao dịch T được gọi là chứa X nếu XT

Giỏ của một tập danh mục

Cho X là một tập danh mục, ta gọi giỏ của một tập danh mục X, ký hiệu là supp(X) là tỉ lệ giữa cỏc giao dịch chứa X trờn tổng số giao dịch cú trong tập giao dịch D.

Như vậy Supp(X) = (1)

Tập danh mục thƣờng xuyờn

Giả sử X là một tập dạnh mục (XL), X được gọi là một tập thường xuyờn xuất hiện (hay đơn giản gọi là tập thường xuyờn) nếu như supp(X) >minSupp, với minSupp là một hằng số cho trước nào đú

Như vậy nếu X là một tập thường xuyờn xuất hiện thỡ mọi tập con của X cũng là một tập thường xuyờn xuất hiện.

Tập tất cả cỏc tập thƣờng xuyờn

Tập F được định nghĩa bởi F = {X |X là tập con của L và là tập thường xuyờn xuất hiện} được gọi là tập tất cả cỏc tập thường xuyờn.

Định nghĩa luật kết hợp

Luật kết hợp là một biểu thức dạng X  Y (2)

Trong đú X, Y L và XY = 

X  Y thể hiện khi mà giao dịch T chứa X thỡ T cũng cú thể chứa Y

Giỏ của luật kết hợp

Giỏ của luật kết hợp X  Y là tỉ lệ cỏc giao dịch chứa X và Y trờn tổng số cỏc giao dịch trong D. Như vậy Supp(X  Y) = Supp(XY) (3)

Độ tin cậy của luật kết hợp

Độ tin cậy của luật kết hợp X  Y , ký hiệu là Conf(X  Y) là tỉ lệ giữa cỏc giao dịch chứa X và Y trờn cỏc giao dịch chứa X. Như vậy

Conf(X  Y) = Supp(XY)/Supp(X) (4)

Một luật được xem là tin cậy nếu độ tin cậy của nú lớn hơn hoặc bằng một ngưỡng minconf, với minconf là một hằng số cho trước nào đú

Hầu hết cỏc thuật toỏn khai phỏ luật kết hợp thƣờng chia thành hai pha

Pha 1: Tỡm tất cảc cỏc tập X (XL) sao cho giỏ của X lớn hơn một ngưỡng cho trước:

Supp(X)  minSup

Pha 2: Sử dụng tập thường xuyờn tỡm được ở pha 1 để tỡm ra cỏc luật kết hợp thoả món điều kiện cho trước.

Vớ dụ: Với cơ sở dữ liệu cho ở bảng 6 và minsupp = 50%, sẽ liệt kờ cỏc tập thường xuyờn như sau:

Cỏc tập thường xuyờn Độ hỗ trợ (%) (adsbygoogle = window.adsbygoogle || []).push({});

B 100% (6/6)

E, BE 83% (5/6)

A, C ,D, AB, AE, BC, BD, ABE 67% (4/6)

AD, CE, DE, ABD, ADE, BCE 50 %(3/6)

Trong bảng trờn với tập thường xuyờn là ABE cú độ hỗ trợ 67%, và độ tin cậy của luật tối thiểu là 70% thỡ cú thể sinh cỏc luật kết hợp sau:

Luật kết hợp Độ tin cậy  minconf

A BE (supp(ABE)/supp(A)=100%) Cú B AE (supp(ABE)/supp(B)=67%) Khụng E AB Cú AB E Cú AE B Cú BE A Cú b.Khụng gian tỡm kiếm

Với bài toỏn khai phỏ luật kết hợp nờu ở trờn, nếu dựng phương ỏn duyệt vột cạn tất cả cỏc tập con của L để tỡm ra những tập thường xuyờn cú giỏ lớn hơn hoặc bằng ngưỡng minSupp là khụng khả thi vỡ độ phức tạp là hàm mũ.

Bổ đề:

Cho L là tập danh mục, ta gọi khụng gian tỡm kiếm là tập hợp tất cả cỏc điểm trờn mặt phẳng được sắp thành từng hàng sao cho : mỗi điểm này ứng với một tập con của L và mỗi hàng ứng với tất cả cỏc tập con của L cú cựng số phần tử, hàng đầu tiờn ứng với cỏc tập cú một phần tử, hàng thứ hai ứng với cỏc tập cú hai phần tử…Với khụng gian tỡm kiếm như trờn tồn tại một đường biờn ứng với mỗi giỏ trị minSupp, nửa trờn chớnh là cỏc tập thường xuyờn, nửa dưới là cỏc tập khụng thường xuyờn (tức là ứng với mỗi một giỏ trị cụ thể của minSupp thỡ tập cỏc tập thường xuyờn là tập đúng). Tớnh chất đúng này chớnh là nguyờn lý chung để lược bỏ khụng gian tỡm kiếm cỏc tập thường xuyờn trong việc khai phỏ cỏc luật quan hệ. Một khi đường biờn đó được tỡm thấy thỡ khụng phải tỡm kiếm tiếp nữa.

Chứng minh:

Xột một ỏnh xạ từ cỏc phần tử của L lờn cỏc số tự nhiờn{1,2,…,|L|}. Khi đú ta cú phần tử li < lj nếu i <j. Với quan hệ thứ tự này thỡ mỗi tập con X của L, ký hiệu là X.itiemn là tập danh mục thứ n của X.

Tập Pn gồm cỏc phần tử mà mỗi phần tử gồm n-danh mục được sắp của tập danh mục X (n  |X|)được xỏc định bởi

100% 100% 80% 100% 67% 80% Bảng 8

Pn = (Z | Z= {X.itemm | 1  m  n}

Khi đú ta gọi Pn là phần đầu gồm n phần tử của X

Với mỗi tập con Pn của L, ta định nghĩa lớp E(Pn) như sau:

E(Pn) = {X | X là tập con của L, |X| = |Pn| +1 và Pn là phần đầu gồm n phần tử của X }

Cỏc lớp E(Pn) như thế tạo thành cỏc nỳt của một cõy. Mỗi nỳt tương ứng với cỏc điểm trờn cựng một hàng của khụng gian tỡm kiếm mà nhận Pn là phần đầu gồm n phần tử. Hai nỳt của cõy được nối với nhau bằng một cạnh nếu tất cả cỏc tập danh mục của lớp E(Pn) được hỡnh thành bằng phộp hợp hai tập danh mục của lớp cha E‟=E(Pn-1)

Như vậy nếu Z  E = E(Pn) thỡ tồn tại X và Y  E‟ = E(Pn-1) sao cho Z = X  Y. Do vậy Supp(Z) = Supp(X  Y)  min {Supp(X), Supp(Y)}

Từ đú ta suy ra nếu E‟ = E(Pn-1) mà khụng chứa ớt nhất hai tập thường xuyờn thỡ lớp E = E(Pn) cũng khụng chứa tập thường xuyờn nào. Khi ấy giữa hai lớp E‟ và E sẽ tồn tại đường biờn vỡ kể từ lớp E trở xuống trong khụng gian tỡm kiếm thỡ những tập đú khụng cũn là tập thường xuyờn. Như vậy trong quỏ trỡnh tỡm kiếm nếu thấy một lớp E‟ mà khụng cú ớt nhất hai tập danh mục thường xuyờn thỡ thuật toỏn dừng lại khụng cần tỡm kiếm nữa [5].

Xỏc định giỏ của một tập danh mục

Khi duyệt qua cõy cỏc tập danh mục ta cần xỏc định giỏ của cỏc tập cú thể là thường xuyờn. Một trong những phương phỏp tiếp cận chung là tớnh số lần xuất hiện của tập danh mục X trong cơ sở dữ liệu. Với mục đớch này cú một bộ đếm được cài đặt và khởi tạo bằng 0 cho mỗi tập danh mục đang xột, tiếp đú quột cỏc giao dịch T của cơ sở dữ liệu D và khi cú một giao dịch nào đú chứa tập danh mục đang xột , bộ đếm của tập danh mục đú được tăng thờm 1. Nhỡn chung việc tạo ra cỏc tập con và kiểm tra xem đú cú phải là tập thường xuyờn hay khụng thường được tớch hợp với nhau và được thực hiện trong quỏ trỡnh duyệt khụng gian tỡm kiếm.

Giải thuật Apriori[5]

Đõy là thuật toỏn tỡm kiếm theo chiều rộng (BFS) và sử dụng bộ đếm. Thuật toỏn sử dụng thuộc tớnh đúng xuống phớa dưới của giỏ khi duyệt trong khụng gian tỡm kiếm để loại bỏ những tập danh mục chứa một tập con khụng phải là tập thường xuyờn trước khi tớnh giỏ của nú. Điều này cú thể đạt được bởi BFS đảm bảo rằng giỏ của mọi tập con của một tập đang xột là biết trước được.

Thuật toỏn Apriori đếm mọi tập cú phần tử bằng n một cỏch đồng thời trong một lần quột cơ sở dữ liệu. Phần quan trọng là kiểm tra cỏc tập này cú phải là tập thường xuyờn hay khụng bằng cỏch sử dụng cấu trỳc cõy trong khụng gian tỡm kiếm. Cỏc danh mục trong mỗi giao dịch được dựng để dịch chuyển xuống phớa dưới của cõy. Mỗi khi thuật toỏn đạt đến một lỏ của cõy, sẽ tỡm thấy tất cả cỏc tập cú chung phần đầu được chứa trong giao dịch. Sau đú cỏc tập này được tỡm trong cỏc giao dịch đó được mó hoỏ và nếu tỡm thấy bộ đếm của nú tăng thờm 1.

Giải thụõt Apriori trước hết dựa vào tập Lk-1 (tập cỏc danh mục thường xuyờn cú độ dài k-1) để tỡm ra tập Ck (tập cỏc tập danh mục cú độ dài k). Dựa vào Ck thuật toỏn lại xỏc định Lk+1 và như vậy kết thỳc một vũng lặp

Giải thuật thực hiện nhiều bước duyệt dữ liệu. Mỗi bước duyệt bao gồm hai pha chớnh:

- Pha 1: tập Lk-1 (tập cỏc danh mục thường xuyờn cú độ dài k-1) được xỏc định ở bước thứ k-1 và được dựng để sinh tập Ck (tập cỏc tập danh mục cú độ dài k cú thể là thường xuyờn).

- Pha 2: Với mỗi giao dịch T, xỏc định cỏc phần tử của Ck được chứa trong giao dịch này, từ đõy cú thể xỏc định được hệ số xuất hiện của từng phần tử trong Ck. (adsbygoogle = window.adsbygoogle || []).push({});

Mụ phỏng giải thuật

Cho trước một tập danh mục L, cơ sở dữ liệu D, cỏc ngưỡng minSupp, minConf

Pha 1 thực hiện tỡm kiếm cỏc tập danh mục thường xuyờn gồm:

Bước 1: Đầu tiờn tớnh L1 là tập cỏc tập thường xuyờn cú một phần tử bằng cỏch quột cơ sở dữ liệu một lần.

Bước k (k=2..n): Tập cỏc tập thường xuyờn đó được tớnh ở bước Lk-1 được dựng để sinh ra tập Ck bằng việc gọi một hàm con. Sau đú sẽ tiến hành quột cơ sở dữ liệu để kiểm tra tập nào trong Ck là tập thường xuyờn để cuối cựng tớnh ra Lk.

Pha 2 tiến hành sinh luật từ tập cỏc tập danh mục thường xuyờn.

//Pha 1- tỡm kiếm tập Lk là tập cỏc danh mục thƣờng xuyờn

1: L1 = {cỏc tập 1-danh mục thường xuyờn} 2: for (k=2; Lk-1 ; k++) do begin

4: for all giao dịch T  D do begin // T là một giao dịch, D là cơ sở dữ liệu

5: Ct = subset(Ck, T) //Những tập con độ dài k được chứa trong T 6: for all c  Ck do

7: c.count++ 8: end

9: Lk = {c  Ck | c.count  minSupp} //c.count xỏc định giỏ của tập danh mục c

10: end

11: Kết quả  Lk

//Pha 2 tỡm kiếm luật kết hợp từ tập Lk

12: R =  //sinh cỏc luật kết hợp

13: for all f  Lk do begin // Xột tấp cả cỏc tập thường xuyờn

14: m=1 //bắt đầu với luật phần đầu của luật

15: Hm=L1 //Bao gồm một phần tử

16: Repeat

17: for all h  Hm do //Xột tất cả cỏc phần đầu luật của Hm

18: if supp(f) /supp(f-h)  minConf 19: then R:=R  {[(f-h)h]} 20: else Hm:=Hm-{h} 21: Hm+1:=candidates(Hm) 22: m:=m+1 23: until Hm =  or m  |f| 24: end 25: return R

 Giải thớch thuật toỏn:

- Hàm apriori-gen(Lk-1) thực hiện hai bước: bước hợp (join) và bước lược bỏ (prune). Thuật toỏn Apriori sử dụng tớnh chất: mọi tập con của tập thường xuyờn là tập thường xuyờn. Do vậy đầu tiờn

thuật toỏn tỡm tất cả cỏc tập thường xuyờn cú một phần tử (tập 1- danh mục thường xuyờn). Do đú nếu Ck là tập cỏc tập cú thể thường xuyờn thỡ nú phải được mở rộng từ Lk-1. Đõy chớnh là bước hợp của hàm apriori-gen(Lk-1).

- Bước hợp thực hiện như sau: Một k-tập danh mục (thuộc Ck) sẽ được tạo từ việc hợp của hai (k-1)-tập danh mục thường xuyờn (thuộc Lk-1) nếu k-2 danh mục của hai tập này là giống nhau và danh mục thứ k-1 là khỏc nhau.

- Bước lược bỏ thực hiện như sau: Vỡ Ck chứa mọi tập cú thể là thường xuyờn nờn Ck là bao chứa của Lk. Do đú cú thể một số tập trong Ck khụng phải là thường xuyờn và ta cú thể loại bỏ ngay theo cỏch sau. Nếu một k-tập danh mục thuộc Ck mà chứa một k-1 tập danh mục khụng phải là thường xuyờn thỡ k-tập danh mục đú cũng khụng phải là thường xuyờn.

- Hàm subset(Ck,T) sẽ xỏc định tập tất cả cỏc k-tập danh mục chứa trong giao dịch T và trong Ck

- Đoạn giả mó của hai bước hợp và loại bỏ như sau:

//Bƣớc hợp (adsbygoogle = window.adsbygoogle || []).push({});

26: for each pair p và q (p,q Lk-1) do begin

27: if (p.item1 = q.item1 and p.item2 = q.item2 and …p.itemk-2 = q.itemk-2

and p.itemk-1 = q.itemk-1 and p.itemk <p.itemk then do begin 28: temp = p  q

29: insert temp into Ck

30: end 31: end

//Bƣớc loại bỏ

32: for all c  Ck do

33: for all (k-1) tập danh mục s của c do 34: if (s Lk-1 ) then

35: Delete c from Ck

Giả sử tập danh mục L cú m phần tử |L| =m và cơ sở dữ liệu D cú n giao dịch. Khi đú số cỏc tập con của L cú thể là 2m

. Ngoài ra với mỗi tập con này cần một lần quột cơ sở dữ liệu nờn về mặt lý thuyết độ phức tạp của thuật toỏn theo số lần quột cơ sở dữ liệu là hàm dạng mũ O(n2m).

Tuy vậy cựng với việc đưa ra cỏc ngưỡng minSupp và thực hiện lượng bỏ trong khi xõy dựng tập Ck nờn số bước thực hiện của thuật toỏn giảm đi nhiều.

Tuy nhiờn nếu như ngưỡng yờu cầu về tần số xuất hiện bị thay đổi thỡ giải thuật apriori sẽ phải thực hiện lại từ đầu, điều này sẽ tốn nhiều thời gian.

3.2.1.4. Thuật toỏn Apriori nhị phõn để tỡm kiếm cỏc tập thƣờng xuyờn

Thuật toỏn Apriori nhị phõn được xõy dựng trờn cụng trỡnh nghiờn cứu của GS.TSKH Hoàng Kiếm và TS Đỗ Phỳc. Thuật toỏn sử dụng vộc tơ bớt cho cỏc thuộc tớnh, vộc tơ nhị phõn n chiều ứng với n giao dịch trong cơ sở dữ liệu. Sử dụng cơ sở dữ liệu ở bảng 1 để minh hoạ thuật toỏn. Biểu diễn cơ sở dữ liệu trong bảng một tương ứng với một ma trận nhị phõn, trong đú dũng thứ i tương ứng với giao dịch Ti, cột thứ j tương ứng với mục (thuộc tớnh) Ij. Ma trận biểu biễn cơ sở dữ liệu ban đầu như sau:

Giả sử cỏc tập danh mục thường xuyờn tỡm được thoả món minsupp=50%

TID A B C D E 1 1 1 0 1 1 2 0 1 1 0 1 3 1 1 0 1 1 4 1 1 1 0 1 5 1 1 1 1 1 6 0 1 1 1 0 Bảng 9

Cỏc vộc tơ biểu diễn nhị phõn cho cỏc tập một thuộc tớnh như sau: A B C D E 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0

Cỏc vộc tơ biểu diễn nhị phõn cho cỏc tập hai thuộc tớnh như sau:

{A,B} {A,C} {A,D} {A,E} {B,C} {B,D} {B,E} {C,D} {C,E} {D,E}

1 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0

Cỏc vộc tơ biểu diễn cho tập {A,C} và {C,D} cú độ hỗ trợ nhỏ hơn 33% nờn loaị bỏ.

Cỏc vộc tơ biểu diễn nhị phõn cho cỏc tập ba thuộc tớnh như sau:

{A,B,D} {A,B,E} {B,C,E} {B,D,E}

1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 0 Bảng 10 Bảng 11 Bảng 12

Cỏc vộc tơ biểu diễn nhị phõn cho cỏc tập bốn thuộc tớnh cú dạng sau: {A, B,C,D} {A, B,C,E} {A, C,D,E} {B, C,D,E} 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0

Cỏc vộc tơ biểu diễn cho thấy tất cả cỏc tập bốn thuộc tớnh đều cú độ hỗ trợ nhỏ hơn 50% nờn thuật toỏn dừng lại.

Cỏc tập thường xuyờn tỡm được là:

Cỏc tập thường xuyờn Độ hỗ trợ (%)

B 100% (6/6) (adsbygoogle = window.adsbygoogle || []).push({});

E, BE 83% (5/6)

A, C ,D, AB, AE, BC, BD, ABE 67% (4/6)

AD, CE, DE, ABD, ADE, BCE 50 %(3/6)

Bảng 14

3.2.1.5. Luật kết hợp cú thuộc tớnh số và thuộc tớnh hạng mục

Khai thỏc luật kết hợp với thuộc tớnh số và thuộc tớnh hạng mục (quantitative and categorical association rule) là một trong những hướng tiếp cận quan trọng trong khai phỏ luật kết hợp.

Vớ dụ sau minh hoạ một cơ sở dữ liệu bao gồm thuộc tớnh số

Một phần của tài liệu TÌM HIỂU MỘT SỐ LỚP TOÁN TỬ KÉO THEO VÀ ỨNG DỤNG MỘT VÀI BÀI TOÁN CỦA CƠ SỞ DỮ LIỆU MỜ (Trang 49)