Phát hiện luật kết hợp dựa trên hệ thông tin m ờ

Một phần của tài liệu Vấn đề phát hiện luật kết hợp trong cơ sở dữ liệu và khai phá dữ liệu (Trang 31)

2.3.1. Các định nghĩa hình thức trên hệ thông tin mờ

Trong mục này, chúng ta nêu một số định nghĩa hình thức như hệ thông tin mờ, các ánh xạ thông tin mờ, các tập chỉ báo phổ biến mờ, các luật kết hợp mờ và các vectơ chỉ báo mờ [16].

1. Hệ thông tin mờ

Cho 0 = (0 |, . . .,o„Ị là một tập hữu hạn có n đối tượng và D ={d|,. . d„,} là

tập hữu hạn m chỉ báo, cho F =[0,1] là tập con của tập số thực. Một hệ thông tin mờ

là Sp = (0,D,F,|i). Ánh xạ Ị.I được định nghĩa là |i: OxD —> F.

Trong đó, |i(o,d) e F biểu diễn mức độ của đối tượng o có chỉ báo d.

2. Các ánh xạ thông tin mờ

Cho một hệ thông tin mờ Sp = (O,D,B»(-0 và một ngưỡng T eF, ta định nghĩa các ánh thông tin mờ pF và A.p như sau:

Pp : P(D) -> P(O) và XF: P(O) -> P(D) (7)

Cho S c D , Pf(S) = (o gO I Vd e s, |i(o,d) > = tỊ Cho X c o , XF(S) = Ị d e D I V o e X , n(o,d) > =x)

3. Các tập chỉ báo phổ biến mờ

Cho ma trận thông tin mờ Sp = (0,D,F, |i) và một ngưỡng u eT. Cho S c D ,

s là tập chỉ báo phổ biến nhị phân với ngưỡng u nếu:

Card(pF(S)) >=u*Card(0) (8)

Cho Lf là tập của tất cả các tập chỉ báo phổ biến mờ đã phát hiện từ SF, chúng có các thuộc tính dưới đây:

vs e Lf,T c S = > T gL f

Ta biểu thị Lph là một tập con của LF, nếu X e LFh, card(X) = h (h là một số nguyên dương).

4. Các luật kết hợp mờ và hệ sô tin cậy

Cho ma trận thông tin mờ SF = (0,D,F,|.i) và một ngưỡng u e T. Cho s là

một phần tử của Lp, X và Y là một tập con của s trong đó s = X u Y và XnY= Ị }.

Ta xác định luật kết hợp giữa các tập chỉ báo X và Y và được biểu thị là X—> Y. Hệ số tin cậy của luật này được tính bằng:

Card(pF(X) n pF(Y) )/Card(pF(X)) (9)

Ta biểu thị RFp là tập tất các luật kết hợp lớn mờ r có đã được phát hiện từ Sp và CFp(r) >=ß.

5. Các vectơ chỉ báo mờ và các phép toán trên các vectơ đó

Cho một hệ thông tin mờ SF = (0,D,F,|i) trong đó o = {oh . . 0„Ị là một tập

hĩru hạn gồm n đối tượng và D = { d |,.. d„,} là tập hữu hạn m chỉ báo.

a. Các vectơ chỉ báo mờ

Cho X là một tập con của D, chúng ta xác định một vectơ chỉ báo mờ Vp(X) để trình diễn X. Một vectơ chỉ báo mờ Vp(X) = (X j,. . .,Xn) là một vectơ với n thành phần, mỗi thành phần X| chiếm một giá trị trong F. Cho VSp là một tập gồm tất cả

các vectơ chỉ báo mờ của Sp. Nếu card(X) =1, X là một thành phần của D, trong đó Xj =|i(oj,X).

b. Tích vectơmờ (adsbygoogle = window.adsbygoogle || []).push({});

Cho Vp(dị) = (dn , . . .,d|„) và vF(d2)=(d2i, • • Md2n) là các phần tử của VSF.

Tích vectơ mờ Vptd,) và vF(d2) là một vectơ Vp(d3) = (d31, . . d3n) của VSF trong đó

đ3j = min(dịj,đ2j), j = 1,. ..,n. Tích vectơ mờ được biểu diễn là:

VF(Z) = VF(X) ©p Vp(Y). (10)

c. Độ hỗ trợ của vecíơ chỉ báo mờ

Cho v(d() = (du , . . d|n) là một phần tử của VSF và một ngưỡng cho trước a G T. Một độ hỗ trợ của vectơ mờ v(dị) được định nghĩa là:

SupF(vF(d1)= {Oj e 0 :'n(Oj,di)>=a}. (1 1)

Với tất cả j = 1,. . -,n.

d. Tính các yếu tố của pF(S)

Cho s = {slt . . .,skỊ là một tập con của D, trong đó Sj là một thành phần của D, với j =1, . . . ,k. Mỗi Sj tưoíng đương với một vectơ v(Sj) của VF. Các thành phần của Pp(S) được tính bằng:

Card(pF(S)) = card(supF(vF(sk)) (12)

Trong đó Vp(d) = vF(s,) 0 F . .. 0 F vF(sk).

Ta biểu diễn VSFh là một tập con của VSF chứa chỉ vectơ Vp(D) trong đó : d e P(D) và card(d) = h.

2.3.2. Ví dụ minh hoạ

Giả sử chúng ta có một bảng, trong đó mỗi dòng là một giao dịch và mỗi cột là một mục. Đặc trưng của giao dịch này được trình bày trong bảng 2.3.

d. d2 d4 d5 d6

o2 22 40 35 0 0 0 03 24 40 39 41 25 10 o4 17 25 41 41 30 16 o5 0 0 1 45 40 12 06 0 0 1 41 30 16 Bắng 2.3: Bảng của giao dịch và các chỉ mục

Phần tử bị j của bảng này là số lượng mục mua bán dj trong giao dịch Oj. Cho

o là tập các giao dịch và D là tập các chỉ mục. Chúng ta định nghĩa ánh xạ %: OxD

—>{0,1}, trong đó x(°>d) =1 nếu giao dịch o có chỉ mục d. Từ bảng 2.3, chúng ta xây dựng X như trong bảng 2.4. Với ngưỡng u = 0.6 (60%), tập {dj,d2,d3} và {d4,d5,d6} là các tập chỉ báo phổ biến nhị phân và các luật kết hợp nhị phân như {di,d2} -> {d3}. d, ^2 d3 d4 d5 d6 Oi 1 1 1 0 0 0 o2 1 1 • 1 0 0 0 03 1 1 1 1 1 1 04 1 1 1 1 1 1 05 0 0 1 1 1 1 06 0 0 1 1 1 1

Bảng 2.4: Hệ thông tin nhị phân

Ma trận thông tin nhị phân, mỗi x(°-d) bằng 1 hoặc 0. Trình diễn này không xem xét số lượng các chỉ mục mua trong giao dịch vì nếu giao dịch Oị có 35 chỉ mục của d3 và giao dịch 05 chỉ có một chỉ mục của d3 nhưng x(Oi,d3) = x(o5,d3) = 1. Nếu d3 là một chỉ mục mà có giá cao, việc bán hàng của một số lượng nhỏ của d3 và số lượng lớn của d3 có sự khác nhau lớn.

Chúng tôi dùng các tập mờ MANY, AVERAGE, FEW đối với mỗi chỉ mục mờ. Các hàm thành viên của các tập mờ này được thích hợp với chỉ mục d là M^many » P^AVERAGE’ M-dFE\v • Cho HdlMANY V • •» M-dnMANY là n hàm thành viên của n tập

mờ MANY đã thích hợp với n chỉ mục. Chúng ta mờ hoá bảng thông tin trong bảng 2.3 và kết quả được trình bày trong bảng 2.5.

d, d2 d3 d4 d5 d6 Oi 0 . 8 0.9 0 . 8 0 0 0 ° 2 0 . 8 0 . 8 0 . 8 0 0 0 0.9 0 . 8 0.7 0 . 6 0 . 6 0.3 o4 0 . 6 0 . 6 0.9 0 . 6 0.7 0.5 o5 0 0 0 . 1 0.7 0 . 8 0.4 0 6 0 0 t 0 . 1 0 . 6 0.7 0.5 Bảng 2.5: Hệ thông tin mờ Trong đó |IMANY : OxD -> [0,1].

Với u = 0.5 (50%); X = 0.6 (60%), ta có thể phát hiện từ ma trận thông tin

mờ đối với khái niệm MANY của n mục như {dị, d2, d3},(d4, d5). Tập {dị, d2, d3}

có nghĩa là luật kết hợp mờ {dị, d2} —> {d3}, CFf của luật này là bằng 1 hay 100%. Có nghĩa là “Có 100% khách hàng mua MANY {d„ d2}, mua MANY Ịd ,)”.

2.3.3. Thuật toán phát hiện tập chỉ báo và các luật kết hợp mờ

Cho ma trận thông tiĩi mờ Sp = (0,D,F,fi) và các ngưỡng u, Pe [0,1] trong đó u là MINSUPP và p là MINCONF. Cho Lp là tập của tất cả các tập chỉ báo mờ phổ biến của SF, cho LFk là tập con của Lp, nếu X e L Fk, card(X) = k và RFp là tập tất cả các luật kết hợp mờ có độ tin cậy lớn hơn ngưỡng cho trước (5. Thuật toán để phát hiện các tập chỉ báo mờ và luật kết hợp mờ được đề xuất trong tài liệu [16] được trình bày như dưới đây. (adsbygoogle = window.adsbygoogle || []).push({});

1. Phát hiện tập chỉ báo phổ biến mờ

1. Traloi = {};

2. Sinh Lf I từ SF; //thực hiện như trình bày ở dưới

3. For (k=2; LFk<>{}; k++) do

4. Sinh Lf k từ Lf k.j; // thực hiện như trình bày ở dưới

6. R eturn Traloi;

Bảng 2.6: Thuật toán phát hiện tập chỉ báo mờ

a. Sinh LFk.Ị

1 • Lp, 1= í )»

2. For (i=l; i <= m; i++) do

3. If (card(supF(vF({d!})) > u*card(0) then

4. Begin

5. SaveLargeSet( {d j}, Lp i); // Lưu tập chỉ báo dj vào Lp!

6. SaveDescriptorVector(vF({dị}, VSF ị); // Lưu Vp({d| }vào VSF ị

7. end;

8. Traloi = Lp 9. R eturn Traloi;

Trong đó: m = card(D);

b. Tạo LFtk từ LF k_!

Dựa trên thuộc tính v s eLp, T c: s => TeLp, chúng sinh ra LFk từ LFk.!. Kết

quả như sau:

Tạo một ma trận có các dòng và các cột là các thành phần của Lpk.j.

1. LF,k= ỉ };

2. For (mỗi X eL pk.| và X <>Y) do

3. Begin

4. T = XuY;

5. If (card(supF(vF(T)) > u*card(0)) and card(T) = k) then

6. Begin 7. SaveLargeSet(T,LF k); 8. SaveDescriptorVector(vF(T), VSFk); 9. end; 10. end; 11. Traloi = LFk; 12. R eturn Traloi; Trong đó:

SaveLargeSet(T,Lp k) là một hàm để ghi một tập chỉ báo phổ biến mờ T vào LF k. SaveDescriptorVector(vF(T), VSFk) là một hàm để lun một vectơ chỉ báo mờ VF(T) vào VSFk. Ta có thể tính rất nhanh supF(vF(T)) tại bước thứ k của vòng lặp ở trên từ các phần tử của VSFk.ị.

2. Phát hiện các luật mờ

1 • Rpp = {}; // Khởi tạo tập luật bằng rỗng (adsbygoogle = window.adsbygoogle || []).push({});

2. For ( mỗi L G L p)do begin

3. For ( mỗi X,Y e L v à X n Y = {}) do

4. Begin

5. If (CFp(X->Y) >=p ) then

6. SaveRule(X-»Y,RFp); // lưu lại luật X—»Y vào Rpp

7. If (CFf(Y-»X ) >=p ) then

8. SaveRule(Y->X, RFp); //lưu lại luật Y-»X vào RFp

9. end;

10. end;

11. Traloi= Rp p; // Tập luật kết quả thu được

// SaveRule(X->Y, RFp) là hàm để ghi luật kết hợp mờ vào RFp.

C H Ư Ơ N G 3. M Ộ T SỐ T H U Ậ T T O Á N P H Á T H IỆN• • • L U Ậ T K Ế T H Ợ P

3.1. Thuật toán AIS

Trong mục này chúng tôi trình bày thuật toán AIS, bảng 3.1 dưới đây là nội dung chủ yếu của thuật toán AIS [13].

Đầu vào: CSDL D, minsup Đầu ra: các tập mục phổ biến

1) Lị = {các mục phổ biến Ị;

2) for ( k = 2; L*., * 0 ; k++ ) do begin

3) Q = 0 ;

4) forall các giao dịch t e D d o begin

5) L, = subset(Lk.'ị, t); // các tập mục phổ biến thuộc Lk.ị chứa trọng giao dịch t

6) forall các tập mục phổ biến /t e L| do begin

7) Cị = tăng lị thêm một mục có trong giao dịch t;

8) forall các ứng cử viên c e c, do

9) if (c € c k) then

add tăng biến đếm của c thêm 1 cho mục tương ứng thuộc c k else

add c vào c k và tàng biến đếm tương ứng thêm 1;

10) end

