Hình 1.3. Cây COFI-tree của mục D

Một phần của tài liệu Khai thác tập mục cổ phần theo giao tác cao Nông Thị Ninh. (Trang 29 - 61)

(D2, B2, C8), (D1, B2, A3), (D2, C8), các đường đi này xác định các mẫu dữ liệu với độ hỗ trợ bằng độ hỗ trợ của nút đầu D, tức là: DBC2, DBA1, DC2. Xây dựng cây COFI-tree từ các mẫu này

Khai phá cây D-COFI-tree: xét lần lượt các mục dữ liệu trong bảng đầu mục bắt đầu từ mục có độ hỗ trợ lớn nhất là C, cuối cùng đến độ hỗ trợ nhỏ nhất là A. Mục C có 2 nhánh trên cây là (C2, B3, D5) và (C2, D5). Nhánh thứ nhất tạo mẫu CBD2 với độ hỗ trợ là s-p = 2-0 = 2 (s và p là hai biến thuộc nút C). Thuật toán tăng giá trị của biến p của tất cả các nút trên đường đi này lên 2. Mẫu CBD2 và tất cả các mẫu con chứa D của nó được cất vào danh sách ứng viên của mục D là {CBD2, CD2, BD2}

Nhánh thứ hai nhận được mẫu CD2 và kết nạp nó vào danh sách ứng viên. Trong danh sách ứng viên đã có mẫu CD2 nên chỉ điều chỉnh độ hỗ trợ của mẫu này thành CD4 và danh sách ứng viên trở thành {CBD2, CD4, BD2}. Tăng biến p của các nút trên đường đi này lên 2 đơn vị.

D ( 5 0 ) B ( 3 0 ) C ( 2 0 ) A ( 1 0 ) C ( 2 0 ) Mục DL Độ hỗ trợ Con trỏ B 3 A 1 C 4

Số hóa bởi Trung tâm Học liệu 30 http://www.lrc-tnu.edu.vn/

Hình 1.4.. Các bước khai phá cây D-COFI-tree

Xét tiếp mục B có một nhánh BD nên sinh ra mẫu BD1, kết nạp vào danh sách ứng viên được {CBD2, CD4, BD3}

Mục A còn lại trong bảng đầu mục bỏ qua vì có độ hỗ trợ nhỏ hơn minsup

Thuật toán duyệt qua các mẫu trong danh sách ứng viên, lại các mẫu không thỏa mãn ngưỡng độ hỗ trợ và nhận được mẫu thường xuyên là CD4 và BD3. Cây

D ( 5 2 ) B ( 3 2 ) C ( 2 2 ) Mẫu: CBD:2 Các ứng viên: CBD:2, CD:2, BD:2 Bước 1 B A C D ( 5 0 ) B ( 3 0 ) C ( 2 0 ) A ( 1 0 ) C ( 2 0 ) D ( 5 4 ) C ( 2 2 ) Mẫu: CD:2 Các ứng viên: CBD:2, CD:4, BD:2 Bước 2 B A C D ( 5 2 ) B ( 3 2 ) C ( 2 2 ) A ( 1 0 ) C ( 2 2 ) D ( 5 5 ) B ( 3 3 ) Mẫu: BD:1 Các ứng viên: CBD:2, CD:2, BD:3 Bước 3 B A C D ( 5 4 ) B ( 3 2 ) C ( 2 2 ) A ( 1 0 ) C ( 2 2 ) Các ứng viên: CBD:2, CD:4, BD:3 Bước 4 B A C D ( 5 5 ) B ( 3 3 ) C ( 2 2 ) A ( 1 1 ) C ( 2 2 )

Số hóa bởi Trung tâm Học liệu 31 http://www.lrc-tnu.edu.vn/

D-COFI-tree được loại bỏ và tiếp tục xây dựng cây COFI-tree cho mục dữ liệu tiếp theo.

Ngoài ra còn rất nhiều các thuật toán khai phá tập mục thường xuyên khác có thể nêu tên như: Pincer-Search, Max-Miner, DepthProject, MAFIA, MFI, GenMax, v.v… mà trong khuôn khổ luận văn này chưa có điều kiện xem xét hết.

Số hóa bởi Trung tâm Học liệu 32 http://www.lrc-tnu.edu.vn/

Chƣơng 2

KHAI PHÁ TẬP MỤC CỔ PHẦN CAO 2.1. Khái niệm tập mục cổ phần cao

