Phát biểu bài toán luật kết hợp

Một phần của tài liệu Ứng dụng luật kết hợp trên hệ thống thông tin nhị phân để xây dựng bài toán tư vấn xây dựng (Trang 39)

Cho một CSDL T, độ hồ trợ tối thiểu minsup, độ tin cậy tối thiểu minconf. Bài toán khai phá luật kết hợp là bài toán tìm tất cả các luật X —>Y (X, Y c I và X n Y = 0 ) thỏa mãn sup(X—>Y) > minsup và conf(X—>Y) > minconf.

Hầu hết các thuật toán được đề xuất để khai phá luật kết họp thường được chia thành hai pha [13] [11]:

Bài toán l ĩ

Tìm tất cả các tập mục mà có độ hỗ trợ lớn hơn độ hỗ trợ cho trước. Các tập mục thoả mãn độ hỗ trợ tối thiểu được gọi là các tập mục phổ biến. Nghĩa là, tìm tất cả các tập mục X thỏa mãn supp(X) > minsup.

Bài toán 2:

Dùng các tập mục phổ biến để sinh ra các luật mong muốn, nghĩa là, sinh các luật tin cậy từ các tập phổ biến đã tìm thấy ở bài toán 1.

Ví dụ 2.5: Với tập phổ biến ADE có độ tin cậy supp(ADE) = 50% ở bảng 2.4 và minconf = 70% thì chúng ta sinh ra các luật kết họp sau đây:

Luật kêt hợp

(X ->Y ) Conf(X -> Y)

Độ tin cậy conf > minconf ? A -> DE =supp( ADE)/supp( A)=7 5 %

D -> AE 75% Có

E —» AD 60% Không

AD —» E 100% Có

DE —» A 100% Có

A E ->D 75% Có

Bảng 2.5 . Luật kết họp sinh từ tập phổ biến ADE 2.2.4. Một số hướng tiếp cận khai phá 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 đề xuất nhằm tìm kiếm luật có ý nghĩa hơn.... Một số hướng tiếp cận khai phá luật kết họp cần chú ý sau đây.

Luật kết hợp nhị phân (binary association rule hoặc boolean association rule)

Đó 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 nhị phân, chỉ quan tâm là tập mục có xuất hiện (ứng với số 1 hoặc true) hay không xuất hiện (ứng số 0 hoặc False) trong giao dịch chứ không quan tâm về “tần suất“ xuất hiện. Chẳng hạn, người ta mua hoặc không mua một một sản phẩm nào đó (không quan tâm số lượng). Thuật toán tiêu biểu nhất khai phá dạng luật kết hợp là thuật toán Apriori và các biến thể của nó. Các luật khác cũng có thể có được bằng cách rời rạc hoá hoặc mờ hoá, v.v... để đưa về dạng luật kết hợp nhị phân.

Luật kết hợp cổ thuộc tính số và thuộc tính hạng mục (quantitative and categoríal association rule)

Các thuộc tính của các cơ sở dữ liệu thực tế có kiểu rất đa dạng (nhị phân - binary, số - quantitative hoặc hạng mục - categorial,...). Để phát hiện luật kết hợp với các thuộc tính này, người ta dùng một số phương pháp rời rạc hoá để chuyển các dạng luật trên các kiểu dữ liệu này về dạng luật nhị phân để áp dụng các thuật toán đã có. Ví dụ “Mua vải = “có” HOẶC “Mua chỉ” = “có” —» “Mua kim khâu” ="có" với độ hồ trợ và độ tin cậy nào đó.

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 (multỉ-level assocmtìon rule)

Với cách tiếp cận theo luật này sẽ tìm kiếm thêm những luật có dạng: X —» Y & z & .... Chẳng hạn: “Mua máy tính PC —» Mua hệ điều hành —» Mua phần mềm tiện ích văn phòng,

Luật kết hợp mờ (fuzzy association rule)

