Khai phá luật kết hợp có trọng số không chuẩn hóa

Một phần của tài liệu Khai phá luật kết hợp có trọng số trong cơ sở dữ liệu lớn (Trang 30 - 91)

2.2.1. Mô hình bài toán

Cho cơ sở dữ liệu (CSDL) giao tác DT. Ký hiệu I i1, ... ,iM là tập tất cả các mục (thuộc tính) của DT. Mỗi giao tác (bản ghi) tq trong DT là một tập con của I , được gán một định danh TID . Một tập con của I, gồm k mục phân biệt được gọi là một k-tập mục hay tập mục độ dài k. Để đơn giản, thay vì i1, ...,ik, đôi khi ta viết i1...ik; chẳng hạn tập mục A B C D, , , được viết ngắn gọn là ABCD.

Dưới đây, ta giả sử DT bao gồm N giao tác, M mục và mỗi mục ij được gán một trọng số 0wj 1, j1, ... ,M. Trọng số wj phản ánh mức độ quan trọng của mục ij .

Cũng giống như luật kết hợp nhị phân, luật kết hợp có trọng số được định nghĩa như sau.

Định nghĩa 2.1. Cho CSDL giao tác DT. Ký hiệu I i1, ... ,iM là tập tất cả các mục. Luật kết hợp nhị phân có trọng số là mệnh đề kéo theo XY , trong đó XI Y, IX   Y .

Mỗi luật kết hợp có trọng số được đặc trưng bởi một cặp thông số đó là

độ hỗ trợcó trọng số (Weighted support) và độ tin cậy (Confidence).

Định nghĩa 2.2. Cho tập mục XI . Số các giao tác trong DT chứa tập mục