2.1.1. Một số thuật ngữ

Bài toán cơ bản (hay còn gọi là bài toán nhị phân) khai phá luật kết hợp do Agrawal, T.Imielinski và A. N. Swami đề xuất và nghiên cứu lần đầu tiên vào năm 1993 [8], mục tiêu của bài toán là phát hiện các tập mục thường xuyên, từ đó tạo các luật kết hợp. Trong mô hình của bài toán nhị phân này, giá trị của mỗi mục dữ liệu trong một giao tác là 0 hoặc 1, tức là chỉ quan tâm mục dữ liệu có xuất hiện trong giao tác hay không. Bài toán cơ bản này có nhiều ứng dụng, tuy vậy, do tập mục thường xuyên chỉ mang ngữ nghĩa thống kê nên nó chỉ đáp ứng được phần nào nhu cầ ực tiễn.

Nhằm khắc phục hạn chế của bài toán cơ bản khai phá luật kết hợp, nhiều nhà nghiên cứu đã mở rộng bài toán theo nhiều hướng khác nh

, giá trị của mục dữ liệu trong giao tác là một số, số đó có thể là số nguyên (như số lượng đã bán của mặt hàng). Cổ phần (hay đóng góp) của một tập mục là số đo tỷ lệ đóng góp của tập mục trong cơ sở dữ liệu. Khai phá tập mục cổ phần cao là khám phá tất cả các tập mục có cổ phần không nhỏ hơn ngưỡng quy định bởi người sử dụng.

Trong bài toán cơ bản, các thuật toán khám phá được xây dựng theo phương pháp tìm kiếm từng bước. Cơ sở của các thuật toán là tính chất Apriori của tập mục thường xuyên (hay còn gọi là tính chất phản đơn điệu – Anti monotone). Trong mô hình khai phá tập mục cổ phần cao, tính chất này không còn đúng nữa. Vì vậy việc rút gọn không gian tìm kiếm không thể thực hiện được như đối với khai phá tập mục thường xuyên. Một số tác giả đã đề nghị một số thuật toán khai phá tập mục cổ phần cao như các thuật toán ZP, ZSP, SIP, FSM,.... Trong đó, thuật toán FSM là một thuật toán nhanh, cho phép khám phá tất cả các tập mục cổ phần cao trong cơ sở dữ liệu giao tác cho trước.

Số hóa bởi Trung tâm Học liệu 33 http://www.lrc-tnu.edu.vn/

Chương này trình bày 5 phần. Sau phần giới thiệu, phần hai trình bày các khái niệm cơ bản về tập mục cổ phần cao và phát biểu bài toán khai phá nó. Phần ba tóm tắt nội dung và phân tích ưu nhược điểm của thuật toán FSM, một thuật toán nhanh cho phép khám phá tất cả các tập mục cổ phần cao. Phần bốn đề xuất khái niệm “tập mục cổ phần theo giao tác cao” và chứng minh nó có tính chất phản đơn điệu (Anti Monotone). Luận văn trình

phản đơn điệu của tập mục cổ phần theo giao tác cao. Phần năm trình bày đánh giá thuật toán và kết luận dựa trên việc phân tích thuật toán và thực nghiệm.

2.1.2. Bài toán khai phá tập mục cổ phần cao và thuật toán FSM

Trước hết ta nêu định nghĩa của một số thuật ngữ:

Cho tập các mục (item) I i i1, ,...,2 in . Một giao tác (transaction) T là một tập con của I, T I. Cơ sở dữ liệu là một tập các giao tác DB T T1, 2,...,Tm . Mỗi giao tác được gán một định danh TID. Một tập mục con X I, gồm k mục phân biệt được gọi là một k-tập mục. Giao tác T gọi là chứa tập mục X nếu X T .

Ta ký hiệu giá trị của mục ip (measure value) trong giao tác Tqmv i T( ,p q),

( ,p q)

mv i T

, mv i T( ,p q) 0 ip Tq mv i T( ,p q) 1 ip Tq.

Giá trị của giao tác Tq (transaction measure value) là tổng giá trị các mục dữ liệu trong giao tác, ký hiệu là tmv(Tq), tức là

p q

q p q

i T

tmv(T ) = mv(i ,T ). Tổng giá trị

(total measure value) các mục dữ liệu trong cơ sở dữ liệu DB, ký hiệu là Tmv,