11) Lk = Ịc G c k I c.count > minsup)

12) end

13) Traloi = u k Lk; (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 3.1: Thuật toán AIS

Các tập mục ứng cử viên được sinh ra khi quét toàn bộ CSDL. Sau khi duyệt một giao dịch, xác định được các mục mà được tìm thấy là phổ biến trong bước trước được chứa trong giao dịch này (bước 5). Các tập mục ứng cử viên mới được sinh bởi việc mở rộng các tập mục phổ biến này với các tập khác trong giao dịch

(bước 7). Tập mục phổ biến l được mở rộng với chỉ các tập mục là phổ biến và

đứng sau theo thứ tự bảng chữ cái của các mục bất kỳ của các mục trong /. Các ứng cử viên đã sinh ra từ một giao dịch được bổ sung vào tập các tập mục ứng cử viên

đã duy trì, hoặc việc đếm các thực thể tương ứng được tăng nếu chúng đã được tạo bởi giao dịch trước đó (bước 9).

Ví dụ, xét CSDL trong bảng 3.2 với giả thuyết rằng độ hỗ trợ tối thiểu là 2 giao dịch. CSDL L, TID Các mục 100 1 3 4 200 2 3 5 300 1 2 3 5 400 2 5 c 2 Tập mục Độ hỗ trợ {1} 2 {2} 3 {3} 3 {5} 3 L2 Tập mục Độ hỗ trợ {13} 2 {14} 1 {34} 1 {23} 2 {25} 3 {35} 2 {12} 1 115} 1 c 3 Tập mục Độ hỗ trợ {134} 1 {23 5} 2 {123} 1 {125} 1 {135} 1 Tập mục Độ hỗ trợ {13} 2 {23} 2 {25} 3 {35} 2 Tập mục Độ hỗ trợ {2 3 5} 2 c 4 Tập mục Độ hỗ trợ {1 2 3 5 } 1 L4 = 0