X được gọi là số đếm hỗ trợ (support count - SC) X, ký hiệu là SC(X). Tỷ lệ các giao tác trong DT chứa X được gọi là độ hỗ trợ của X , ký hiệu là sup(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

Ta có sup( )X SC X( ) N

. (2.1) Hiển nhiên, 0sup( ) 1.X

Định nghĩa 2.3. Cho k-tập mục XI. Đại lượng

( ) j j i X W X w   

được gọi là trọng số của X.

Định nghĩa 2.4. Cho k-tập mụcXI. Ta gọi đại lượng Wsupxác định bởi: ( ) Wsup( ) ( ) sup( ) j j i X SC X X W X X w N          (2.2) là độ hỗ trợ có trọng số của X. Chú ý rằng, độ hỗ trợ có trọng số có thể nhận giá trị lớn hơn 1.

Định nghĩa 2.5. Cho k-tập mụcXI và ngưỡng hỗ trợ wminsup. X được gọi là tập mục thường xuyên có trọng số nếu

Wsup( )Xwminsup (2.3) Trường hợp ngược lại, X được gọi là tập mục không thường xuyên có trọng số.

Định nghĩa 2.6. Cho hai tập mục X Y, I với X   Y . Độ hỗ trợ của luật kết hợp XY là độ hỗ trợ có trọng số Wsup(XY) của hợp hai tập mục XY.

Định nghĩa 2.7. Cho hai tập mục X Y, I với X   Y . Độ tin cậy của luật kết hợp XY , ký hiệu conf (XY), là đại lượng xác định bởi:

    conf (X Y) SC X Y SC X    (2.4) Ta có, 0conf (XY) 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

Định nghĩa 2.8. Cho trước ngưỡng hỗ trợ tối thiểu wminsup và độ tin cậy tối thiểu minconf. Luật XY được gọi là luật kết hợp hấp dẫn nếu thỏa mãn đồng thời hai điều kiện:

(i) Wsup(XY)wminsup (2.5) (ii) conf (XY)minconf (2.6) Với các khái niệm trên, bài toán khai phá luật kết hợp có trọng số được phát biểu như sau:

Cho CSDL giao tác DT, ngưỡng hỗ trợ tối thiểu wminsup và độ tin cậy

tối thiểu minconf. Tìm tất cả các luật kết hợp hấp dẫn XY trong DT theo định nghĩa 2.8.

Để tìm được các luật hấp dẫn, cần phải ấn trước định hai ngưỡng: độ hỗ trợ có trọng số tối thiểu wminsup và độ tin cậy tối thiểu minconf.

Cũng giống như khai phá luật kết hợp nhị phân, quá trình khai phá luật kết hợp có trọng số được chia thành hai giai đoạn. Giai đoạn thứ nhất tìm tất cả các tập mục thoả mãn độ hỗ trợ tối thiểu, tức là tìm tất cả các tập mục thường xuyên có trọng số. Giai đoạn thứ hai, sử dụng các tập mục thường xuyên có trọng số tìm được, thực hiện việc sinh ra các luật kết hợp thoả mãn độ tin cậy tối thiểu minconf.

Vấn đề ở giai đoạn thứ hai được giải quyết như sau: Giả sử đã tìm được X là tập mục thường xuyên có trọng số, ta tạo ra các luật kết hợp bằng cách với YX , kiểm tra độ tin cậy của luật X \YY có thoả mãn độ tin cậy tối thiểu không. Việc làm này là đơn giản. Mọi khó khăn nằm ở bài toán thứ nhất.

Với cơ sở dữ liệu có n mục dữ liệu, không gian tìm kiếm tập mục thường xuyên có trọng số bao gồm 2M 1 tập con khác rỗng của M mục dữ liệu. Rõ ràng đây là bài toán NP khó. Để có được thuật toán hiệu quả phát hiện các tập

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 (adsbygoogle = window.adsbygoogle || []).push({});

mục thường xuyên có trọng số cần phải có phương pháp duyệt thích hợp, tỉa nhanh các tập mục ứng viên. Hầu hết các nghiên cứu về luật kết hợp đều tập trung giải quyết vấn đề khai phá các tập mục thường xuyên có trọng số.

Không giống như tập mục thường xuyên nhị phân, tập mục thường xuyên có trọng số không thỏa mãn tính chất Apriori, nghĩa là tập con của một tập mục thường xuyên có trọng số không nhất thiết phải là tập mục thường xuyên có trọng số. Vì vậy, để phát hiện các tập mục này, không thể áp dụng các kỹ thuật đã được đề xuất cho việc khai phá tập mục thường xuyên nhị phân. Mục 2.2.2 dưới đây trình bày một số tính chất của tập mục thường xuyên có trọng số và thuật toán khai phá luật kết hợp có trọng số.

2.2.2. Thuật toán MINWAL(O) khai phá tập mục thƣờng xuyên có trọng số

MINWAL(O) là thuật toán được Cai, C. H. [6, 7] đề xuất, dựa trên tư tưởng thuật toán Apriori khái phá tập mục thường xuyên nhị phân.

2.2.2.1. Cơ sở toán học

Cho CSDL giao tác DT. Ký hiệu I i1, ... ,iM là tập tất cả các mục (thuộc tính), N là số giao tác trong DT và 0wj 1 là trọng số được gán cho mục ,ij j1, ... ,M .

Mệnh đề 2.1. Cho tập mục ,X YI . Nếu XY thì sup( )X sup( )Y .

Chứng minh. Hiển nhiên, bởi vì mỗi giao tác chứa Y cũng sẽ chứa X. ■

Giả sử Y là một q-tập mục con của Ik là một số nguyên thỏa

q k M . Gọi

1, , ... ,2

k q

r r r

i i i  là (k - q) mục có trọng số lớn nhất trong trong

tập các mục không thuộc Y (tức là các mục trong tập còn lại I Y\ ). Khi đó một k-tập mụcchứa Y sẽ có trọng số tối đa là:

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 1 ( , ) j j k q j r i Y j W Y k w w      . (2.7) trong đó,  Y i j j w là tổng các trọng số của các mục trong q-tập mục Y và 1 j k q r j w

 là tổng của (k - q) trọng số lớn nhất của các mục còn lại.

Định nghĩa 2.9. Cho q-tập mục YI, k là một số nguyên thỏa q k N . Đặt ( , ) ( , ) wminsup M B Y k W Y k         (2.8) trong đó .   chỉ phép làm tròn bằng cận trên nguyên nhỏ nhất. Đại lượng

( , )

B Y k xác định theo (2.8) được gọi là cận k-hỗ trợ của tập mục Y.

Mệnh đề 2.2. Nếu Y là tập con của một k-tập mục thường xuyên có trọng số chuẩn hóa X nào đó thì số đếm hỗ trợ của nó phải lớn hơn hoặc bằng B Y k( , ), tức là

( ) ( , )

SC YB Y k . (2.9)

Chứng minh. Với mọi k-tập mục X chứa Y, ta đều có ( ) ( , ) j j i X W X w W Y k     . (2.10) Nếu X là một tập mục thường xuyên có trọng số chứa Y, thì theo Định nghĩa 2.4 , 2.5 và bất đẳng thức (2.10), số đếm hỗ tợ X phải thỏa mãn:

( ) ( , ) ( , ) j j i X wminsup M wminsup M SC X B Y k w W Y k                      . (2.11) Mặt khác, vì YX, theo Mệnh đề 2.1, lại 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

( ) ( )

SC YSC X . (2.12) Kết hợp (2.11) với (2.12) suy ra điều phải chứng minh. ■

Ví dụ 2.1: Cho cơ sở dữ liệu giao tác như trong Bảng 2.1 có trọng số các mục như trong Bảng 2.2 và wminsup = 0.45.

Bảng 2.1. Cơ sở dữ liệu giao tác TID Danh mục TID Danh mục (adsbygoogle = window.adsbygoogle || []).push({});

T1 T2 T3 T4 a b d e a d e b d e a b d e T5 T6 T7 a c e b d e b c d e Bảng 2.2. Trọng số của các mục TID Tên mục nhuận Lợi Trọng số

1 a 100 0.1 2 b 300 0.3 3 c 400 0.4 4 d 800 0.8 5 e 900 0.9 Ta có cận 3-hỗ trợ cho tập mục {b,d} là: 0.45 7 3 5 (0.3 0.8) 0.9          

Như vậy, nếu tập mục {b,d} là tập con của bất kỳ 3-tập mục thường xuyên có trọng số chuẩn hóa nào đó thì số đếm hỗ trợ của {b,d} phải lớn hơn hoặc bằng 5.

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

Sử dụng tính chất trên của các tập mục con của các tập mục thường xuyên có trọng số nêu trong Mệnh đề 2.1 và 2.2, ta xây dựng thuật toán khai phá các tập mục thường xuyên có trọng số như sau.

2.2.2.2. Thuật toán MINWAL(O) Ký hiệu: Ký hiệu:

DT Cơ sở dữ liệu

w Tập các trọng số của các mục

Size Độ dài lớn nhất của các giao tác

Ck Tập các k-tập mục ứng viên có thể là tập con của j-tập mục thường xuyên có, jk

Lk Tập các k-tập mục thường xuyên có trọng số

L Tập tất cả các tập mục thường xuyên có trọng số

SC(X) Số đếm hỗ trợ tập mục X trong DT

wminsup Ngưỡng hỗ trợ tối thiểu

minconf Ngưỡng độ tin cậy tối thiểu

Input: CSDL DT, tổng số giao tác và tổng số mục M và tổng số giao tác trong DT, ngưỡng hỗ trợ wminsup, trọng số của các mục w1, ... ,wN.

Output: Tập các luật kết hợp có trọng số.

1) Main Program(wminsup, minconf, DT, w)