p p i (i , ) q q q T DB T

Tmv mv T . Tương tự, với cơ sở dữ liệu con db DB,

p p i ( ) (i , ) q q q T db T Tmv db mv T .

Ví dụ 3.1: Cho cơ sở dữ liệu bảng 3.1, mv(D,T01)=1, mv(C,T03)=3,

Số hóa bởi Trung tâm Học liệu 34 http://www.lrc-tnu.edu.vn/ Bảng 8. Cơ sở dữ liệu ví dụ TID A B C D E F G H tmv T01 1 1 1 1 1 0 1 1 7 T02 0 0 0 0 0 4 0 3 7 T03 0 4 3 3 0 0 0 0 10 T04 0 0 4 0 1 0 0 0 5 T05 0 3 0 2 0 0 0 0 5 T06 0 3 2 1 0 0 0 0 6 T07 0 3 4 1 2 0 0 0 10 T08 4 0 0 0 0 1 1 0 6 lmv 5 14 14 8 4 5 2 4 56

Ký hiệu dbX là tập các giao tác chứa tập mục X,

|

X q q q

db T T DB X T .

Định nghĩa 2.1. Cho giao tác Tq chứa tập mục X. Giá trị của tập mục X

(itemset measure value) trong Tq, ký hiệu imv X T , , q là tổng giá trị của các mục ip

trong Tq thuộc X, ( , ) ( , )

p

q p q

i X

imv X T mv i T , với X Tq.

Định nghĩa 2.2. Cho tập mục X, dbX là tập các giao tác chứa X. Giá trị của tập mục X (local measure value), ký hiệu lmv(X), là tổng giá trị của tập mục X tại các giao tác trong dbX, tức là ( ) ( , ) ( , )

q X q X p

q p q

T db T db i X

lmv X imv X T mv i T .

Định nghĩa 2.3. Cổ phần (share value) hay đóng góp của tập mục X , ký hiệu là Sh(X), là tỉ số giữa giá trị của tập mục X và tổng giá trị của tất cả các mục trong cơ sở dữ liệu, tức là: Sh X lmv X( )

Tmv .

Sh(X) cho biết trong tổng giá trị của tất cả các mục dữ liệu trong cơ sở dữ liệu thì giá trị của tập X chiếm bao nhiêu phần trăm. Ví dụ, với CSDL giao tác bán hàng, Sh(X)

Số hóa bởi Trung tâm Học liệu 35 http://www.lrc-tnu.edu.vn/

Định nghĩa 2.4. Cho ngưỡng cổ phần (minimum share) minShare s% và tập mục X. X được gọi là tập mục cổ phần cao nếu Sh(X) minShare. Trường hợp ngược lại, X được gọi là tập mục cổ phần thấp.

Ký hiệu giá trị cổ phần tối thiểu (minimum local measure value) là min_lmv, min_lmv= minShare x Tmv, có thể thay điều kiện Sh(X) minShare trong định nghĩa 3.4 bởi điều kiện lmv X min lmv_ .

Ví dụ: Xét cơ sở dữ liệu và minShare=30% .

và cổ phần của chúng.

Bảng 9. Giá trị lmv và cổ phần của các mục dữ liệu trong CSDL bảng 8

Mục dữ liệu A B C D E F G H Tổng số Lmv (ip) 5 14 14 8 4 5 2 4 56 Sh (ip) 8,9% 25,0% 25,0% 14,3% 7,1% 8,9% 3,6% 7,1% 100% Xét X BCD, giá trị của tập mục X là: , 01 ( , 03) ( , 06) ( , 07) =3+10+6+8=27.

lmv X imv X T imv X T imv X T imv X T

Đóng góp của tập mục X: 27 = = 0,482 > 30% 56 lmv X Sh X Tmv Do đó, X BCD là tập mục cổ phần cao.

Số hóa bởi Trung tâm Học liệu 36 http://www.lrc-tnu.edu.vn/ Bảng 10: Các tập mục cổ phần cao của CSDL bảng 8 Tập mục cổ phần cao BC BD BCD lmv(X) 21 22 27 Sh(X) 37,5% 39,3% 48,2%

Định nghĩa 2.5: Cho CSDL giao tác DB và ràng buộc cổ phần minShare, khai phá tập mục cổ phần cao là tìm tập HS (High Share),

cổ phần cao, tức là tập HS X X| I Sh X, ( ) minShare . Nhận xét

