Phát hiện luật kết hợp dựa trên hệ thông tin nhị phân

Một phần của tài liệu khai phá dữ liệu và phát hiện luật kết hợp trong cơ sở dữ liệu siêu thị (Trang 37 - 45)

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

Định nghĩa 1.1: Hệ thông tin nhị phân

Cho các tập sau:

O ={o1, o2, …, on} là một tập hữu hạn gồm n đối tƣợng, D = {d1, d2, …, dm} là một tập hữu hạn gồm m chỉ báo, B = {0, 1}

Hệ thông tin nhị phân là bộ SB = (O,D,B,) trong đó  là ánh xạ :O x D → B, với (o,d) = 1 nếu đối tƣợng o có chỉ báo d và (o,d) = 0 nếu ngƣợc lại.

Định nghĩa 1.2: Các ánh xạ thông tin nhị phân

Cho hệ thông tin nhị phân SB = (O, D, B, ). Cho P(O) là các tập con của O, P(D) là các tập con của D. Các ánh xạ thông tin nhị phân B và B đƣợc định nghĩa nhƣ sau:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

B: P(D)  P(O) với ý nghĩa:

cho S  D, B(S) = {o  O|  d  S, (o, d) = 1} B: P(O)  P(D) với ý nghĩa:

cho X  O, B(X) = {d  D|  o  X, (o, d) = 1}

Định nghĩa 1.3: Tập chỉ báo phổ biến nhị phân

Cho hệ thông tin nhị phân SB = (O, D, B, ) và một ngƣỡng  (0, 1). Cho S  D, S là tập chỉ báo phổ biến nhị phân với ngƣỡng  nếu: card(B(S)) ≥ *card(O)

Cho LB là một tập gồm tất cả các tập chỉ báo phổ biến nhị phân đã phát hiện từ SB, chúng có thuộc tính nhƣ sau: S  LB, T  S thì T  LB.

Trong đó LB,h là tập con của LB nếu X  LB, h thì card(X) = h (với h là số nguyên dƣơng).

Định nghĩa 1.4: Các luật kết hợp phổ biến nhị phân và hệ số tin cậy

Cho hệ thông tin nhị phân SB = (O, D, B, ) và một ngƣỡng   (0, 1). Cho L là một phần tử của LB, X và Y là hai tập con của L, trong đó:

L = X  Y, X ≠ {}, Y ≠ {} và X  Y = {}

Chúng ta xác định các luật kết hợp nhị phân giữa tập chỉ số X và tập chỉ số Y là một ánh xạ thông tin: X  Y. Hệ số tin cậy của luật này đƣợc biểu diễn là:

