Thuật toán MSR_ImpFull 37

Một phần của tài liệu Khai thác luật tuần tự trên cơ sở dữ liệu chuỗi (Trang 44 - 47)

Thuật toán MSR_ImpFull được trình bày trong hình 3.1, gồm các bước cơ bản sau:

• Trước hết tìm tập mẫu tuần tự gồm những mẫu có độ hỗ trợ lớn hơn hoặc bằng minSup, sử dụng thuật toán khai thác mẫu tuần tự tùy chọn trong số các phương pháp đã có (dòng 1).

• Sắp xếp tập mẫu tuần tự tăng dần theo kích thước của mẫu (dòng 2).

• Với mỗi mẫu f trong tập mẫu tuần tự, duyệt các mẫu đứng sau f và kiểm tra liệu f là tiền tố của những mẫu nào. Nếu mẫu b bất kỳ đứng sau f có chứa f như là tiền tố thì sinh luật fpost, trong đó post là hậu tố của mẫu b đối với tiền tố f. Tính độ tin cậy của luật, nếu thỏa minConf thì xuất luật tìm được (dòng 3-9).

Thuật toán MSR_ImpFull cải tiến thuật toán Full như sau: Chính vì các mẫu tuần tựđược sắp xếp tăng dần theo kích thước của chúng nên với mẫu X bất kỳ, chỉ

những mẫu đứng trước X mới có khả năng là tiền tố của X. Do đó, với mỗi mẫu tuần tự f trong tập mẫu tuần tự, thay vì phải sinh chuỗi tiền tố từ mẫu f đã có và ứng với mỗi tiền tố phải duyệt toàn bộ tập mẫu như thuật toán Full, MSR_ImpFull chỉ duyệt các mẫu đứng sau f và kiểm tra liệu f là tiền tố của những mẫu nào. Như vậy, so với Full, thuật toán MSR_ImpFull đã giảm đi k lần duyệt tập mẫu tuần tự ứng với mỗi mẫu trong tập mẫu được xét. Do đó độ phức tạp của thuật toán này là O(n2).

Thuật toán MSR_ImpFull:

Đầu vào: CSDL chuỗi, minSup, minConf

Đầu ra: Tất cả các luật có ý nghĩa Phương pháp thực hiện: 1. Tìm FS = tất cả các mẫu có độ hỗ trợ ≥ minSup 2. Sắp xếp tất cả các mẫu trong tập FS tăng dần theo kích thước của chúng 3. Với mỗi mẫu f FS thực hiện 4. Với mỗi mẫu b đứng sau f (theo thứ tự đã sắp) 5. Nếu f là một tiền tố của b 6. Lấy post = hậu tố b đối với tiền tố f 7. Đặt r = f post, sup = sup(b),

conf = sup(b)/sup(f)

8. Nếu (conf minConf) 9. Xuất luật r(sup, conf)

Hình 3.1. Thuật toán MSR_ImpFull

Ví dụ, xét CSDL chuỗi D, độ hỗ trợ tối thiểu minSup = 50%, và độ tin cậy tối thiểu minConf = 70% như bảng 2.1, tập mẫu tuần tự tìm được như bảng 2.2. Sau khi sắp xếp ta được tập các mẫu tuần tự tăng dần theo kích thước như bảng 3.1.

Bảng 3.1. Tập mẫu tuần tự sau khi sắp tăng theo kích thước

Kích thước Mẫu tuần tự: Độ hỗ trợ

1 〈(A)〉: 4, 〈(B)〉: 5, 〈(C)〉: 4

〈(AB)〉: 4, 〈(BC)〉: 3

2

〈(A)(B)〉: 3, 〈(A)(C)〉: 3, 〈(AB)(B)〉: 3, 〈(AB)(C)〉: 3

〈(B)(A)〉: 3, 〈(B)(B)〉: 5, 〈(B)(C)〉: 4,

〈(B)(AB)〉: 3, 〈(B)(BC)〉: 3

3 〈(A)(B)(B)〉: 3, 〈(A)(B)(C)〉: 3, 〈(B)(B)(B)〉: 4, 〈(B)(B)(C)〉: 4,

〈(AB)(B)(B)〉: 3, 〈(AB)(B)(C)〉: 3, 〈(B)(B)(BC)〉: 3

Áp dụng thuật toán MSR_ImpFull, các luật tuần tựđược sinh theo thứ tự như

bảng 3.2.

Bảng 3.2. Sinh luật tuần tự sử dụng thuật toán MSR_ImpFull

Xét mẫu f Các mẫu đứng sau ff là tiền tố Luật tuần tự, conf=sup(X++Y)/sup(X)×100% Độ tin cậy conf minConf?

〈(A)〉:4 〈(A)(B)〉: 3 〈(A)〉→〈(B)〉, 75% Có

〈(A)(C)〉: 3 〈(A)〉→〈(C)〉, 75% Có

〈(A)(B)(B)〉: 3 〈(A)〉→〈(B)(B)〉, 75% Có

〈(A)(B)(C)〉: 3 〈(A)〉→〈(B)(C)〉, 75% Có

〈(B)〉: 5 〈(B)(A)〉: 3 〈(B)〉→〈(A)〉, 60% Không

〈(B)(B)〉: 5 〈(B)〉→〈(B)〉, 100% Có

〈(B)(C)〉: 4 〈(B)〉→〈(C)〉, 80% Có

〈(B)(AB)〉: 3 〈(B)〉→〈(AB)〉, 60% Không

〈(B)(BC)〉: 3 〈(B)〉→〈(BC)〉, 60% Không

〈(C)〉: 4 ∅ ∅

… … …

Một phần của tài liệu Khai thác luật tuần tự trên cơ sở dữ liệu chuỗi (Trang 44 - 47)