Với những hạn chế còn gặp phải trong quá trình rời rạc hoá các thuộc tính số, người ta đã đề xuất luật kết hợp mờ nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi hơn với người sử dụng một ví dụ của dạng này là : “Thông minh” = yes AND “Chăm học” = yes —» “Vượt qua kỳ thi” = yes, với độ hỗ trợ 15% và độ tin cậy 75%. Trong luật này điều kiện “Thông minh”, “Chăm học” là các thuộc tính mờ.

Luật kết với thuộc tính được đánh trọng số (association rule with weighted items):

Trong thực tế, mức độ quan trọng của các mục dữ liệu không phải lúc nào cũng như nhau. Có một số thuộc tính được chú trọng và có mức độ quan trọng cao hơn các thuộc tính khác. Ví dụ khi khảo sát về doanh thu hàng

tháng, thông tin về thòi gian đàm thoại, vùng cước là quan trọng hơn nhiều so với thông tin về phương thức gọi... Trong quá trình tìm kiếm luật, chúng ta sẽ gán thời gian gọi, vùng cước các trọng số lớn hơn thuộc tính phương thức gọi. Đây là hướng nghiên cứu rất thú vị và đã được một số nhà nghiên cứu đề xuất cách giải quyết bài toán này. Với luật kết hợp có thuộc tính được đánh trọng số, chúng ta sẽ khai phá được những luật tuy có độ hỗ trợ thấp nhưng có rất nhiều ý nghĩa.

Luật kết hợp song song (parallel mining o f association rules): (adsbygoogle = window.adsbygoogle || []).push({});

Bên cạnh khai phá luật kết hợp tuần tự, các nhà làm tin học cũng tập trung vào nghiên cứu các thuật giải song song cho quá trình phát hiện luật kết hợp. Nhu cầu song song hoá và xử lý phân tán là cần thiết bởi kích thước dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống phải được đảm bảo. Có rất nhiều thuật toán song song khác nhau đã đề xuất để có thể không phụ thuộc vào phần cứng.

2.3. Bài toán phát hiện luật kết họp

Phần này sẽ chỉ ra rằng nếu quan sát và thu thập được một CSDL về các giao dịch thì liệu có thể tìm được các luật kết hợp trong đó hoặc tiềm ẩn trong đó thỏa supmin và conữnin cho trước không.

Để minh họa, chúng ta xét ví dụ sau.

Vỉ dụ 2.6 I = {il, i2, Ì3,14} = {Gạch, Cát, Sơn , Xi măng}, Count(I) = 4 TID = {ti, t2, t3, t4}, Count(TID) = 4

11 = Gạch 12 = Cát 13 = Xi măng 14 = Sơn

Trong đó ti = {Gạch, Cát, Xi măng}; t2 = {Cát, Sơn , Xi măng} t3= {Cát}; u = {Gạch, Cát} (2.6)

TID Tập các mục trong giao dịch thực tê ti Gạch, Cát, Xi măng Í2 Cát, Sơn , Xi măng Í3 Cát u Gạch, Cát Bảng 2.6. Thể hiện các giao dịch thực tế Đặt bài toán:

Cho giao dịch thực tế với tập các mục I = {il, i l , in}, tập giao dịch TID = {ti, t2, ... tk} và minsup = 0, minconf = ß . Hãy xác định các luật kết họp trên cơ sở những thông tin đã cho đó.

Cách giải:

Bước 1.

Do bảng giao dịch thực tế đã cho chỉ có k giao dịch, như thế trong đó còn tiềm ẩn các giao dịch khác. Để bổ sung các giao dịch chúng ta tạo ra một bảng mới thể hiện các giao dịch có thể có T = {ti, t2, ... tm} với Count(T) = m

n £ Cn

để thống kê số các giao dịch có thể có có từ I là m = ‘-° Không có mục nào, số giao dịch là c ° = 1

