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

Một phần của tài liệu 27888 (Trang 58 - 65)

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à đặc điểm khó khăn của bài toán khai phá tập mục cổ phần cao. Để khắc phục khó khăn này [1] đã đề xuất khái niệm “Giá trị

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

theo giao tác của tập mục”, “Tập mục cổ phần theo giao tác cao” đồng thời chứng minh đƣợc 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ính chất Apriori để tỉa các tập mục ứng viên.

Định nghĩa 3.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), là tổng giá trị của tất cả các giao tác chứa tập mục X, tức là

). ( ) ( ) ( q db T x tmv T db Tmv X tmv x q     Ví dụ xét CSDL ở bảng 3.7, tmv(A) = tmv(01) + tmv(04) + tmv(05) = 6 + 8 + 12 = 26

Định nghĩa 3.7: Tập mục X đƣợc gọi là tập mục 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 giao tác thấp.

Ví dụ: Xét CSDL ở bảng 3.7 với minShare = 30%, min_lmv=14,4

ta có tmv(A) = 26, tmv(ABC) = 6, vậy tập mục A là tập mục cổ phần theo giao tác cao còn tập mục ABC là tập mục cổ phần theo giao tác thấp.

Định lý 3.1: Tập mục cổ phần theo giao tác cao có tính chất phản đơn điệu (Anti Monotone)

Xét hai tập mục X, Y sao cho 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.

Ta có Y X nên dbydbx, do đó tmv(Y)=Tmv(dbx)=tmv(X).

Nếu Y là tập mục cổ phần theo giao tác thấp, tức là tmv(Y)<min_lmv thì

tmv(X)tmv(Y)<min_lmv, X cũng là tập mục cổ phần theo giao tác thấp.

Ta có các tập mục cổ phần theo giao tác cao có tính chất phản đơn điệu nhƣ tính chất của tập mục thƣờng xuyên, do đó có thể sử dụng tính chất này để tỉa các ứng viên khi khai phá.

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 lý 3.2: 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

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

) ( ) , ( ) , ( ) , ( ) (X imv X T mv i T mv i T tmv X lmv x q p q x q p x q T db i T q p db T i X q p db T q              

Do đó nếu X là tập mục cổ phần cao tức là lmv(X) ≥ min_lmv, thì X cũng là tập mục cổ phần theo giao tác cao vì tmv(X) ≥ lmv(X) ≥ min_lmv

Từ định lý 3.2 có thể suy ra các tập mục cổ phần cao chứa trong tập các tập mục cổ phần theo giao tác cao. Theo định lý 3.1, các tập mục cổ phần theo giao tác cao có tính chất phản đơn điệu nhƣ tập mục thƣờng xuyên, do đó ta có thể áp dụng một số thuật toán khai phá tập mục thƣờng xuyên đã có, thay số lần xuất hiện của tập mục bởi giá trị theo giao tác của tập mục thì sẽ nhận đƣợc kết quả khai phá là các tập mục cổ phần theo giao tác cao. Khi đó ta chỉ cần duyệt lại cơ sở dữ liệu để tính giá trị đóng góp thực sự của tập mục cổ phần theo giao tác cao để nhận đƣợc các tập mục cổ phần cao.

Định lý 3.2 cũng cho ta một điều kiện cần để X là tập mục cổ phần cao, đó là X phải là tập mục cổ phần theo giao tác cao.

Áp dụng định lý 3.1 và định lý 3.2 để 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 thuật toán AFSM là

tmv(X) < min_lmv.

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

3.6.2 Thuật toán AFSM

Dựa trên ý tƣởng thuật toán FSM

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

Output: Tập HS gồm các tập mục cổ phần cao. Method: (adsbygoogle = window.adsbygoogle || []).push({});

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

2. for each TDB //duyệt cơ sở dữ liệu DB 3. tính lmv(ip) và tmv(ip) cho ipC1;

4. for each ipC1

5. if tmv(ip)<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, XqRCk-1 13. Ck:=Apriori-gen(Xp,Xq);

14. for each TDB //duyệt cơ sở dữ liệu DB 15. tính lmv(X) và tmv(X) cho XCk;

16. for each XCk

17. if tmv(X)<min_lmv then

18. Ck:=Ck\{X}

19. else if lmv(X)≥min_lmv then

20. HSk:=HSs{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

22. until Ck=; 23. return HS=HSk;

Ví dụ minh hoạ thuật toán AFSM

Cho CSDL giao tác là bảng 3.10, minShare=50%. 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=33, min_lmv=minShare x Tmv = 50% x 33=16.5

- Với k=1: Ta có HS1 = ; C1 = {A, B, C, D, E}. Thực hiện duyệt kết quả tính toán ta đƣợc kết quả :

A B C D E

lmv(X) 5 3 9 10 6

tmv(X) 20 10 28 26 23

Bảng 3.14: Các giá trị lmv và hàm tới hạn với k=1

Các giá trị lmv đều nhỏ hơn min_lmv nên không có mục nào là tập mục cổ phần cao.

Ta có db{B}={T01,T04}

tmv(B)=tmv(T01) + tmv(T04) = 5 + 5 = 10 < min_lmv do đó tập mục B bị tỉa khỏi C1 C1 = {A, C, D, E}

RC1 = C1 = { A, C, D, E}

Với k = 2: Nối RC1 với RC1 ta đƣợc các tập mục có độ dài bằng 2. Thực hiện duyệt kết quả tính toán ta đƣợc kết quả:

AC AD AE CD CE DE

lmv 5 7 6 17 12 14

tmv(X) 15 15 15 26 23 23

Bảng 3.15: Các giá trị lmv và hàm tới hạn với k=2 (adsbygoogle = window.adsbygoogle || []).push({});

Ta có tmv(CD) = 26 > min_lmvlmv(CD) = 17 > min_lmv do đó CD là tập mục cổ phần cao, HS2 = {CD}; Có 03 tập mục bị tỉa là AC, AD, AE

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

RC2 = C2 = {CD, CE, DE}

Với k=3: Nối RC2 với RC2 ta đƣợc các tập mục có độ dài bằng 3. Thực hiện duyệt kết quả tính toán ta đƣợc kết quả

CDE

lmv 20

tmv(X) 22

Bảng 3.16: Các giá trị lmv và hàm tới hạn với k=3

Phát hiện đƣợc một tập mục cổ phần cao là CDE, HS3={CDE}, có 2 tập mục bị tỉa là ACD và ADE, C3={ACE, CDE}

RC3=C3={ACE, CDE}

Với k=4: Nối RC3 với RC3 ta đƣợc C4 = , thuật toán dừng. Kết quả tìm đƣợc các tập mục cổ phần cao:

HS = HS1  HS2  HS3 = {CD, CDE}

Không gian tìm kiếm và kết quả thực hiện của thuật toán AFSM đƣợc minh hoạ tại hình 3.12, mỗi hình vuông biểu diễn tập mục X, lmv(X)

tmv(X). Những hình vuông bị gạch biểu diễn tập mục bị tỉa, hình vuông đƣợc tô nền biểu diễn tập mục cổ phần cao.

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

Hình 3.12: Không gian tìm kiếm tập mục cổ phần cao theo thuật toán AFSM

Nhận xét:

- Thuật toán AFSM là thuật toán hiệu quả để tìm ra tất cả các tập mục cổ phần cao.

- Thuật toán AFSM thu gọn đƣợc không gian tìm kiếm nhờ phƣơng pháp tỉa ứng viên hiệu quả dựa trên tính phản đơn điệu của tập mục cổ phần theo giao tác cao và giá trị của hàm tới hạn tmv(X), điều này làm cho thuật toán đƣợc thu gọn không gian tìm kiếm ngay từ lần lặp đầu, từ đó ảnh hƣởng đến các lần lặp sau, làm cho RC1 có kích thƣớc nhỏ. CDE 20/22 A 5/20 B 3/10 C 9/28 D 10/26 E 6/23 AC 5/15 AD 7/15 AE 6/15 CD 17/26 CE 12/23 DE 14/23

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

Chƣơng 4: XÂY DỰNG ỨNG DỤNG KHAI PHÁ TẬP MỤC CỔ PHẦN CAO - THỬ NGHIỆM TRÊN CSDL BÁN HÀNG

Nhƣ đã trình bày tại chƣơng 2 và chƣơng 3 khai phá tập mục thƣờng xuyên và luật kết hợp mở rộng là khai phá tập mục cổ phần cao, giúp cho các tổ chức, cá nhân có những quyết định chính xác nhất trong hoạt động kinh doanh, quản lý cũng nhƣ trong khoa học. Bài toán khai phá tập mục cổ phần cao đã phần nào giải quyết đƣợc những vấn đề thực tiễn, đánh giá đƣợc sự đóng góp của một tập mục trong CSDL. Chính vì vậy trong chƣơng này xây dựng ứng dụng thử nghiệm khai phá tập mục cổ phần cao, thử nghiệm trên CSDL bán hàng.

Một phần của tài liệu 27888 (Trang 58 - 65)