KẾT LUẬN CHƢƠNG 1

Một phần của tài liệu nghiên cứu một số thuật toán khai phá tập mục thường xuyên và tập mục cổ phần cao trong cơ sở dữ liệu (Trang 40 - 80)

Chƣơng 1 trình bày chi tiết các khái niệm cơ bản, bài toán khai phá tập mục thƣờng xuyên và hai thuật toán cơ bản là thuật toán Apriori và FP-growth. Thuật toán Apriori tiêu biểu cho phƣơng pháp sinh ra các tập mục ứng viên rồi duyệt cơ sở dữ liệu kiểm tra độ hỗ trợ của chúng, thuật toán FP-growth đại diện cho phƣơng pháp không sinh ra các tập mục ứng viên mà nén cơ sở dữ liệu lên cấu trúc cây, sau đó khai phá cây này. Ở đây trình bày phƣơng pháp COFI-tree khai phá cây FP-tree để tìm các tập mục thƣờng xuyên thay cho phƣơng pháp FP-growth của J. Han.

Chƣơng hai của luận văn trình bày hai mô hình mở rộng của bài toán khai phá tập mục thƣờng xuyên là khai phá tập mục cổ phần cao, đề xuất hai thuật toán khai phá cho các mô hình này.

Chƣơng 2

KHAI PHÁ TẬP MỤC CỔ PHẦN CAO 2.1 GIỚI THIỆU

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, 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ầu của thự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 chiều hƣớng khác nhau. Năm 1997, Hilderman và các cộng sự đề xuất bài toán khai phá tập mục cổ phần cao. Trong mô hình này, 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

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. Các 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.

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 đề xuất thuật toán AFSM dựa trên ý tƣởng của thuật toán FSM và phƣơng pháp mới tỉa hiệu quả các tập ứng viên sử dụng tính chất 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.

2.2 BÀI TOÁN KHAI PHÁ TẬP MỤC CỔ PHẦN CAO

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={i1,i2,…,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 = {T1,T2,…,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

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

mv(ip,Tq) có giá trị là số tự nhiên(nhƣ số lƣợng đã bán của một mặt hàng trong giao tác), tức là mv(ip,Tq) = 0 nếu ip Tqmv(ip,Tq)  1 nếu 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à tmv(Tq)= ( , )

p q p q i 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, Tmv = ( , ) q p q p q T DB i T mv i T    

Tƣơng tự, với cơ sở dữ liệu con dbDB, Tmv(db)= ( , )

q p q p q T db i T mv i T     .

Ví dụ 2.1: Cho cơ sở dữ liệu bảng 2.1, mv(D, T01)=1, mv(C, T03)=3, tmv(T01)=7, tmv(T03)=10, Tmv(DB)=56. Bảng 2.1: 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 2 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, dbx = {Tq Tq DB X Tq}.

Đị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, Tq), là tổng giá trị của các mục iq trong

Tq thuộc X, imv(X, Tq)= ( , ) p p q i X 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à lmv(X) = ( , ) q x q T db imv X T   = ( , ) q x p p q T db i X 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)=30% tức là trong tổng số lƣợng hàng đã bán đƣợc thì số lƣợng các mặt hàng trong X chiếm 30%. (adsbygoogle = window.adsbygoogle || []).push({});

Đị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à

Ví dụ: Xét cơ sở dữ liệu cho ở bảng 2.1 và minShare = 30%. Bảng 2.2 là giá trị của các mục dữ liệu và cổ phần của chúng.

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

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à:

Lmv(X) = imv(X, T01) + imv(X, T03) + imv(X, T06) + imv(X, T07) = 3+10+6+8=27.

Đóng góp của tập mục X: Sh(X) = lmv X( ) Tmv =27

56=0,482 > 30%

Do đó, X = BCD là tập mục cổ phần cao.

Bảng 2.3 biểu diễn tất cả các tập mục cổ phần cao của cơ sở dữ liệu bảng 2.1.

Bảng 2.3: Các tập mục cổ phần cao của CSDL bảng 2.1.

Tập mục cổ

phần cao BC BD BCD

lmv(X) 21 22 27