( ( )) )) ( ) ( ( ) ( CFB X card Y X card Y X B B B       (2.4)

Ta biểu diễn RB, là tập tất cả các luật kết hợp phổ biến nhị phân đƣợc phát hiện tự SB. Trong đó CFB(r) ≥ ,  r  RB,

Định nghĩa 1.5: Các vectơ chỉ báo nhị phân và các phép toán

Cho hệ thông tin nhị phân SB = (O, D, B, ) trong đó O ={o1, o2, …, on} là một tập hữu hạn gồm n đối tƣợng, D = {d1, d2, …, dm} là một tập hữu hạn gồm m chỉ báo.

Vectơ chỉ báo nhị phân vB(X) = {X1, X2, … , Xn} trong đó: X  D là một vectơ với n thành phần, mỗi thành phần Xj chiếm một giá trị trong B. Cho VSB là tập tất cả các vectơ chỉ báo nhị phân của SB, nếu card(X) = 1 thì X là bộ chỉ báo của SB và Xj = (o, X)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Định nghĩa 1.6: Tích vectơ chỉ báo nhị phân

Cho X1, X2  D, vB(X1) = (X11, X12, … , X1n), vB(X2) = (X21, X22, … , X2n) là các phần tử của VSB. Tích vectơ chỉ báo nhị phân vB(X1) và vB(X2) đƣợc biểu hiện là vB(X3) = vB(X1) B vB(X2). Trong đó:

vB(X3) = (X31, X32, … , X3n) với X3j = min(X1j, X2j), j = 1n X3 = X1 X2  D

Từ vectơ vB(X3), chúng ta biết tất cả các đối tƣợng hiện có trong tập chỉ báo X1 và X2. Chúng ta dùng vB(X1) để trình diễn B(X1), vB(X2) để trình diễn B(X2) và vB(X3) để trình diễn B(X3).

Định nghĩa 1.7: Độ hỗ trợ các vectơ chỉ báo nhị phân

Cho X1  D, độ hỗ trợ của vB(X1) biểu diễn supB(vB(X1)) đƣợc định nghĩa là: supB(vB(X1))={o  O| d  X1, (o, d) = 1} (1)

Dễ thấy rằng: card(supB(vB(X1))) = card(B(X1)) Tính card(B(S)) (lực lƣợng của tập hợp)

Cho S = {s1, s2, … , sk} là tập con của D. với sj là bộ chỉ báo của SB, j = 1  k. Mỗi sj tƣơng ứng với vectơ chỉ báo nhị phân vB({sj}). Các yếu tố của B(S) đƣợc tính bằng:

card(B(S)) = card(supB(vB{s1}) B supB(vB{s2}) B … supB(vB{sk})) (2) Chúng ta biểu diễn VSB,h là tập con của VSB chứa chỉ vectơ vB(X) trong đó XD và card(X) = h (h là số nguyên dƣơng cho trƣớc).

b. Thuật toán phát hiện tập chỉ báo và luật kết hợp nhị phân

Thuật toán phát triển từ thuật toán Apriori-Tid. Để phát hiện các tập chỉ báo nhị phân phổ biến từ các luật kết hợp nhị phân từ hệ thông tin nhị phân. Thuật toán này làm việc với các bit trong bộ nhớ và không làm việc với CSDL trên đĩa, vì thế có thể cải tiến tốc độ quá trình phát hiện luật. Cho một CSDL và hai ngƣỡng độ hỗ trợ tối thiểu minsup và độ tin cậy tối thiểu minconf của luật kết hợp. Thuật toán Apriori-Tid có hai pha:

Pha 1: Phát hiện các tập chỉ báo phổ biến dựa trên ngƣỡng minsup cho

trƣớc.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Cho ma trận thông tin nhị phân SB = (O, D, B, ) và một ngƣỡng ,  (0, 1). Trong đó  là minsup và  là minconf.

Chi tiết thuật toán Apriori-Tid nhƣ sau:

Pha 1: Phát hiện tập chỉ báo phổ biến nhị phân 1. TraLoi =  ;

2. Sinh LB,1 từ SB theo thủ tục 1.a. dƣới đây ; 3. for (k = 2; LB,k<> {}; k++)

4.{ Sinh LB,k từ LB,k-1 theo thủ tục 2.a. dƣới đây ; 5. TraLoi = k LB,k-1 ; 6. } 7. Return TraLoi ; // = = = = = = = = 1.a. Sinh LB,1 1. LB,1 =  ; 2. for (i = 1; i <= m; i++) 3. if(card(supB(vB({di}))) >  * card(O)) 4. { SaveLargeSet({di}, VSB,1) ; 5. SaveDescriptorVector(vB({di}, VSB,1)) ; 6. } 7. TraLoi = LB,1 ; 8. Return TraLoi ;

// Trong đó m = card(D) là lực lƣợng của lập D.

2.a. Sinh LB,k

Dựa trên thuộc tính S  LB, T  S thì T  LB, chúng sinh ra LB,k từ LB,k-1. Kết quả nhƣ sau:

Tạo một ma trận có các dòng và cột là các thành phần của LB, k-1

1. LB,k =  ;

2. for (Mỗi X  LB,k-1 && X<>Y) 3. { T = X  Y ;

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 5. { SaveLargeSet(T, LB,k) ; 6. SaveDescriptorVector(vB(T), VSB,k)) ; 7. } 8. } 9. TraLoi = LB,k ; 10. Return TraLoi ; Trong đó:

SaveLargeSet(T, LB,k) là một hàm để ghi một tập chỉ báo phổ biến nhị phân T vào LB,k.

SaveDescriptorVector(vB(T), VSB,k)) là một hàm để lƣu một vectơ chỉ báo phổ biến nhị phân vB(T) vào VSB,k.

Dựa vào (1) và (2), ta có thể tính rất nhanh supB(vB(T)) tại bƣớc thứ k của vòng lặp ở trên, từ các phần tử của VSB,k-1.

Pha 2: Phát hiện các luật phổ biến nhị phân

1. RB, =  ; // Khởi tạo tập luật ban đầu là rỗng 2. for (Mỗi L  LB)