- Dữ liệu cho khai phá tập mục thường xuyên là trường hợp đặc biệt của dữ liệu cho khai phá cổ phần cao khi tất cả các mục dữ liệu trong các giao tác có giá trị là 0 hoặc 1.

- Tập mục cổ phần cao mang ý nghĩa khác

. Tập mục thường xuyên quan tâm xem nhóm hàng X (tập mục) có bán được hay không mà bỏ qua các tham số rất quan trọng là tổng số lượng hàng bán được hoặc tổng lợi nhuận mang lại,…Với ngưỡng minShare cho trước, một tập mục X có thể chỉ chứa trong một số ít giao tác của CSDL nhưng lại là tập mục cổ phần cao nếu cổ phần Sh(X) của nó vượt ngưỡng minShare. Kể cả khi khai phá trên tập dữ liệu có giá trị nhị phân ( 0 hoặc 1) thì khai phá tập mục cổ phần cao cũng cho kết quả khác với khai phá tập mục thường xuyên. Chẳng hạn, với CSDL cho trong bảng 3.4, tập mục X ABCDGH chỉ xuất hiện trong giao tác T01, có cổ

phần ( ) 6 50% 12 Sh X và độ hỗ trợ 1 sup( ) 20% 5 X . Nếu ngưỡng cổ phần

minShare=30% thì X là tập mục cổ phần cao, cũng lấy ngưỡng độ hỗ trợ

Số hóa bởi Trung tâm Học liệu 37 http://www.lrc-tnu.edu.vn/

Bảng 11: CSDL minh họa ngữ nghĩa của tập mục cổ phần cao

TID A B C D E F G H tmv T01 1 1 1 1 0 0 1 1 6 T02 1 0 0 0 0 0 0 0 1 T03 1 0 0 0 1 0 0 0 2 T04 0 1 0 0 0 1 0 0 2 T05 0 0 0 1 0 0 0 0 1 lmv 3 2 1 2 1 1 1 1 12

- Tính chất cơ bản được khai thác để xây dựng các thuật toán khai phá tập mục thường xuyên là tính chất Apriori. Dễ thấy, tính chất này không còn đúng với ràng buộc cổ phần.

Ví dụ: Xét cơ sở dữ liệu ở bảng 3.1 với minShare=30%, lmv(BCD)=27,

lmv(BC)=21, lmv(B)=14, Sh(BCD)=27/56=48,2%, Sh(BC)=21/56=37,5%,

Sh(B)=14/56=25,0%. Như vậy, BCD là tập mục cổ phần cao, tập con của nó BC là tập mục cổ phần cao nhưng tập con khác B lại không phải.

Do đó không thể áp dụng các thủ pháp sử dụng tính chất Apriori vào việc khai phá tập mục cổ phần cao. Đã có nhiều công trình nghiên cứu các thuật toán tìm tập mục cổ phần cao, các tác giả đã đề xuất một số thuật toán như thuật toán ZP, ZSP, SIP, FSM,.... Trong số các thuật toán đó, thuật toán FSM là một thuật toán hiệu quả. Phần tiếp theo dưới đây trình bày nội dung cơ bản của thuật toán FSM cùng một số nhận xét.

Số hóa bởi Trung tâm Học liệu 38 http://www.lrc-tnu.edu.vn/

2.1.3 Thuật toán FSM

Năm 2005, Yu-Chiang Li và đồng nghiệp tại Khoa Khoa học máy tính và Kỹ thuật thông tin của Đại học Chung Chen, Đài Loan giới thiệu thuật toán FSM (Fast Share Measure) [34], đây là một thuật toán hiệu quả tìm ra tất cả các tập mục cổ phần cao. Thay vì khai thác tính chất Apriori, thuật toán FSM sử dụng một số tính chất của tập mục cổ phần cao để rút gọn các tập mục ứng viên.

2.1.4. Cơ sở lý thuyết của thuật toán FSM

Cơ sở lý thuyết của thuật toán được thể hiện trong mệnh đề sau (theo [34]). Ký hiệu:

Giá trị cổ phần tối thiểu(minimum local measure value) là min_lmv, min_lmv= minShare x Tmv;

Độ dài cực đại (maximum length) của các giao tác trong cơ sở dữ liệu là

ML,

ML max Tq |Tq DB ;

Giá trị cực đại (maximum value) của tất cả các mục trong cơ sở dữ liệu là