2) L =

3) Size = Search(DT) ; 4) L1 = ;

5) SC C size, 1,  = Counting(DT, w) ; 6) for (k = 2; ksize; k++) do

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 7) Ck = Lk =  ; 8) While (Ck1 2) 9) Ck = Join(Ck1) ; 10) Ck = Prune(Ck) ; 11) C Lk, k = Checking(Ck , DT) ; 12) L = L Lk; 13) Rules (L, minconf) ; 14) Ends;

Các chương trình con của Thuật toán MINWAL(O) là như sau:

3. Search(DT): Duyệt CSDL DT xác định kích thước (tức độ dài) cực đại của các giao tác, ghi vào size.

4. Counting(DT,w): Duyệt CSDL DT xác định số đếm hỗ trợ mỗi mục riêng lẻ thuộc I. Sau đó, tính các cận j-hỗ trợ cho mỗi mục (j = 2, … ,

size) và lưu các mục có số giao tác hỗ trợ lớn hơn hoặc bằng một cận j- hỗ trợ nào đó vào tập các mục ứng viên C1. Tính độ hỗ trợ có trọng số thực tế của các 1-tập mục thuộc I, từ đó xác định tậpL1các 1-tập mục thường xuyên có trọng số. Nhập L1 vào L, LL1 .

5. Join(Ck1): Sinh tập các k-tập mục ứng viên Ck bằng cách kết nối các ứng viên thuộc Ck1, như trong thuật toán khai phá tập mục thường xuyên Apriori [1]. Ví dụ, nếu có hai ứng viên a b c, ,  và a b d, ,  thuộc C3 thì chúng sẽ được kết nối thành a b c d, , ,  trong C4.

6. Prun Ck : Tỉa các tập mục ứng viên trong Ck. Ứng viên X trong Ck sẽ bị loại nếu một trong hai trường hợp sau xảy ra:

(a) Có một tập con cỡ (k1)của X không thuộc tập Ck1, (theo Mệnh đề 1.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 (adsbygoogle = window.adsbygoogle || []).push({});

(b) Ước lượng số đếm hỗ trợ X bằng giá trị nhỏ nhất trong số các số đếm hỗ trợ các tập mục con cỡ (k1) của X có trong Ck1, (các số đếm này đã tính được ở bước k -1). Tính các cận j-hỗ trợ, (j =

k +1, … , size) của X. So sánh số đếm hỗ trợ ước lượng với các cận j-hỗ trợ cho thấy số đếm hỗ trợ ước lượng này nhỏ hơn bất kỳ một cận j-hỗ trợ nào, (theo các Mệnh đề 2.1 và 2.2)

7. CheckingC DTk, : Duyệt CSDL, xác định số đếm hỗ trợ chính xác ( )

SC X của mỗi ứng viên X trong Ck. Sau đó thực hiện tiếp hai công việc:

- Tinh lọc một lần nữa Ck: Sử dụng các số đếm hỗ trợ chính xác đã có, loại bỏ các ứng viên X B X j( , )SC X( ) với mọi

1

j k , … , size khỏi Ck. (Các giá trị B X j( , ) đã được tính ở bước Prun Ck ).

- Tính độ hỗ trợ có trọng số thực tế của các các ứng viên còn lại, từ đó xác định tập Lk các k-tập mục thường xuyên có trọng số. Cuối cùng, nhập Lk vào tập L, L L Lk.

8. Rules (L, minconf): Sinh luật kết hợp thỏa mãn độ tin cậy minconf từ mỗi tập mục thường xuyên có trọng số thuộc L.

Thuật toán MINWAL(O) có cấu trúc giống như thuật toán Apriori Gen [1], nhưng về chi tiết có điểm khác biệt cơ bản trong việc tạo và tỉa các ứng viên. Tuy các tập mục thường xuyên có trọng số ở đây cũng được khai phá lần lượt theo thứ tự tăng dần của kích thước tập mục, nhưng ta không thể tạo các k-tập mục ứng viên từ các (k-1)-tập mục thường xuyên có trọng số, vì tập mục thường xuyên có trọng số không thỏa mãn tính chất Apriori. Trong MINWAL(O), việc tạo và tỉa các k-tập mục ứng viên dựa trên tính chất: Nếu

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

một tập mục nào đó trong Ck1 có số đếm hỗ trợ nhỏ hơn mọi cận j-hỗ trợ của nó (j = k, … , size) thì không thể một tập con của một tập mục thường xuyên có trọng số. Các k-tập mục ứng viên trong Ck được tạo nên bằng sự kết nối các tập mục thuộc Ck1 chứ không phải các tập mục thuộc Lk1.

Ví dụ 2.2: Cho CSDL Bảng 2.1 có trọng số của các mục cho trong Bảng 2.2. Giả sử ngưỡng wminsup quy định bằng 1, minconf bằng 0,85. Theo thuật toán nêu trên, việc khai phá tập mục thường xuyên có trọng số tiến hành như sau.

Ta có: số giao tác trong CSDL là 7, tập tất cả các mục I a b c d e, , , , . 1. Duyệt CSDL xác định độ dài tối đa của các giao tác, thu được size = 4. 2. Vòng lặp 1 (k = 1): Duyệt CSDL xác định số đếm hỗ trợ mỗi mục

riêng lẻ thu được

SC(a) = 4, SC(b) = 5, SC(c) = 2, SC(d) = 6, SC(e) = 7. Tính các cận j-hỗ trợ với j2,3, 4, thu được

  1 7 , 2 7 0.1 0.9 B a          ,   1 7 ,3 4 0.1 (0.8 0.9) B a          ,   1 7 , 4 4 0.1 (0.4 0.8 0.9) B a           .  ,2 6 B b  , B b ,3 4, B b ,4 3,  ,2 6 B c  , B c ,3 4, B c ,4 3,  ,2 5 B d  , B d ,3 4, B d ,4 3,  ,2 5 B e  , B e ,3 4, B e ,4 3.

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 c k , SC c( ) với mọi k 2, 3, 4, mục c không thể là tập con của một tập mục thường xuyên có trọng số. Còn lại

       

 

1 , , ,

Ca b d e .

Tính toán độ hỗ trợ có trọng số cho từng mục thuộc C1 thu được

4 Wsupport( ) 0.1 0.06 7 a    , Wsupport( ) 0.3 5 0.21 7 b    , 6 Wsupport( ) 0.8 0.68 7 d    , Wsupport( ) 0.9 7 0.90 7 e    .

Với wminsup = 1, tất cả bốn mục a, b, d và e đều không phải là tập mục thường xuyên có trọng số.

Sau vòng lặp 1, L1  . L    L1 .

3. Vòng lặp 2 (k = 2): Kết nối các tập mục trong C1 tạo ra các 2-tập mục tiềm năng, C2            a b, , a d, , a e, , b d, , b e, , d e, .

Một phần của tài liệu Khai phá luật kết hợp có trọng số trong cơ sở dữ liệu lớn (Trang 30 - 91)