3. { for(Mỗi X, Y  L và XY ={}) 4. { if(CFB(X => Y) )

5. SaveRule(X=>Y, RB,); // ghi luật X=>Y vào RB, 6. if(CFB(Y =>X) )

7. SaveRule(Y=>X, RB,); // ghi luật Y=>X vào RB, 8. } 9. } 10. TraLoi = RB, ; 11. Return RB, ; // Kết thúc c. Ví dụ 2.2 Cho hệ thống các mặt hàng D = {d1, d2, d3, d4, d5} và

Số các giao tác mua bán O = {o1, o2, o3, o4}. Ký hiệu trong giao tác mua bán cho nhƣ bảng sau (mặt hàng nào được mua thì đánh số 1, ngược lại đánh số 0).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Bảng 2.2. Hệ thông tin nhị phân mua bán hàng hoá

d1 d2 d3 s4 d5

o1 1 0 1 1 0

o2 0 1 1 0 1

o3 1 1 1 0 1

o4 0 1 0 0 1

Minh hoạ cụ thể thuật toán nhƣ sau:

Ta thấy hệ thống các giao tác mua các mặt hàng tƣơng đƣơng nhƣ hệ thông tin nhị phân SB = (O, D, B, ). Từ hệ thông tin nhị phân ta có:

O = {o1, o2, o3, o4} và D = {d1, d2, d3, d4, d5} Ta suy ra: card(O) = 4, card(D) = 5

Từ SB ta có các vectơ chỉ báo nhị phân nhƣ sau: vB({d1}) = (1, 0, 1, 0) vB({d2}) = (0, 1, 1, 1) vB({d3}) = (1, 1, 1, 0) vB({d4}) = (1, 0, 0, 0) vB({d5}) = (0, 1, 1, 1) Lặp 0: Tạo LB,1:

Tính card(supB(vB({di}))) (số lƣợng các đối tƣợng có trong vectơ chỉ báo nhị phân vB({di})) với i = 1  5 ta có card(supB(vB({d1}))) = 2 card(supB(vB({d2}))) = 3 card(supB(vB({d3}))) = 3 card(supB(vB({d4}))) = 1 card(supB(vB({d5}))) = 3

Với minsup = 0.5 và minconf = 0.5 ta có: Các tập chỉ báo phổ biến là: LB,1 = {{d1}, {d2}, {d3}, {d5}}

Lặp 1: Tạo LB,2 từ LB,1 :

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

sau:

cho (X, Y)  LB,1  LB,1 và X <>Y, T = X  Y Giá trị của f(X, Y) = card(supB(vB(T))) với: card(T) = 2, minsup = 0,5 ta có:

card(supB(T)) = card(supB(vB(X) B vB(Y)))  minsup*card(O) = 2 ( trong bài toán này X, Y  {{d1}, {d2}, {d3}, {d5}} )

Chú ý: Khi tính supB(vB(T)) ta sử dụng các vB(X) (cũng là các vB(Y)) đã đƣợc ghi trong VSB,1 để tăng tốc độ tính toán.

Giá trị của f(X, Y) đƣợc tính trong bảng sau: (các giá trị f(X, X) ta không quan tâm)

{ d1} { d2} { d3} { d5} { d1} 2 2 2 1 { d2} 1 3 2 3 { d3} 2 2 3 2 { d5} 1 3 2 3

( Các ô mà giá trị đƣợc đánh số đậm thì thoả mãn, nhƣng ta chỉ lấy 1 lần vì theo lý thuyết tập hợp thì {X, Y}  {Y, X} )

Cuối cùng, ta có LB,2 = {{d1, d2}, {d1, d3}, {d2, d5}, {d3, d5}} Trong VSB,2 ta có các vectơ chỉ báo sau:

vB({d1, d2}) = vB({d1}) B vB({d2}) = (1, 0, 1, 0) vB({d1, d3}) = vB({d1}) B vB({d2}) = (0, 1, 1, 0) vB({d2, d5}) = vB({d1}) B vB({d2}) = (0, 1, 1, 1) vB({d3, d5}) = vB({d1}) B vB({d2}) = (0, 1, 1, 0) Lặp 2: Tạo LB,3 từ LB,2 :

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Cho (X, Y)  LB,2  LB,2 và X <>Y, T = X  Y Giá trị của f(X, Y) = card(supB(vB(T))) với: card(T) = 3, minsup = 0,5 ta có:

card(supB(T)) = card(supB(vB(X) B vB(Y)))  minsup*card(O) {d1, d2} {d1, d3} {d2, d5} {d3, d5}

{d1, d2} 2 1 1 1

{d1, d3} 1 2 2 2

{d2, d5} 1 2 3 2

{d3, d5} 1 2 2 2

Chú ý: Khi tính supB(vB(T)) ta sử dụng các vB(X) (cũng là các vB(Y)) đã đƣợc ghi trong VSB,s để tăng tốc độ tính toán.

Cuối cùng ta có LB,3 = {d2, d3, d5}

và VSB,3 chứa chỉ mục vectơ chỉ báo vB({d2, d3, d5}) = (0, 1, 1, 0) Lặp 3: Tạo LB,4 từ LB,3 :

Từ LB,3 ta xây dựng một ma trận biểu diễn ánh xạ f: LB,3  LB,3  R {d2, d3, d5}

{d2, d3, d5} 2 LB = LB,1  LB,2  LB,3 hay

LB = {{d1}, {d2}, {d3}, {d5}, {d1, d2}, {d1, d3}, {d2, d5}, {d3, d5}, {d2, d3, d5}}

Nhƣ vậy, các luật kết hợp mà ta có thể rút ra là (có 14 luật): Ta có tập LB,4 = {}. Dừng thủ tục. Cuối cùng, ta có:

Bảng 2.3 Các luật kết hợp từ hệ thông tin nhị phân mua bán hàng hoá

T T Luật T T Luật 1 d1 => d2 8 d5 => d3 2 d1 => d3 9 d2 => d3, d5 3 d2 => d1 1 d3 => d2, d5

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 0 4 d3 => d1 1 1 d5 => d2, d3 5 d2 => d5 1 2 d2, d3 => d5 6 d5 => d2 1 3 d2, d5 => d3 7 d3 => d5 1 4 d3, d5 => d2

Một phần của tài liệu khai phá dữ liệu và phát hiện luật kết hợp trong cơ sở dữ liệu siêu thị (Trang 37 - 45)

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

(62 trang)