Bảng 3.2: Ví dụ thuật toán AIS

Theo bước 1 của thuật toán, ta thu được L| là tập gồm các mục có số lần xuất hiện (độ hỗ trợ) lớn hơn.hoặc bằng 2. Trong các bước 2 đến 10, ta thu được tập

ứng cử viên Q ỉà tập tất cả các tập có hai mục (2-itemset) và độ hỗ trợ tương ứng. Bước 11, ta thu được tập phổ biến L2 từ Q , L2 là tập các 2-itemset có hộ hỗ trợ lớn hon hoặc bằng 2. Lặp lại các bước từ 2 đến 10, ta thu được tập ứng cử viên c 3 gồm tập tất cả các tập có ba mục.'Bước 11, ta thu được L3 từ c 3, L3 là tập phổ biến gồm các tập có ba mục có độ hỗ trợ lớn hơn hay bằng 2. Tương tự, ta thu được c 4 là tập có bốn mục; L4 bằng rỗng. Như vậy, tập các tập mục phổ biến mà ví dụ trên thu được sau là {{1}, {2}, {3}, {5}, Ị1 3Ị, Ị2 3}, {2 5}, {3 5}, {2 3 5}}. Thuật toán kết thúc.

3.2. Thuật toán SETM

Thuật toán SETM đã được đề xuất do mong muốn dùng SQL để tìm các tập mục phổ biến. Chúng tôi trình bày thuật toán này trong bảng 3.2. C’k (L’k) trong bảng 3.2 trình bày tập các tập mục ứng cử viên trong đó các TID của các giao dịch phát sinh ra đã từng được kết, hợp với các tập mục. Mỗi thành viên của các mục này có dạng <TID, itemset>.

