Nghĩa của 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 48)

Luật kết hợp là một lĩnh vực quan trọng trong khai phỏ dữ liệu. Luật kết hợp giỳp chỳng ta tỡm được mối liờn hệ giữa cỏc mục dữ liệu (items) của cơ sở dữ liệu. Bài toỏn tỡm luật kết hợp boolean đầu tiờn trong. Vớ dụ cho luật này cú thể là như sau: “90% số người mua bơ và sữa sẽ mua cả bỏnh mỳ”. Đó cú nhiều thuật toỏn đưa ra nhằm giải quyết bài toỏn này như Apriori, FP-growth, Eclat…

Thụng tin đưa lại bởi luật kết hợp cú sự khỏc biệt cơ bản so với thụng tin thu được từ cỏc cõu lệnh truy vấn dữ liệu thụng thường như ngụn ngữ SQL. Đú là những tri thức, những mối liờn hệ chưa biết trước và mang tớnh dự bỏo đang tiềm ẩn trong dữ liệu. Những tri thức này khụng đơn giản chỉ là kết quả của phộp nhúm, tớnh tổng hay sắp xếp mà là kết quả của một quỏ trỡnh tớnh toỏn khỏ phức và tốn nhiều thời gian.

Tuy luật kết hợp là dạng luật khỏ đơn giản nhưng lại mang khỏ nhiều ý nghĩa. Thụng tin mà dạng luật này đem lại là rất đỏng kể và hỗ trợ khụng nhỏ trong quỏ trỡnh ra quyết định. Tỡm kiếm được cỏc luật kết hợp “qỳy hiếm” và mang nhiều thụng tin từ cơ sở dữ liệu tỏc nghiệp là một trong những hướng tiếp cận chớnh của lĩnh vực khai thỏc dữ liệu

3.2.1.2 Một số hƣớng tiếp cận trong khai thỏc luật kết hợp

Lĩnh vực khai thỏc luật kết hợp cho đến nay đó được nghiờn cứu và phỏt triển theo nhiều hướng khỏc nhau. Cú những đề xuất nhằm cải tiến tốc độ thuật toỏn cú những thuật toỏn nhằm tỡm kiếm luật cú ý nghĩa hơn, sau đõy là một số hướng tiếp cận trong khai thỏc luật kết hợp:

Luật kết hợp nhị phõn (binary association rule[23]): là hướng nghiờn cứu đầu tiờn của luật kết hợp. Trong dạng luật kết hợp này cỏc mục (thuộc tớnh) chỉ được quan tõm là cú hay khụng xuất hiện trong giao tỏc của cơ sở dữ liệu chữ khụng quan tõm về mức độ xuất hiện. Thuật toỏn tiờu biểu nhất để khai phỏ dạng

luật này là thuật toỏn Apriori và cỏc biến thể của nú. Đõy là dạng luật đơn giản và cỏc luật khỏc cũng cú thể chuyển về dạng luật này nhờ một số phương phỏp như rời rỏc hoỏ, mờ hoỏ…

Luật kết hợp cú thuộc tớnh số và thuộc tớnh hạng mục[23] (quantitative and categorial association rule): Trong thực tế cỏc thuộc tớnh của cơ sở dữ liệu rất đa dạng, để phỏt hiện luật kết hợp với cỏc thuộc tớnh này, cỏc nhà nghiờn cứu đó đề xuất một số phương phỏp rời rạc hoỏ nhằm chuyển dạng luật này về dạng nhị phõn để cú thể ỏp dụng những thuộc tớnh đó cú.

Luật kết hợp tiếp cận theo hướng tập thụ (mining association rules base on rough set): Tỡm kiếm luật kết hợp dựa trờn lý thuyết tập thụ.

Luật kết hợp nhiều mức (multi-level association rules): Với cỏch tiếp cận theo luật này sẽ tỡm kiếm thờm cỏc luật dạng: “Mua mỏy tớnh PC  Mua hệ điều hành AND mua phần mềm tiện ớch văn phũng ” thay vỡ chỉ những luật quỏ cụ thể như: Mua mỏy tớnh IPM PC  Mua hệ điều hành Microsoft Windows AND mua phần phần mềm tiện ớch văn phũng Microsoft Word. Như vậy dạng luật đầu là dạng luật tổng quỏt hoỏ của dạng luật sau và tổng quỏt theo nhiều mức khỏc nhau.

Luật kết hợp với thuộc tớnh được đỏnh trọng số (association rules with weighted items): Trong thực tế cỏc thuộc tớnh trong cơ sở dữ liệu khụng phải lỳc nào cũng cú vai trũ như nhau, cú một số thuộc tớnh được chỳ trọng hơn và cú mức độ quan trọng cao hơn cỏc thuộc tớnh khỏc. Với luật kết hợp cú thuộc tớnh được đỏnh trọng số chỳng ta sẽ khai khỏc được cỏc luật “hiếm” mang nhiều ý nghĩa.

Luật kết hợp mờ (Fuzzy association rules): Nhằm hạn chế quỏ trỡnh rời rạc hoỏ thuộc tớnh số, cỏc nhà nghiờn cứu đó đề xuất luật kết hợp mờ. Luật kết hợp mờ cú dạng tự nhiờn và gần gũi với người sử dụng hơn

Ngoài ra cũn một số hướng nghiờn cứu nhằm khai thỏc luật kết hợp: Khai thỏc luật kết hợp song song, khai thỏc luật kết hợp trực tuyến, khai thỏc luật kết hợp được kết nối trực tuyến đến cỏc kho dữ liệu đa chiều thụng qua hệ thống OLAP (Online Analyis Prosessing).

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

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ợ (%)

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.

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à

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 48)