Đị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), chứa tất cả các tập mục cổ phần cao, tức là tập HS = {XX 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 và 1.

 Tập mục cổ phần cao mang ý nghĩa khác với tập mục thƣờng xuyên. Tập mục thƣờng xuyên chỉ quan tâm đến số lần xuất hiện của tập mục trong các giao tác, trong khi đó tập mục cổ phần cao quan tâm đến tổng giá trị các mục dữ liệu của tập mục trong các giao tá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 2.4, tập mục X = ABCDGH chỉ xuất hiện trong giao tác T01, có cổ phần Sh(X)= 6

12 =50% và độ hỗ trợ sup(X) =

1

cũng lấy ngƣỡng độ hỗ trợ minsup=30% thì X không phải tập mục thƣờng xuyên.

Bảng 2.4: 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 2.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%. (adsbygoogle = window.adsbygoogle || []).push({});

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ố các 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.

2.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), đâ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.3.1 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. Ký hiệu:

 Giá trị cổ phần tối(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,

Mệnh đề 2.1: Cho minShare và k-tập mục X không là tập mục cổ phần cao. Nếu: lmv(X)+ lmv X( )

k x MV x (ML-k) < min_lmv

thì tất cả các tập cha của X không là tập mục cổ phần cao.

Đặt CF(X)= lmv(X)+ lmv X( )

k x MV x (ML-k),CF(X) gọi là hàm tới hạn.

Mệnh đề trên đảm bảo rằng: nếu X không là tập mục cổ phần cao và

CF(X) < min_lmv thì không có tập cha nào của X là tập mục cổ phần cao.

Thuật toán FSM dựa vào mệnh đề này để tỉa các tập ứng viên.

2.3.2 Thuật toán FSM

Nội dung cơ bản của thuật toán FSM 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 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 Cklà 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, mếu tập mục này có lmv(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%). (adsbygoogle = window.adsbygoogle || []).push({});

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(ip) < min_lmv then

8. C1:= C1\{ip};

10.for k:=2 to h 11. begin

12. for each Xp, Xq RCk-1

13. Ck:= Apriori-join(Xp, Xq);

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

15. Tính giá trị lmv(X) và CF(X) của các ứng viên X trong Ck; 16. for each X Ck 17. if lmv(X)min_lmv 18. Fk:= Fk{X} 19. else if CF(X) < min_lmv 20. Ck:= Ck – {X}; 21. RCk:= Ck; 22. end 23.return F =  Fk; 2.3.3 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 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.

Nhằm khắc phục những hạn chế của thuật toán FSM, luận văn đề xuất một thuật toán hiệu quả phát triển từ thuật toán FSM, gọi là thuật toán AFSM(Advanced FSM).

2.4 THUẬT TOÁN AFSM

Năm 2009, Nguyễn Huy Đức đã đề xuất thuật toán khai phá tập mục cổ phần cao hiệu quả phát triển từ thuật toán FSM gọi là thuật toán AFSM khắc phục những hạn chế của thuật toán khai phá tập mục cổ phần cao FSM.

2.4.1 Cơ sở lý thuyết của thuật toán AFSM

Nhƣ phần trên đã trình bày, ràng buộc cổ phần không có tính chất phản đơn điệu nhƣ tập mục thƣờng xuyên, đây chính là trở ngại của bài toán khai phá tập mục cổ phần cao. Để khắc phục điều này, luận văn đề 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” 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(Anti Monotone), do đó có thể sử dụng để tỉa tập mục ứng viên.

Định nghĩa 2.6: Cho tập mục X, dbx là tập các giao tác chứa X. Giá trị theo giao tác (transaction measure value) của tập mục X, ký hiệu tmv(X) = Tmv(dbx) =

( ) q x q T db tmv T   .

Ví dụ, xét cơ sở dữ liệu ở bảng 2.1, tmv(A) =tmv(T01) + tmv(T08) =7+6=13.

Định nghĩa 2.7: Tập mục X đƣợc gọi là tập mục cổ phần theo giao tác cao nếu

tmv(X) min_lmv. Trƣờng hợp ngƣợc lại, X đƣợc gọi là tập mục cổ phần theo

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu nghiên cứu một số thuật toán khai phá tập mục thường xuyên và tập mục cổ phần cao trong cơ sở dữ liệu (Trang 40 - 80)