Thuật toán SETM được mô tả hình thức như sau [13]: Đầu vào: CSDL D, minsup

Đầu ra: Tập các tập mục phổ biến 1) Lị = {các mục phổ biến};

2) Lị’ = {các mục phổ biến cùng các TID của nó được sắp xếp theo TIDị; 3) for ( k = 2; Lk.ị * 0 ; k++ ) do begin

4) c y = 0 ;

5) forall các giao dịch t e D do begin

6) Lt = [ le LVi I /.TID = t.TID};

// các tập có (k-l)-muc phổ biến có trong giao dịch t 7) forall các tập mục phổ biến /t e L, do begin

8) c, = tăng lt thêm một mục có trong t;// Các ứng cử viên có trong t

9) c k += { < t.TID, c > I c e c t);

10) end

11) end

12) Sort C’k theo cá.c tập mục;

13) delete các mục c e C’k có c.count < minsup đưa vào L’k;

15) Sort L’k theo TID; 16) end

17) Traloi = u k Lk;

Bảng 3.3: Thuật toán SETM.

Giống như AIS, thuật toán SETM cũng sinh ra các ứng cử viên dựa trên các giao dịch đọc từ CSDL. Vì thế, nó sinh ra và đếm mỗi tập mục ứng cử viên mà thuật toán AIS sinh ra. Tuy nhiên, để dùng phép nối (JOIN) chuẩn của SQL, SETM chia sự phát sinh ứng cử viên từ việc đếm. Nó lưu một bản sao của tập mục ứng cử viên cùng với TID của việc phát sinh giao dịch trong cấu trúc tuần tự (bước 9). Cuối mỗi bước, đếm độ hỗ trợ của các tập mục ứng cử viên được xác định bởi việc sắp xếp (bước 12) và việc kết hợp lại cấu trúc tuần tự này (bước 13). SETM ghi nhớ các TID của việc phát sinh các giao dịch với các tập mục ứng cử viên. Để tránh việc thao tác trên tập con, nó dùng thông tin này để xác định các tập mục lớn chứa trong giao dịch được đọc (bước 6). L’k C C’k và thu được bởi việc xoá các ứng cử viên này mà không có độ hỗ trợ tối thiểu (bước 13). Giả sử rằng CSDL được sắp xếp theo thứ tự TID, SETM có thể dễ dàng tìm các tập mục phổ biến được chứa trong một giao dịch trong bước tiếp theo bằng việc sắp xếp L’k theo TID (bước 15). Thực tế, nó cần thăm mỗi thành viên của L \ chỉ một lần theo thứ tự TID, và việc sinh ứng cử viên ở các bước 5 đến 11 có thể được thực hiện sử dụng phép toán merge-join.