MV, max ( ,p q) | p q q MV mv i T i T T DB . Mệnh đề 2.1: Cho minShare và k-tập mục X . Nếu: ( ) ( ) lmv X ( ) min_ lmv X MV ML k lmv k thì tất cả các tập cha của X . Đặt CF X( ) lmv X( ) lmv X( ) MV (ML k) k , CF(X) gọi là hàm tới hạn.

Mệnh đề trên đảm bảo rằng: nếu X

( )

CF X min_lmv thì không có tập cha nào của X .

.

2.1.5. Thuật toán FSM

Số hóa bởi Trung tâm Học liệu 39 http://www.lrc-tnu.edu.vn/

Thuật toán duyệt nhiều lần CSDL, ở lần duyệt thứ k, Ck lưu các tập mục ứng viên, RCk lưu các tập mục nhận được sau khi kiểm tra hàm tới hạn CF, Fk lưu các tập mục cổ phần cao nhận được.

Giống như thuật toán Apriori, ban đầu mỗi mục dữ liệu là một ứng viên. Trong lần duyệt thứ nhất, thuật toán duyệt cơ sở dữ liệu, tính giá trị của mỗi mục dữ liệu. Mỗi ứng viên 1- tập mục X sẽ bị tỉa nếu CF(X)< min_lmv. Trong mỗi lần duyệt tiếp theo, các tập mục ứng viên được tạo ra bằng cách nối hai (k-1)-tập mục trong

RCk-1 nếu chúng có (k-2) mục đầu giống nhau và nhận được k-tập mục, kết nạp vào tập Ck (giả sử các mục của cơ sở dữ liệu đã được sắp thứ tự). Tất cả k tập con với độ dài (k-1) của mỗi k-tập mục trong Ck là phải thuộc RCk-1, nếu không k-tập mục này sẽ bị tỉa. Sau khi Ck được sinh ra, xóa tập RCk-1. Tiếp theo, thuật toán duyệt cơ sở dữ liệu để tìm tập mục cổ phần cao. Với mỗi tập mục X trong Ck, nếu tập mục này có

_

lmv X min lmv thì X là tập mục cổ phần cao và được thêm vào Fk; Ngược lại, xét hàm tới hạn CF, nếu CF X( ) min_lmv thì tập ứng viên X bị loại khỏi RCk. Quá trình trên cứ lặp cho đến khi không có tập mục ứng viên nào được sinh ra.

Thủ tục mô tả thuật toán FSM như sau:

Thuật toán FSM

Input: Cơ sở dữ liệu giao tác DB, ngưỡng cổ phần minShare (s%).

Output: Tập F gồm các tập mục cổ phần cao. Method:

1. k:=1, F1:= , C1:=I;

2. for each T DB // duyệt cơ sở dữ liệu DB

3. tính giá trị lmv(ip) và CF(ip) của các mục ip trong C1; 4. for each ip C1

5. if lmv(ip) ≥min_lmv then 6. F1: F1 ip

7. else if CF i( )p min_lmv then 8. C1: C1 \ ip ;

Số hóa bởi Trung tâm Học liệu 40 http://www.lrc-tnu.edu.vn/ 9. RC1 : C1; 11. for k:=2 to h 12. begin 13. for each Xp, XqRCk-1 14. Ck :=Apriori-join(Xp, Xq);

15. for each TDB // duyệt cơ sở dữ liệu DB

16. tính giá trị lmv(X) và CF(X) của các ứng viên X trong Ck; 17. for each XCk 18. if lmv(X)≥ min_lmv 19. Fk : Fk X 20. else if CF(X)<min_lmv 21. Ck : Ck - X ; 22. RCk:= Ck; 22. end 23. return FFk ; 2.1.6. Nhận xét thuật toán FSM

Thuật toán có ưu điểm nổi bật là tương đối dễ hiểu, sau khi thực hiện tìm được tập F chứa tất cả các tập mục cổ phần cao. Đây là một thuật toán tốt để khai phá tập mục cổ phần cao.

Tuy vậy, thuật toán còn một số hạn chế. Thuật toán sử dụng hàm tới hạn

CF(X) để thu gọn tập các tập mục ứng viên nhưng thực tế số các tập mục của tập

Một phần của tài liệu Khai thác tập mục cổ phần theo giao tác cao Nông Thị Ninh. (Trang 29 - 61)