c1 = ('n ~ V ỉ n =n một mục , số giao dịch là 1!(n-1)! in -1)! c2 Có hai mục , số giao dịch là 2!(n " 2)! é — Có i mục, số giao dịch là ỉ! (n “ ^ ! fị\ C“ = ---—---- = 1 Có mục n mục, số giao dịch là n!(” _

m

Vậy tổng số giao dịch có thể có cho n mục (khác nhau) là

n n n

- ¿=1 i >i=1 . i j z r ñ iJ=1 i!(yi —i)!

Chẳng hạn từ công thức (2.6) ta có ¿ c ; =16 j = l Và TT Tập các mục X trong giao dịch 1 0 (không có mặt hàng nào) 2 Gạch 3 Cát 4 Sơn 5 Xi măng 6 Gạch, Cát 7 Gạch, Sơn 8 Gạch, Xi măng 9 Cát, Sơn 10 Cát, Xi măng 11 Sơn, Xi măng 12 Gạch, Cát, Sơn 13 Gạch, Cát, Xi măng 14 Gạch, Sơn , Xi măng 15 Cát, Sơn , Xi măng 16 Gạch, Cát, Sơn , Xi măng Bảng 2.7 Bảng tập các giao dịch có thể có

Bước 2. Tính độ hồ trợ của từng tập mục sup(X) trong đ ó x c l

l{X R ç Tr I Te DỊ I Count(XR) su p (X )= --- _ R

Theo công ứiức (2.1) IJ 1 Count(T ) Chú ý rằng R trên mũ để chỉ dữ liệu thực tế (bảng 2.7).

Ta có, chẳng hạn ts: X = {Xi măng}, từ bảng 2.7 thì count({Xi măng}) =2 và I tò bảng 2.7 thì Count(TR) = 4 vậy:

, , count( í Ximang 1 ) 2

sup( { Ximang } ) =---- i—5----— = * 100% = 50%

1 J ITr I 4

Tính tương tự, ta có

T Các mục trong giao dịch X Sup(X)

1 0 (không có mục nào) 0 % 2 Gạch 50% 3 Cát 100% 4 Sỏi 25% 5 Xi măng 50% 6 Gạch, Cát 50% 7 Gạch, Sỏi 0% 8 Gạch, Xi măng 0% 9 Cát, Sỏi 25% 10 Cát, Xi măng 50% 11 Sỏi, Xi măng 25% 12 Gạch, Cát, sỏi 0% 13 Gạch, Cát, Xi măng 25% 14 Gạch, Sỏi, Xi măng 25% 15 Cát, Sỏi, Xi măng 25% 16 Gạch, Cát, sỏi, Xi măng 0% Bảng 2.8 Bảng tập mục và độ hỗ trợ (adsbygoogle = window.adsbygoogle || []).push({});

Bước 3. Tìm tập mục phổ biến X sao cho sup(X) > minsup = 0 Nếu 0 = 50% thì từ bảng 2.9 Bảng tập mục và độ hồ trợ, ta có

TID Các mục trong giao dịch Sup(X)

1 Gạch 50%

2 Cát 100%

3 Xi măng 50%

4 Gạch, Cát 50%

5 Cát, Xi măng 50%

Bảng 2.9 Tập mục phô biên trong bảng 2.8

Bước 4. Tạo các luật kết hợp và tính độ tin cậy conf của từng luật

Giả sử tại một giao dịch t = {X, Y, Z}; chúng ta có thể tạo ra các luật như sau:

X —» Y, Y —» X, X ^ z , z —» X, Y ^ z , z —» Y, X —» YZ, YZ-> X, Y

->XZ,XZ->Y, ...

Giả sử X* và Y* là tập các hạng mục tính Conf từ công thức

* * _ Sup(X* Ư Y *) _ Sup(X *Y *) _ Count(X * u Y * ) _ C ount(X *Y *)

C O Ĩ I Í Í À —^ Y ) — --- 7--- — --- *--- — --- “--- : --- — --- “--- ---: ----

_______________ Supt(X ^) Supt(X ^) C o u n t ( X ) C o u n t ( X )

và so sánh conf(X —» Y ) với minconf đê rút ra kêt luận liệu có tôn tại X —» Y* hay không

Từ bảng 4.3-4 về tập mục phổ biến trong ta tìm độ tin cậy conf: Conf(“Gạch” -> “Cát”) = sup(“Gạch” u “Cát”) / sup(“Gạch”)

= sup(“Gạch, Cát”) / sup(“Gạch”) = (50% / 50 %)*100% = 100% Bằng cách tính tương tự ta được bảng 2.10. và giả sử minconf = 60%.

TT Các luật kêt họp Độ tín cậy conf conf > minconf

1 Gạch —» Cát 100%

2 Cát —» Gạch 50% Không

3 Cát —» Xi măng 50% Không

5 Xi măng —» Cát 100%

Bảng 2.10. Minh hoạ bài toán phát hiện luật kết họp

Kết luận tồn tại hai luật kết hợp thỏa mãn các yêu cầu đã đặt ra là: Gạch —» Cát và Xi măng —» Cát

2.4. Tiền xử lý luật kết hợp trên hệ thống thông tin nhị phân

Định nghĩa 2.4-1. Hệ thông tin nhị phân.

Kí hiệu:

o ={oi, 02, . . on} là một tập hữu hạn gồm n đối tượng, D = {di, d2, . . dm} là một tập hữu hạn gồm m chỉ dẫn, B = {0, 1} là tập số nhị phân, (adsbygoogle = window.adsbygoogle || []).push({});

% là ánh xạ o X D —> B được xác định như sau:

Ç1 nếu Oi có chỉ dẫn dj với Vij

X (O i,d j) = <

L 0 nếu Oi không có chỉ dẫn dj với Vij

Hệ thống SB = (O, D, B, x) được gọi là hệ thống thông tin nhị phân.

Ví dụ 2.4-1

Cho danh sách các mặt hàng {Gạch, Xi măng, s ỏ i , Sơn , Cát} và danh sách khách mua hàng {Kháchi, Khách2, khách3, Khách4}. Giả sử sau khi quan sát, thu thập dữ liệu chúng ta có bảng 2.11.

Gạch Xi măng Sơn Sỏi Cát Kháchi 2 0 4 5 0 Khách2 0 4 5 0 7 Khách3 4 5 6 0 8 Khách4 0 6 0 0 9 Bảng 2.11. Bảng mua hàng của khách

Qua ánh xạ nhị phân %(Oi,dj) bảng 2.11 được chuyển sang bảng thông tin nhị phân 2.12. di d2 d3 d4 d5 Ol 1 0 1 1 0 02 0 1 1 0 1 03 1 1 1 0 1 04 0 1 0 0 1 Bảng 2.12. Thông tín nhị từ bảng 2.11 Như vậy D = {di, d2, d3, d4, d5} và o = {Oi, 02, 03, 04}

Định nghĩa 2.4-2. Các ánh xạ thông tin nhị phân

Cho hệ thông tin nhị phân SB = (O, D, B, x); Gọi:

- P(O) là tập con của tập o, ví dụ bảng 2.12, P(O) = {{oi, 03}, {o2, 03,

04} , . . . }

- P(D) là tập con của D, ví dụ bảng 2.12 P(D) = {{di, d4}, {d2, d3,

pB: P(D) —» P(O) (ánh xạ tậ p ^ tập) với P b (S ) = {oeO IV deS, Sc=D, X (o,d)=l}

XB: P(O) —» P(D) (ánh xạ tậ p ^ tập) với ẰB(X) = {deD IV oeX, XczO,

X (o,d)=l}

Nghĩa là cho trước một tập con s của D thì P b (S ) tập bao gồm những oeO được chỉ dẫn bởi VdeS và cho trước một tập con X của o thì A-b(X) là tập chỉ bao gồm những d chỉ dẫn cho VoeX.

Vỉ dụ 2.4-2

Từ bảng 2.12, Si = {d2, d3, d5} thì P b ( S i) = {o2, o3}

Xi = {o2, o3, o4} thì ^b(Xi) = {d2, d5}

Định nghĩa 2.4-3. Tập chỉ dẫn phổ biến nhị phân

Cho hệ thông tin nhị phân SB = (O, D, B, %) và một số 0 e (0, 1) được gọi là ngưỡng.

S ç D được gọi là tập chỉ dẫn phổ biến nhị phân với ngưỡng 0 nếu s thỏa mãn điều kiện Count(pB(S)) > 0 X Count(O).

Từ bảng 2.12 Count(O) = 4, Count(pB(Si)) = 2 và với 0 = 0.5 ta có Count(pB(Si)) > 0 X Count(O) nên Si là tập chỉ dẫn phổ biến nhị phân.

Ký hiệu:

Lb = {S I Count(pB(S)) > 0 X Count(O)} là tập tất cả các tập chỉ dẫn

phổ biến nhị phân đã phát hiện từ SB. Rõ ràng rằng, nếu T ç S v à nếu s G LB

thì T G Lb.

Gọi Lb h là tập con của LB có tính chất là nếu s (= LB h thì Count(S) = h (với h là số nguyên dương). (adsbygoogle = window.adsbygoogle || []).push({});

Định nghĩa 2.4-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 thông tin nhị phân SB = (O, D, B, x) và một ngưỡng 0 e (0, 1). Cho L là một phần tò của Lß, X c= L và Y c= L , L = XuY, X 0 , Y

0 và X n Y = 0 . Chúng ta xác định các luật kết họp nhị phân giữa tập X và tập Y là một ánh xạ X—»Y với hệ số tin cậy của luật này được tính theo công thức sau:

C o u ^ x ^ m

Count(pB( X))

Với Pb(XuY) = {oeO IV d eX u Y , X u Y cD , X (o,d)=l} Pb(Y) = {oeO IV deY , Y(=D, X (o,d)=l}

Chẳng hạn:

Từ bảng 2.12 Count(O) = 4, và với 0 = 0.5 ta có 0 X Count(O) = 2 thì Lb = {S I Count(pB(S)) >2} là tập tất cả các tập chỉ dẫn phổ biến nhị phân

L = {d2, d3, <¿5} —> Pb(L) = {02,03} —> Count(pB(L)) > 2 —> L cz Lb

X = {d2, d3} thì Pb(X) = {o2, 03} và count(pB(X)) = 2 Y = {d5} thì Pb(Y) = {o2, 03} và count(pB(Y)) = 2

Rõ ràng X c z L v à Y c z L , L = XuY, X ^ 0 , Y ^ 0 v à X n Y = 0

C F , ( x - > r ) = Cam‘<r‘ ( ỵ u ỵ ))

Count(pB(X)) = Count({o2, o3}u{o2,

o3})/Count({o2, 03}) = Count({o2, o3})/Count({o2, O3}) = 1

Kí hiệu Rb ß là tập tất cả các luật kết hợp phổ biến nhị phân r được phát hiện từ SB sao cho Vr G RB ß, CFB(r) > ß.

Định nghĩa 2.4-5. Các vectơ chỉ dẫn nhị phân và các phép toán với nó

Cho hệ thông tin nhị phân SB = (O, D, B, x ) .

Cho trước X c D véc tơ Vb(X) = (Xi, x 2, ... , x n) với Xj G B, j = 1...Ĩ1

được gọi là vectơ chỉ dẫn nhị phân của SB.

Ví dụ 2.4-5

Từ các bảng 2.11 và 2.12 Ta suy ra: card(O) = 4, card(D) = 5 Và Sb ta có các vectơ chỉ dẫn nhị phân như sau:

vB({d1}) = ( l , 0 , l , 0 ) vB({d2}) = ( 0 , l , l , l ) vB({d3}) = ( l , l , l , 0 ) vB({d4}) = (l,0, 0, 0) vB({d5}) = ( 0 , l , l , l )

Tập các véc tơ chỉ dẫn nhị phân của SB được ký hiệu là Vbs trong ví dụ trên thì

Vbs = {vB({di}), vB({d2}, vB({d3}, vB({d4}, vB({d5}}

Định nghĩa 2.4-6 Tích vectơ chỉ báo nhị phân

Cho x lf x 2 c D, M X O = (Xu, Xi2, , x ln), VB(X2) = (X21, x 22, ,

x 2n) . Tích cácvectơ chỉ báo nhị phân V b (X i) V b (X 2) được biểu hiện

là VB(X3) = M X i ) 0 VB(X2).

Trong đó:

VB(X3) = (X31, x 32, ... , x 3n) với x 3j = minCXy, x 2j), j = l^ n X3 = X 1u X 2 e D (adsbygoogle = window.adsbygoogle || []).push({});

Từ vectơ V b (X 3) , chúng ta biết tất cả các đối tượng hiện có trong t ậ p chỉ báo Xi và x 2.

Vỉ dụ 2.4-6

vB({d2}) 0 V b ơ c U ) = (0,1,1,1) 0 (1,0, 0, 0) = (0,0,0,0) = vB({d2d4}) Chúng ta dùng V b (X i) để trình diễn P b ( X i) , V b (X 2) để trình diễn

P b (X 2) v à V b (X 3) đ ể trình diễn P b ( X 3).

Định nghĩa 2.4-7 Độ hỗ trợ các vectơ chỉ dẫn nhị phân

Cho X (= D, độ hỗ trợ của V b (X ) biểu diễn supB(vB(X)) được định nghĩa

Ví dụ 2.4-7

Độ hỗ trợ của Vb(X) khi X = di là supb(vb(Xi = di)) = {oeOIVdedi x(0,d) = l} = {01,03}

Chú ý:

Dễ ứiấy rằng: Count(supB(vB(X))) = Count(pB(X)). Thật vậy, đó là do supB(vB(X)) = {oeOIVdeX Xc=D, x(o,d) = 1} (công ứiức (1)) và

P b ( X ) = {ogO IVdeX, Xc=D, X (o,d)=l} (theo định nghĩa 2.4.2)

Ví dụ 2.4-7

Card(supB(vB({di}))) (là số lượng các đối tượng có trong vectơ chỉ

báo nhị phân) chính là Count(supB(vB({di}))) nên card(supB(vB({di}))) = 2 card(supB(vB({d2}))) = 3 card(supB(vB({d3}))) = 3 card(supB(vB({d4}))) = 1 card(supB(vB({d5}))) = 3 Tính card(pB(S))

Cho s = {Si s2, , sk} là tập con của D. Trong đó Sj là bộ chỉ dẫn của SB, j = 1 ... k. Mỗi Sj tương ứng với vectơ chỉ dẫn nhị phân vB({Sj}). Các yếu

tố của Pb(S) được tính theo công thức:

(pB(S)) = supb(vb{si})0bsupb(vb{s2}) ©B ••• 0 BsupB(vB{sk}) (2)

Count(pB(S)) = Count(supB(VB{Si})0BSUpB(VB{S2}) ©B

0 BsupB(vB{sk})) (3)

Kí hiệu V SB h là tập con của V SB chứa vectơ Vb(X) trong đó X <= D và Count(X) = h (h là số nguyên dương cho trước).

2.5. Thuật toán khai phá luật kết họp trên hệ thống thông tin nhị phân.

Một phần của tài liệu Ứng dụng luật kết hợp trên hệ thống thông tin nhị phân để xây dựng bài toán tư vấn xây dựng (Trang 39)