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

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 37 - 44)

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

RCk vẫn còn lớn do giá trị hàm tới hạn CF(X) còn cao, chưa sát với giá trị thực của các tập mục trong RCk.

, gọi là thuật toán AFSM (Advanced FSM).

2.2. Bài toán tập mục cổ phần cao theo giao tác cao

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

2.2.2. Thuật toán AFSM khai phá tập mục cổ phần cao theo giao tác cao

2.2.2.1.Thuật toán AFSM

Thuật toán AFSM được tác giả Nguyễn Huy Đức đề xuất vào năm 2008 [6]. Thuật toán này được cải tiến từ một thuật toán khai phá tập mục cổ phần cao khá nhanh và hiệu quả là FSM nên được đặt tên là AFSM (Advanced FSM). FSM 53được giới thiệu vào năm 2005 bởi 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. FSM sửdụng hàm tới hạn CF(X) để rút gọn các tập mục ứng viên nhưng thực tế số các tập mục ứng viên vẫn còn lớn do giá trị hàm tới hạn CF(X) còn cao. TS Nguyễn Huy Đức đề xuất khái niệm “giá trị theo giao tác của tập mục”, “tập mục cổphần theo giao tác cao” (luận văn này đã giới thiệu trong mục 3.1.2.1) và chứng minh tập mục cổ phần theo giao tác cao có tính chất phản đơn điệu, do đó có thể sử dụng để tỉa các tập mục ứng viên. Tính chất này được phát biểu cụ thể như sau:Hai tập mục X, Y, Y  X, nếu Y là tập mục cổ phần theo giao tác thấp thì X cũng là tập mục cổ phần theo giao tác thấp.Tác giả cũng chứng minh: Nếu tập mục X là tập mục cổ phần cao thì X cũng là tập mục cổ phần theo giao tác cao.

Nhận xét: Từ hai tính chất trên, ta thấy rằng: điều kiện cần để tập mục X là tập mục cổ phần cao là nó phải là tập mục cổ phần theo giao tác cao và có thểthực hiện tỉa bớt tập ứng viên nhờ tính chất phản đơn điệu của các tập mục cổphần theo giao tác cao bằng cách loại bỏ các tập mục cổ phần có tập con là tập mục cổ phần theo giao tác thấp. Do đó, tác giả đề xuất cách tỉa các tập ứng viên trong thuật toán AFSM như sau: Ở bước lặp thứ k, nếu X là tập mục cổ phần theo giao tác thấp thì X là tập mục cổ phần thấp và mọi tập cha của X cũng là tập mục cổ phần theo giao tác thấp. Do đó ta có thể loại bỏ tập ứng viên X, từ bước (k+1) trở đi không cần sinh ra các tập cha của X nữa.

Như vậy điều kiện để tỉa các ứng viên cho AFSM là tmv(X)  min_lmv. Trong [2], TS Nguyễn Huy Đức đã chứng minh điều kiện tỉa của AFSM

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