Nhược điểm chính của thuật toán này là dựa vào sô' các tập ứng cử viên C’k. Khi với mỗi tập các mục ứng cử viên có một TID kết hợp với nó, nó yêu cầu nhiều không gian để lưu trữ số lượng lớn các TID. Hơn nữa, khi độ hỗ trợ của tập mục ứng cử viên được tính vào cuối một bước, C’k không theo thứ tự. Vì thế, việc sắp xếp lại các mục là cần thiết (bước 12). Sau đó, các tập mục ứng cử viên được cắt tỉa bằng việc loại bỏ các tập mục ứng cử viên không thoả mãn ràng buộc độ hỗ trợ. Một sắp xếp khác trên TID là cần thiết đối với tập kết quả L’k (bước 15) trước khi nó có thể được sử dụng để phát sinh các ứng cử viên trong bước tiếp theo.

Xét CSDL trong bảng 3.4 dưới đây với giả sử độ hỗ trợ tối thiểu là 2 giao dịch. Theo bước 1, ta thu được Lị với các mục có số lần xuất hiện trong các giao (adsbygoogle = window.adsbygoogle || []).push({});

dịch lớn hơn hay bằng 2. Bước 2, ta thu được L’j là tập các mục phổ biến và định danh giao dịch (TỈD) tương ứng được sắp xếp theo TID. Trong các bước từ 3 đến 9,

ta thu được C’2. Bước 10 đến 14, ta thu được L2. Bước 15 được ư 2. Lặp lại các bước

từ 3 đến 9, ta thu được C’v Các bước 10 đến 14, ta thu được L3. Bước 15, thu được

Một phần của tài liệu Vấn đề phát hiện luật kết hợp trong cơ sở dữ liệu và khai phá dữ liệu (Trang 31)