hiệu quả hơn so với hàm tỉa CF(X) của FSM. Nội dung cơ bản của thuật toán AFSM có thể tóm tắt như sau: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 điều kiện tỉa tmv(X) min_lmv, Fk lưu các tập mục cổ phần cao nhận được. Ban đầu cho 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 CSDL, tính giá trị (lmv) của mỗi mục dữ liệu để tìm ra các tập mục cổ phần cao 1 phần tử, tính độ hỗ trợ theo giao tác (tmv) của mỗi mục dữ liệu và lưu vào RC1 những mục dữ liệu x thỏa mãn tmv(x) ≥ min_lmv. Trong 54 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 kết nối (k-1)-tập mục trong RC k-1 nếu chúng có (k-2) mục đầu giống nhau và nhận được ktập mục, kết nạp vào tập Ck (giả sử các mục CSDL đã đượ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 đều phải thuộc RCk-1. Tiếp theo, thuật toán duyệt CSDL để tìm tập mục cổ phần cao. Với mỗi tập X trong Ck, nếu tập này có tmv(X) ≥ min_lmv, tập này được thêm vào RCk và được xét tiếp lmv(X) nếu lmv(X) ≥ min_lmv thì X được thêm vào Fk. Ngược lại nếu

tmv(X)  min_lmv, X là tập mục cổ phần trong giao tác thấp, loại bỏ khỏi tập ứng viên, không cần xét nữa. Quá trình trên cứ lặp lại 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 AFSM như sau:

Dựa trên ý tưởng của thuật toán FSM và cơ sở lý thuyết trình bày ở phần trên, luận văn trình bày thuật toán mới AFSM như sau:

- Giữ nguyên các bước của thuật toán FSM. - Ở bước lặp thứ k :

- - - RCk 1

k

C X Ck nếu X

- RCk 1.

Sau khi duyệt cơ sở dữ liệu để tính giá trị lmv X( ) và tmv X( ) viên X Ck, thuật toán tỉa ứng viên X Ck nếu tmv X( ) min lmv_ .

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

( )

lmv X , nếu lmv X( ) min lmv_ thì X là tập mục cổ phần cao, X được kết nạp vào tập HSk.

Ở đây có một thay đổi so với thuật toán FSM là kiểm tra điều kiện tỉa

( ) _

tmv X min lmv trước, nếu X không bị tỉa mới xét xem nó có phải tập mục cổ phần cao không.

- Có thể cải tiến bước sinh tập ứng viên Ck:

k

C :

-Force, sinh ra mọi tập mục ứng viên độ dài k ;

k-1 1

F ×F, nối tập mục độ dài (k-1) với một mục đơn để được tập mục độ dài k;

k-1 k-1

F ×F , nối hai tập mục độ dài (k-1) nếu chúng có (k-2) mục đầu giống nhau để được tập mục độ dài k;

Trong [35], tác giả cải tiến phương pháp sinh tập ứng viên Ck theo phương pháp F ×Fk-1 1, nối mỗi (k-1)-tập mục trong RCk-1 với một mục đơn trong RC1 để được

tập Ck F ×Fk-1 k-1

. Thuật toán AFSM sử dụng cách sinh tập ứng viên theo phương pháp F ×Fk-1 k-1, tức là nối các cặp tập mục độ dài (k-1) trong RCk 1

nếu chúng có (k-2) mục đầu giống nhau.

sau:

Thuật toán AFSM( )

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

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

Method:

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

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

3. tính lmv(ip)tmv i( )p cho ip C1 ; 4. for each ip C1

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

5. if tmv i( )p min_lmv then

6. C1: C1\ ip

7. else if lmv(ip) ≥min_lmv then

8. HS1: HS1 ip ; 9. RC1: C1; 10. repeat 11. :k k 1; 12. for each Xp, XqRCk-1 13. Ck :=Apriori-gen(Xp, Xq);

14. for eachT DB // duyệt cơ sở dữ liệu DB

15. tính lmv(X)tmv X( ) cho X Ck; 16. for eachX Ck

17. if tmv X( ) min_lmv then 18. Ck : Ck \ X

19. else if lmv(X)≥min_lmv then 20. HSk : HSk X ;

21. RCk : C k; 22. until Ck ;

23. return HS HSk;

Ví dụ áp dụng minh họa thuật toán AFSM

Cho cơ sở dữ liệu giao tác là bảng 3.1, minShare=30%. Thuật toán AFSM thực hiện việc phát hiện các tập mục cổ phần cao như sau:

Ta có: Tmv=56, MV=4, ML=7, min_lmv=minShare x Tmv= 30% x 56= 16,8.

Bước k=1: Thực hiện dòng lệnh 1 cho kết quả HS1 ;C1 A B C D E F G H, , , , , , , . Thực hiện dòng lệnh 2-3 ta tính được lmv của các mục dữ liệu. Bảng 3.7 biểu diễn các kết quả tính toán.

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 37 - 44)