Trong đó, thuật toán TKS Top-K Sequential pattern mining[5] được đánh giá cao bởi vì chi phí thực hiện thấp hơn nhiều lần so với các thuật toán khác trong việc khai thác k mẫu tuần tự ph
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
-
ĐỖ THANH TÙNG
KHAI THÁC K MẪU TUẦN TỰ ĐÓNG
LUẬN VĂN THẠC SĨ Chuyên ngành: Công Nghệ Thông Tin
Mã ngành: 60480201
TP HỒ CHÍ MINH, Tháng 11 năm 2017
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
-
ĐỖ THANH TÙNG KHAI THÁC K MẪU TUẦN TỰ ĐÓNG
LUẬN VĂN THẠC SĨ Chuyên ngành: Công Nghệ Thông Tin
Mã ngành: 60480201
CÁN BỘ HƯỚNG DẪN KHOA HỌC: TS PHẠM THỊ THIẾT
TP HỒ CHÍ MINH, Tháng 11 năm 2017
Trang 3CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
Cán bộ hướng dẫn khoa học : TS PHẠM THỊ THIẾT
Luận văn Thạc sĩ được bảo vệ tại Trường Đại học Công nghệ TP HCM ngày 17 tháng 06 năm 2018
Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ Luận văn Thạc sĩ)
1 PGS.TS Quản Thành Thơ Chủ tịch
2 PGS TS Võ Đình Bảy Phản biện 1
5 TS Nguyễn Thị Thúy Loan Ủy viên, Thư ký
Xác nhận của Chủ tịch Hội đồng đánh giá Luận sau khi Luận văn đã được sửa chữa
(nếu có)
Chủ tịch Hội đồng đánh giá LV
Trang 4TRƯỜNG ĐH CÔNG NGHỆ TP.HCM
VIỆN ĐÀO TẠO SAU ĐẠI HỌC
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
TP.HCM, Ngày 28 Tháng 11 Năm 2017
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Đỗ Thanh Tùng Giới tính: Nam
Ngày tháng năm sinh: 10-06-1990 Nơi sinh: Khánh Hòa
Chuyên ngành: Công Nghệ Thông Tin MSHV: 1541860046
I – Tên đề tài:
KHAI THÁC TOP K MẪU TUẦN TỰ ĐÓNG
II – Nhiệm vụ và nội dung:
Nghiên cứu bài toán khai thác Top- k mẫu tuần tự đóng
Tìm hiểu khai thác mẫu tuần tự và mẫu tuần tự đóng
Nghiên cứu Thuật toán SPAM,TSP,TKS
Nghiên cứu và đề xuất phương pháp khai thác mẫu tuần tự đóng dựa vào thuật toán TKS
Xây dựng chương trình thực nghiệm và đánh giá kết quả
III – Ngày giao nhiệm vụ: Ngày 15 tháng 03 năm 2017
IV – Ngày hoàn thành nhiệm vụ: Ngày 28 tháng 11 năm 2017
V – Cán bộ hướng dẫn: Tiến sĩ Phạm Thị Thiết
CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả đánh giá, nhận xét và các đề xuất thuật toán mới được nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này cũng như các trích dẫn hay tài liệu học thuật tham khảo đã được cảm ơn đến tác giả hay ghi rõ ràng nguồn gốc thông tin trích dẫn trong Luận văn
Học viên thực hiện Luận văn
Đỗ Thanh Tùng
Trang 6Tôi cũng xin gởi lời cảm ơn đến gia đình, bạn bè và những người thân đã luôn động viên, quan tâm và giúp đỡ tôi trong suốt thời gian học tập và nghiên cứu hoàn thành Luận văn này
Luận văn không thể tránh khỏi những sai sót, rất mong nhận được ý kiến đóng góp của mọi người cho Luận văn để Luận văn được hoàn thiện hơn
Tôi xin chân thành cảm ơn
TP Hồ Chí Minh, tháng 11 năm 2017
ĐỖ THANH TÙNG
Trang 7TÓM TẮT
Khai thác mẫu tuần tự là một phần quan trọng của khai thác dữ liệu với các
ứng dụng rộng rãi Tuy nhiên, việc tùy chỉnh thông số minsup để phù hợp trong các
thuật toán khai thác mẫu tuần tự nhằm tạo ra đúng số mẫu mà người dùng mong muốn là điều rất khó khăn và tốn thời gian Để giải quyết vấn đề này, thuật toán khai thác k mẫu tuần tự đóng TSP [15] đã đưa ra phương án giới hạn lại số lượng k mẫu cần khai thác, nhưng thời gian thực hiện và bộ nhớ sử dụng của thuật toán cao
Vì thế, luận văn đề xuất thuật toán TKCS tìm k mẫu tuần tự đóng dựa trên thuật toán TKS[5] Với k mẫu nhập vào thuật toán sẽ trả về k mẫu có độ hỗ trợ cao nhất trong CSDL
Kết quả thực thi cho thấy, Thuật toán TKCS có hiệu suất tốt hơn rất nhiều so với thuật toán TSP về chi phí thời gian cũng như bộ nhớ sử dụng Ngoài ta thuật toán TKCS còn xử lý tốt trên các CSDL khác nhau, đặc biệt là các CSDL mẫu lớn
Trang 8ABSTRACT
Sequential pattern mining is a important part of data minning with wide applications However, it is very difficult and time-consuming to customize the minsup parameters to fit in sequential pattern mining algorithms to create the right number of samples desired by the user To solve this problem, the TSP[15] algorithm had proposed method to limit the number of sequential patterns to be mined but a running time and usage memory of this algorithm is high Therefore,thesis proposal TKCS algorithm find k closed sequence patterns based
on the TKS[5] algorithm With input k patterns , the algorithm returns k patterns highest degree of support in the database
The results show that TKCS algorithm is much better than TSP algorithm time cost as well as memory usage In addition, the TKCS algorithm handles well
on various databases, especially large sample databases
Trang 9MỤC LỤC
TÓM TẮT iii
ABSTRACT iv
DANH MỤC CÁC TỪ VIẾT TẮT vii
DANH MỤC BẢNG viii
DANH MỤC HÌNH ix
CHƯƠNG 1: GIỚI THIỆU 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu của đề tài: 1
1.3 Phạm vi nghiên cứu đề tài 2
1.4 Nôi dung nghiên cứu 2
1.5 Bố cục của đề tài 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4
2.1 Giới thiệu 4
2.2 Các khái niệm về chuỗi dữ liệu 4
2.2.1 Cơ sở dữ liệu chuỗi: 5
2.2.2 Độ hỗ trợ: 5
2.2.3 Mẫu 6
2.2.4 Mẫu tuần tự 6
2.3 Khai thác mẫu tuần tự 6
2.4 Các thuật toán khai thác mẫu tuần tự 8
2.4.1 Thuật toán AprioriAll 8
2.4.2 Thuật toán GSP 9
2.4.3 Thuật toán SPADE 10
2.4.4 Thuật toán SPAM 11
Trang 102.4.5 Thuật toán WAP-mine 13
2.4.6 Thuật toán FreeSpan, PrefixSpan 13
3.2.1.1 Thuật toán FreeSpan 14
3.2.1.2 Thuật toán PrefixSpan 14
2.4.7 Đánh giá 19
2.5 Mẫu tuần tự đóng: 20
2.6 Thuật toán khai thác mẫu tuần tự đóng 20
2.6.1 Thuật toán CloSpan 20
2.6.2 Thuật toán BIDE 21
2.6.3 Giới thiệu thuật toán TSP 22
2.6.4 Cấu trúc cây PDB 23
2.6.5 Thuật toán TSP 24
2.6.6 Nhận xét: 29
CHƯƠNG 3: KHAI THÁC TOP K MẪU TUẦN TỰ ĐÓNG 30
3.1 Giới thiệu: 30
3.2 Thuật toán TKS 30
3.2.1 Cơ sở dữ liệu bitmap dọc 31
3.2.2 Phương thức tạo ứng viên trong thuật toán SPAM 32
3.2.3 Các chiến lược tăng hiệu suất khai thác dữ liệu trong TKS 36
3.2.4 Thuật toán TKS tìm tập phổ biến 42
3.2.5 Nhận xét: 45
3.3 THUẬT TOÁN TKCS 46
3.3.1 Thuật toán TKCS: 46
3.3.2 Nhận xét: 52
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 53
4.1 Môi trường thực nghiệm 53
Trang 114.2 Bộ dữ liệu chạy thực nghiệm 53
4.3 Kết quả thực nghiệm giữa TKCS và TSP 54
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60
5.1 KẾT LUẬN 60
5.2 HƯỚNG PHÁT TRIỂN 60
TÀI LIỆU THAM KHẢO 61
Trang 12DANH MỤC CÁC TỪ VIẾT TẮT
BIDE BI-Directional Extension
CloSpan Closed Sequential Patterns mining
CSDL Data Base (DB)
FP – tree Frequent Pattern
GSP Generalized Sequential Patterns
PDB Prefix-projected databases
PrefixSpan Prefix – Projected Sequential PAtterN mining
PrefixSpanWSR Prefix – Projected Sequential PAtterN mining with
support raising
SPADE Sequential PAttern Discovery using Equivalence classes
SPAM Sequential Pattern Mining
TKCS Top-K Close Sequential Patterns
TKS Top K Sequential Patterns
TSP Top-K Closed Sequential Patterns
Trang 13DANH MỤC BẢNG
Bảng 2.1 Cơ sở dữ liệu chuỗi 5
Bảng 2.2 CSDL biểu diễn theo chiều ngang 7
Bảng 2.3 CSDL biểu diễn theo chiều dọc 7
Bảng 2.4 CSDL Chiếu theo PrefixSpan 15
Bảng 2.5 Dữ liệu được chiếu theo <a> 16
Bảng 2.6 Dữ liệu được chiếu theo <aa> 16
Bảng 2.7 Dữ liệu được chiếu theo <aab> 17
Bảng 2.8 Dữ liệu được chiếu theo <aabc> 17
Bảng 2.9 Dữ liệu được chiếu theo <aac> 18
Bảng 2.10 Dữ liệu được chiếu theo <aacc> 18
Bảng 2.11 Kết quả được chiếu theo thuật toán Prefixspan 19
Bảng 2.12 Kết quả mẫu tuần tự đóng TSP 29
Bảng 3.1 CSDL bitmap dọc được xây dựng từ CSDL 31
Bảng 3.2 Cấu trúc dữ liệu PMAP được xây dựng từ CSDL chuỗi D 42
Bảng 3.3 CSDL mẫu 43
Bảng 3.4 Kết quả mẫu tuần tự phổ biến TKS 45
Bảng 3.5 CSDL thuật toán TKCS 48
Bảng 3.6 Kết quả mẫu tuần tự đóng TKCS 52
Bảng 4.1 Bộ CSDL chạy thực nghiệm và các thuộc tính liên quan 53
Bảng 4.2 Kết quả chạy thực nghiệm TKCS và TSP trên các bộ dữ liệu 55
Trang 14DANH MỤC HÌNH
Hình 2.1 Cây từ điển mở rộng chuỗi 11
Hình 2.2 Cây từ điển chuỗi phổ biến 22
Hình 2.3 Cấu trúc cây PDB 24
Hình 2.4 Mô tả thuật toán TSP 26
Hình 2.5 Mô tả thủ tục tìm tập đóng trong TSP 28
Hình 3.1 Thuật toán SPAM 32
Hình 3.2 Thủ tục tạo ứng viên trong thuật toán SPAM 33
Hình 3.3 Mở rộng theo chuỗi 34
Hình 3.4 Mở rộng theo itemset 35
Hình 3.5 Thuật toán TKS 38
Hình 3.6 Thủ tục tạo ứng viên trên TKS 38
Hình 3.7 Thủ tục SAVE trên TKS 39
Hình 3.8 Thuật toán TKCS 46
Hình 4.1 So sánh thời gian thực hiện giữa TKCS và TSP trên CSDL Sign 56
Hình 4.2 So sánh thời gian thực hiện giữa TKCS và TSP trên CSDL Leviathan 56
Hình 4.3 So sánh thời gian thực hiện giữa TKCS và TSP trên CSDL Bible 57
Hình 4.4 So sánh thời gian thực hiện giữa TKCS và TSP trên CSDL FIFA 57
Hình 4.5 So sánh thời gian thực hiện giữa TKCS và TSP trên CSDL BmsWebView1 58
Hình 4.6 So sánh thời gian thực hiện giữa TKCS và TSP trên CSDL BmsWebView2 58
Trang 15CHƯƠNG 1: GIỚI THIỆU
1.1 Đặt vấn đề
Khai thác dữ liệu là lĩnh vực đã và đang được nghiên cứu trong nhiều năm qua với mục đích hỗ trợ các nhà quản lý tìm ra mối quan hệ giữa các sản phẩm trong số lượng lớn danh mục sản phẩm và nhờ đó có thể giúp tăng doanh thu Quá trình khai thác dữ liệu là quá trình phát hiện ra các mẫu thông tin có giá trị tiềm ẩn trong cơ sở dữ liệu
Khai thác luật kết hợp [2] là một trong những phương thức hay và phổ biến nhất để đạt được mục đích này Việc khai thác các luật kết hợp nhằm mục đích phát hiện ra các mối quan hệ giữa các tập thuộc tính trong CSDL với nhau, trong đó khai thác tập phổ biến đóng vai trò quan trọng trong việc khai thác các luật kết hợp Sự
đa dạng và phong phú của dữ liệu hình thành nên nhiều loại dữ liệu khác nhau: dữ liệu giao tác (transaction), dữ liệu chuỗi (sequence), chuỗi thời gian (time-series)… Trước tình hình đó, việc khai thác và chọn lọc những dữ liệu có ích từ lượng dữ liệu
đó là việc cần thiết, đóng vai trò quyết định thành công trong mọi hoạt động Các dữ liệu chắt lọc đó sẽ giúp cải thiện hoạt động trong hiện tại hay đưa ra những dự đoán giúp việc đưa ra quyết định trong tương lai sẽ chính xác hơn
Nhưng trên thực tế, mỗi một sản phẩm mà khách hàng mua lại có thể có giá khác nhau Tương tự mỗi một hạng mục trong giao dịch cũng có các trọng số khác nhau tùy theo từng loại cơ sở dữ liệu cụ thể Chính vì vậy, nhiều nghiên cứu đã được thực hiện và nhiều thuật toán đã được đề xuất trong lĩnh vực này Trong đó, thuật toán TKS (Top-K Sequential pattern mining)[5] được đánh giá cao bởi vì chi phí thực hiện thấp hơn nhiều lần so với các thuật toán khác trong việc khai thác k mẫu tuần tự phổ biến Dựa vào đó để làm nền tảng tiến hành nghiên cứu bài toán Khai Thác Top K mẫu tuần tự đóng
1.2 Mục tiêu của đề tài:
Đề tài tập trung nghiên cứu thuật toán khai thác mẫu tuần tự và mẫu tuần tự
Trang 16đóng Cụ thể tìm hiểu thuật toán TKS để tìm ra Top K mẫu tuần tự Từ đó đề xuất thuật toán để tìm ra top K mẫu tuần tự đóng
1.3 Phạm vi nghiên cứu đề tài
Luận văn tập trung nghiên cứu các thuật toán khai thác mẫu tuần tự và mẫu tuần tự đóng Từ đó, đề ra các phương pháp tìm k mẫu tuần tự đóng cho thuật toán TKS và ứng dụng nó để khai thác dữ liệu, đặt biệt là các CSDL mẫu lớn
1.4 Nôi dung nghiên cứu
Nghiên cứu bài toán khai thác Top- k mẫu tuần tự đóng
Tìm hiểu khai thác mẫu tuần tự và mẫu tuần tự đóng
Nghiên cứu Thuật toán SPAM[14],TSP[15],TKS[5]
Nghiên cứu và đề xuất phương pháp khai thác mẫu tuần tự đóng dựa vào thuật toán TKS
Xây dựng chương trình thực nghiệm và đánh giá kết quả
1.5 Bố cục của đề tài
Chương 1 Tổng quan
Giới thiệu và đặt vấn đề hình thành đề tài, mục tiêu đặt ra cũng như phạm vi nghiên cứu và các bố cục được đề ra trong đề tài này
Chương 2 Cơ sở lý thuyết
Tổng quan cơ sở lý thuyết về CSDL dạng chuỗi, phân tích và khái quát các phương pháp khai thác mẫu tuần tự phổ biến và mẫu tuần tự đóng như Spade[17], Freespan[7], Prifixspan[11] ,Spam [14] và Clospan[16],BIDE[8],TSP[15]
Chương 3 Khai thác top k mẫu tuần tự đóng
Trình bày phương pháp khai thác k mẫu tuần tự phổ biến TKS[5], đề xuất phương pháp khai thác k mẫu tuần phổ biến TKS để tìm ra mẫu tuần tự đóng với tên mới là TKCS
Trang 17Chương 4 Kết quả thực nghiệm và đánh giá
Trình bày kết quả thử nghiệm và đánh giá phương pháp Luận văn tiến hành thực nghiệm trên cơ sở tìm mẫu tuần tự đóng trên thuật toán TSP[15] và mẫu tuần
tự đóng TKCS Đánh giá kết quả đạt được
Chương 5 Kết luận và hướng phát triển
Tổng kết và nêu lên những nội dung chính của luận văn và đề xuất các hướng phát triển trong tương lai
Trang 18CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu
Trong lĩnh vực khai thác dữ liệu, nhất là trên CSDL chuỗi Việc khai thác mẫu tuần tự là một nhiệm vụ khai thác dữ liệu quan trọng đã được nghiên cứu rộng rãi [1],[6], [9],[10],[13] Cho một tập các chuỗi, trong đó mỗi chuỗi bao gồm một danh sách các tập phổ biến, và một ngưỡng hỗ trợ tối thiểu do người dùng chỉ định
(minsup), khai thác mẫu tuần tự là để tìm tất cả các mẫu phổ biến có độ hỗ trợ không thấp hơn minsup Khai thác mẫu tuần tự được ứng dụng trong nhiều lĩnh vực
như: phân tích thị trường, phân tích mẫu truy cập web, dự đoán nhu cầu mua sắm của khách hàng…
Khi khai thác mẫu tuần tự tồn tại một số vấn đề như sau:
Khai thác mẫu tuần tự thường tạo ra một số lượng lớn các mẫu, vấn đề đó không thể tránh khỏi khi cơ sở dữ liệu bao gồm các chuỗi phổ biến dài Nó sẽ tạo ra các mẫu phổ biến mà các mẫu đó có thể có cùng độ hỗ trợ hoặc là cha của mẫu phổ biến khác
Nếu chọn minsup quá cao thì tạo ra ít các mẫu bỏ qua các thông tin có giá trị
còn ngược lại thì quá nhiều mẫu dẫn đến thuật toán chậm Để chọn một giá trị
minsup hợp lý đòi hỏi phải biết về dữ liệu
2.2 Các khái niệm về chuỗi dữ liệu
Cho I = {i 1 , i 2 ,…, i k } là một tập các item Tập con của I gọi là Itemset Chuỗi
trong mỗi itemset được nhóm theo thứ tự
Ví dụ: Xét CSDL như bảng 2.1
Chuỗi s1 có 5 itemset xảy ra theo thứ tự <(a)(abc)(ac)(d)(cf)> Chiều dài của s, l(s)
là tổng số các item trong s còn được gọi là l-sequence
Ví dụ: Chuỗi <(ac)(d)> là một 3-sequence có kích thước là 2
Trang 19Chuỗi = <a 1 , a 2 ,…, a m> là một chuỗi con của chuỗi khác = <b 1 ,
Ví dụ:: Chuỗi <(a)(d)> là chuỗi con của <(ad)(c)(bc)(ae)> nhưng <(a)(d)>
không phải là chuỗi con của chuỗi <(ad)> và ngược lại
2.2.1 Cơ sở dữ liệu chuỗi:
Cơ sở dữ liệu chuỗi D = {s1, s2,…, sn} là một tập các chuỗi có dạng (SID,s), trong đó SID là định danh của chuỗi và s là chuỗi các itemset
Ví dụ: Xét CSDL chuỗi như sau:
Xét CSDL chuỗi D, mỗi chuỗi có một chỉ số định danh duy nhất Độ hỗ trợ
tuyệt đối của một mẫu tuần tự là tổng số chuỗi trong D có chứa p, ký hiệu supD
(p) = l{s| sD và s}l Độ hỗ trợ tương đối của p là tỉ lệ phần trăm chuỗi trong D chứa p Ở đây, mức hỗ trợ tuyệt đối hoặc tương đối sẽ được sử dụng chuyển đổi qua lại, kí hiệu là sup(p)
Ví dụ: Xét CSDL như bảng 2.1 Chuỗi p = <(a)(d)> xuất hiện trong chuỗi s1,
s2, s3, s5 Vậy độ hỗ trợ của chuỗi p là 4
Trang 20Cho trước ngưỡng hỗ trợ tối thiểu (minsup) xác định bởi người dùng, minsup
∈ (0, 1] Một mẫu được coi là phổ biến nếu độ hỗ trợ của nó lớn hơn hoặc bằng
Ví dụ: Xét CSDL như bảng 2.1
Có tập các item phân biệt là {a, b, c, d, e, f } Xét chuỗi s 1 = <(a)(abc)(ac)(d)(cf)>
chuỗi s 1 có 5 itemset là: <(a),(abc),(ac),(d),(cf)> và có 9 item Vậy s 1 có kích thước
là 5 và có độ dài là 9 Trong chuỗi s 1 , item a xuất hiện 3 lần nhưng nếu tính độ hỗ trợ thì độ hỗ trợ của item a chỉ được tính là 1 đối với chuỗi s 1 đó Chuỗi p = < (a)> xuất hiện trong chuỗi s1, s2, s3, s4 s5 Vậy độ hỗ trợ của mẫu p là 5 Vì sup(p) > minsup nên p là mẫu tuần tự
2.3 Khai thác mẫu tuần tự
Cho trước CSDL chuỗi và ngưỡng minsup Khai thác mẫu tuần tự là đi tìm
tập đầy đủ tất cả các mẫu tuần tự có trong CSDL và có độ lớn hơn hoặc bằng ngưỡng minsup đã cho
Có hai dạng tổ chức dữ liệu cơ bản:
Dạng biểu diễn ngang: Dữ liệu được tổ chức theo chiều ngang, mỗi hàng đại diện cho dãy sự kiện (event) tương ứng với đối tượng (object)
Dạng biểu diễn dọc: Dữ liệu được tổ chức theo chiều dọc, mỗi bảng trình bày cho một item và chỉ ra danh sách của các chuỗi mà item xuất hiện và
vị trí mà item đó xuất hiện
Trang 21Ví dụ: Xét CSDL như bảng 2.1
CSDL trên có thể biểu diễn theo 2 cách sau:
a Biểu diễn ngang
Trang 22nhanh hơn Bởi vì theo cách tổ chức này, có thể lấy được ngay các đối tượng ứng với sự kiện mà không phải duyệt toàn bộ CSDL Hơn nữa, đối với CSDL lớn, việc
tổ chức theo chiều dọc mang tính cô đọng, giúp thực thi nhanh hơn và cho phép lặp lại việc tìm các mẫu tuần tự một cách dễ dàng Tuy nhiên, dữ liệu gốc ban đầu thường 13 được tổ chức theo chiều ngang, nếu muốn tổ chức theo chiều dọc phải có bước tiền xử lý để chuyển đổi
2.4 Các thuật toán khai thác mẫu tuần tự
Bài toán khai thác mẫu tuần tự được đề xuất đầu tiên bởi Agrawal và Srikant vào năm 1995 AprioriAll [2] là thuật toán đầu tiên được thiết kế để giải quyết bài toán khai thác mẫu tuần tự trên CSDL chuỗi giao dịch AprioriAll dựa trên thuật toán khai thác mẫu phổ biến Apriori [3], là thuật toán nền tảng làm cơ sở cho các thuật toán về sau
2.4.1 Thuật toán AprioriAll
Để tìm mẫu tuần tự, thuật toán AprioriAll [2] gồm 3 giai đoạn chính: Tìm itemset phổ biến, biến đổi CSDL và tìm mẫu tuần tự trên dữ liệu đã biến đổi Ở giai đoạn 1, thuật toán tiến hành duyệt toàn bộ CSDL ban đầu để tìm các itemset phổ biến Sau đó, ánh xạ tập itemset phổ biến tìm được sang tập số nguyên Việc ánh xạ nhằm mục đích coi một temset phổ biến là một thực thể riêng biệt và thời gian so sánh hai itemset phổ biến bất kỳ đều như nhau Hơn nữa, giúp giảm thời gian kiểm tra một chuỗi có là chuỗi con của chuỗi dữ liệu trong CSDL ban đầu không
Giai đoạn 2, trong CSDL chuỗi ban đầu, mỗi chuỗi được thay thế bởi tập tất
cả các itemset phổ biến có chứa trong chuỗi đó Nếu itemset không chứa itemset con phổ biến nào thì loại bỏ itemset đó khỏi tập chuỗi dữ liệu Nếu chuỗi dữ liệu không chứa itemset phổ biến nào thì loại bỏ chuỗi đó khỏi CSDL Sau khi biến đổi, mỗi chuỗi sẽ được đại diện bởi một dãy các itemset phổ biến
Trang 23Giai đoạn 3, tìm mẫu tuần tự dựa trên kết quả từ giai đoạn tìm itemset phổ biến, ta có được tập các mẫu tuần tự có kích thước là 1 Giải thuật dựa trên nguyên tắc Apriori: Mọi tập con của tập phổ biến phải là tập phổ biến, mọi tập cha của tập không phổ biến đều không phổ biến Tập ứng viên gồm các mẫu độ dài k được phát
sinh bằng cách kết các mẫu độ dài (k-1), sau đó dựa vào nguyên tắc Apriori và
minsup để loại bỏ các mẫu không phổ biến
Như vậy, để tìm được mẫu tuần tự, giải thuật AprioriAll phải phát sinh các ứng viên, nhưng số lượng ứng viên tạo ra rất lớn dễ dẫn đến tình trạng “nghẽn cổ chai” Với chuỗi độ dài n thì số ứng viên có thể tạo ra là ∑𝑛𝑖=1𝐶𝑛= 2𝑖 𝑛 −1 do đó không đủ bộ nhớ để xử lý Mặt khác, để tìm tất cả các mẫu tuần tự, thuật toán AprioriAll phải duyệt CSDL nhiều lần vì với mỗi tập ứng viên để đếm độ hỗ trợ phải duyệt toàn bộ CSDL Đối với bài toán khai thác mẫu tuần tự, các yếu tố ảnh hưởng đến tính hiệu quả của thuật toán là cách thức tổ chức dữ liệu và thuật toán giải quyết
Do đó, phải sử dụng cấu trúc dữ liệu thích hợp và thuật toán tối ưu Như vậy, các đặc trưng ảnh hưởng đến tốc độ thực thi là cách tổ chức biễu diễn dữ liệu để lưu trữ vào bộ nhớ, cách duyệt dữ liệu để xử lý, các chiến lược tìm kiếm Ngoài ra, sử dụng một số đặc trưng khác như vận dụng lý thuyết đồ thị, đưa ra những ràng buộc cho bài toán sẽ giúp thuật toán thực thi nhanh hơn, các mẫu tuần tự tìm được có giá trị hơn Chính vì vậy, tiếp cận theo nhiều hướng khác nhau, xuất phát từ thuật toán nền tảng AprioriAll, các nhóm nghiên cứu đã đưa ra nhiều thuật toán khác nhau để giải quyết bài toán khai thác mẫu tuần tự
2.4.2 Thuật toán GSP
GSP [13] (Generalized Sequential Patterns) do Agrawal và Srikant đưa ra
vào năm 1996, là mở rộng của thuật toán AprioriAll GSP giải quyết bài toán khai thác mẫu tuần tự một cách tổng quát, đó là bổ sung thêm các ràng buộc: ràng buộc
về khoảng thời gian cực đại và cực tiểu giữa các thành phần trong một mẫu tuần tự Các item của một thành phần trong một mẫu có thể lấy từ một hoặc nhiều thành
Trang 24phần khác nhau nhưng khoảng cách thời gian giữa các thành phần phải nằm trong giới hạn “time window”
Ngoài ra, có sự phân cấp trên các item, một mẫu có thể gồm những item trên các mức phân cấp khác nhau GSP[13] thực hiện tương tự như AprioriAll, thực hiện duyệt cơ sở dữ liệu nhiều lần Lần duyệt đầu tiên sẽ xác định được tập hợp các mẫu phổ biến độ dài 1 Ở các lần duyệt tiếp theo, thuật toán tiến hành phát sinh tập ứng
viên độ dài (k+1) (Ck) từ tập phổ biến độ dài k (L k) ở lần duyệt trước, sau đó đếm độ
15 hỗ trợ của mỗi ứng viên và tìm được tập phổ biến độ dài k GSP khắc phục được tình trạng “nghẽn cổ chai” của AprioriAll và thực hiện nhanh hơn AprioriAll nhưng phải duyệt cơ sở dữ liệu nhiều lần
2.4.3 Thuật toán SPADE
Thuật toán SPADE [17] (Sequential Pattern Discovery using Equivalence classes) do Zaki đề xuất vào năm 1998 Thuật toán SPADE tổ chức dữ liệu theo chiều dọc, trong đó ứng với mỗi item sẽ lưu danh sách định danh của các chuỗi dữ liệu và định danh của các itemset có chứa item đó Độ hỗ trợ của item được tính trực tiếp từ danh sách các định danh
Mặt khác, SPADE[17] còn dựa trên lý thuyết dàn để chia nhỏ không gian tìm kiếm và thao tác kết đơn giản để tạo ra tập ứng viên Thuật toán này gom nhóm các mẫu tuần tự dựa theo tiền tố thành các lớp tương đương Thuật toán chỉ duyệt CSDL đúng ba lần: lần duyệt thứ nhất và thứ hai thực hiện tìm các mẫu tuần tự có
độ dài 1 và 2 Ở lần duyệt thứ ba, thuật toán phát triển mẫu độ dài k từ hai mẫu độ
dài (k-1) có (k-2) item đầu giống nhau, tiến hành duyệt trên từng lớp tương đương
do đó giảm chi phí tính toán và sử dụng bộ nhớ hiệu quả hơn Với ngưỡng minsup
thấp, so với thuật toán GSP[5], thuật toán SPADE thực hiện nhanh gấp đôi vì: 1)
Thực hiện thao tác kết đơn giản theo ID-List, độ dài của mẫu tuần tự càng tăng thì kích thước ID-List càng giảm (vì độ hỗ trợ của chuỗi cha nhỏ hơn độ hỗ trợ của chuỗi con, mà độ hỗ trợ của một chuỗi bằng số SID phân biệt trong ID-List) 2)
Không sử dụng cấu trúc dữ liệu phức tạp như cây băm của GSP, sử dụng bộ nhớ
Trang 25một cách hiệu quả Mặt khác, SPADE không phải duyệt toàn bộ dữ liệu để tạo và
đếm độ hỗ trợ cho một chuỗi mới mà chỉ cần duyệt hai ID-List của hai mẫu tuần tự
cơ sở và độ hỗ trợ của chuỗi mới dễ dàng xác định được, đó là số SID phân biệt trong ID-List mới kết được 3) Khi ngưỡng hỗ trợ tối thiểu càng nhỏ thì SPADE
càng tìm được nhiều chuỗi phổ biến hơn và chỉ phỉ duyệt cơ sở dữ liệu đúng 3 lần Như vậy giảm được chi phí nhập xuất đáng kể
2.4.4 Thuật toán SPAM
Thuật toán SPAM [14] kết hợp với các ý tưởng của các thuật toán khác như: GSP,SPADE[17] và FREESPAN[7] Thuật toán xử lý cùng với việc sử dụng cấu trúc dữ liệu vừa với bộ nhớ chính và được khẳng định là kỹ thuật khai thác mẫu tuần tự đầu tiên sử dụng cấu trúc dữ liệu cây từ điển đề lưu các chuỗi đã duyệt theo chiều sâu của cây
Hình 2.1 Cây từ điển mở rộng chuỗi
Trang 26Ví dụ:
Cho thuật toán SPAM, sử dụng CSDL ở bảng 2.1 giả sử kích thước cực đại
ở mỗi chuỗi là 5 Mỗi nút trên cây có các chuỗi con mở rộng theo chuỗi được tạo ra theo bước S-Step và các chuỗi con mở rộng theo Itemset được tạo ra theo I-Step của thuật toán SPAM duyệt các chuỗi trên cây theo chiều sâu và kiểm tra độ hỗ trợ của
mỗi chuỗi mở rộng theo ngưỡng minSup một cách đệ quy Nếu độ hỗ trợ của một nút con s nhỏ hơn minSup thì không cần lặp lại quá trình duyệt theo chiều sâu trên s
do tính chất Apriori[3] Việc loại trừ cũng được áp dụng tại mỗi bước mở rộng theo chuỗi và theo itemset của thuật toán, tối thiểu số lượng nút con và đảm bảo rằng tất
cả các nút tương ứng với chuỗi phổ biến đều được thăm Để đếm độ hỗ trợ hiệu quả, SPAM sử dụng cấu trúc dữ liệu bitmap dọc để biểu diển mỗi thành phần trong của
các chuỗi trong CSDL Để tìm bitmap của chuỗi mở rộng theo chuỗi (S-Step), trước
hết biến đổi chuỗi cần mở rộng sử dụng một bảng tra sao cho tất cả các bit đứng sau
vị trí của bit 1 đầu tiên (giả sử vị trí xuất hiện bit 1 đầu tiên là y) được thiết lập là 1
và tất cả các bit có chỉ số nhỏ hơn hoặc bằng y được thiết lập là 0 Sau đó, thực hiện
phép toán AND trên bitmap đã biến đổi với bitmap của item thêm vào, ta được
bitmap của chuỗi mở rộng theo chuỗi Còn đối với chuỗi mở rộng theo itemset
(I-Step), chỉ cần thực hiện phép AND mà không cần phải biến đổi chuỗi cần mở rộng
Và lúc này, việc đếm độ hỗ trợ trở nên đơn giản đó là xác định có bao nhiêu phần bitmap không chứa toàn bit 0 Ví dụ, mỗi item trong bảng 2.1 sẽ được biểu diễn bởi một bitmap dọc, để tìm độ hỗ trợ của chuỗi mở rộng theo chuỗi là <(ab)(ab)> trước
hết cần xác định bitmap của nó Bitmap của <(ab)> được biến đổi như mô tả trên và lấy AND với bitmap của <(ab)> ta được bitmap của <(ab)(ab)> Nếu sử dụng
minSup = 3 thì chuỗi ứng viên <(ab)(ab)> sẽ không bị loại trừ vì số lượng các phần
bitmap khác 0 của nó ≥ 3 Thuật toán SPAM tương tự như SPADE nhưng nó sử dụng phép toán trên bit tốt hơn là thao tác kết có quy tắc và theo thời gian của SPADE Nếu so sánh SPAM với SPADE thì SPAM thực hiện nhanh hơn SPADE gấp 2.5 lần, trong khi đó SPADE lại sử dụng bộ nhớ hiệu quả hơn SPAM từ 5 đến
20 lần
Trang 272.4.5 Thuật toán WAP-mine
Đây là thuật toán phát triển mẫu với phép chiếu cây, ra đời cùng thời điểm với FreeSpan và PrefixSpan vào năm 2000/2001 Một đóng góp khác trên kỹ thuật phát triển mẫu và cấu trúc cây là thuật toán WAP-mine [12] sử dùng cấu trúc cây WAP Ở đây, CSDL chuỗi được duyệt 2 lần để xây dựng cây WAP gồm các chuỗi phổ biến cùng với độ hỗ trợ của chúng, đồng thời duy trì một “bảng con trỏ đầu” để trỏ đến các vị trí xuất hiện đầu tiên của mỗi item nằm trong itemset phổ biến Duyệt CSDL lần đầu để tìm chuỗi phổ biến 1-sequences và lần duyệt thứ hai để xây dựng cây WAP chỉ có các chuỗi con phổ biến
2.4.6 Thuật toán FreeSpan, PrefixSpan
Thuật toán PrefixSpan [11] (Prefix-projected Sequential pattern mining) được đề xuất vào năm 2001 bởi Jian Pei và cộng sự Tiếp cận theo hướng chia nhỏ
dữ liệu, FreeSpan [7] là thuật toán đầu tiên thực hiện phép chiếu trên CSDL để giảm chi phí lưu trữ dữ liệu Sau đó, thuật toán này được phát triển thành PrefixSpan [11] Xuất phát từ tập mẫu tuần tự độ dài 1, PrefixSpan tạo ra CSDL được chiếu với mỗi mẫu đó
Trong CSDL chiếu, mỗi chuỗi dữ liệu chỉ giữ lại phần hậu tố đối với tiền tố
đã chiếu Mẫu được phát triển bằng những item phổ biến tìm được trong CSDL được chiếu Quá trình này được lặp lại cho đến khi CSDL chiếu không còn item phổ biến nào Về tốc độ thực thi, PrefixSpan thực hiện nhanh hơn SPADE và AprioriAll bởi vì PrefixSpan phát triển mẫu mà không cần phát sinh ứng viên, vận dụng nguyên lý Apriori để cắt tỉa cơ sở dữ liệu được chiếu Mặt khác thực hiện phép chiếu cơ sở dữ liệu theo tiền tố nên không gian tìm kiếm giảm đáng kể Nhờ vậy tiết kiệm bộ nhớ hơn so với SPADE, SPAM và đếm độ hỗ trợ nhanh hơn
Trang 283.2.1.1 Thuật toán FreeSpan
Thuật toán FreeSpan [7] bắt đầu bằng việc tạo ra một danh sách các chuỗi
1-sequences từ CSDL chuỗi gọi là danh sách item phổ biến (f-list), sau đó nó xây
dựng một ma trận các item trong danh sách này Ma trận này chứa thông tin về độ
hỗ trợ của mỗi chuỗi ứng viên độ dài 2 được phát sinh từ các item trong f-list và được gọi là S-Matrix Với một mẫu tuần tự α từ S-Matrix, CSDL chiếu theo α là tập hợp các chuỗi phổ biến có α là chuỗi con Các item không phổ biến và những item theo sau các item không phổ biến trong α bị bỏ qua Ở bước kế tiếp, xây dựng bảng gồm các chuỗi 2-sequences cùng với chú thích trên những item lặp lại và chú thích trên CSDL chiếu để giúp định vị những CSDL chiếu này trong lần duyệt thứ ba và
các lần duyệt sau đó mà không cần xét đến S-Matrix Lúc này, S-Matrix bị bỏ đi và
khai thác tiếp tục sử dụng CSDL chiếu
3.2.1.2 Thuật toán PrefixSpan
PrefixSpan [11] chỉ xét các chuỗi con tiền tố và chỉ chiếu chuỗi con hậu tố tương ứng của chúng vào các CSDL chiếu Với phương pháp này, các mẫu tuần tự được phát triển trong mỗi CSDL chiếu, nhờ chỉ duyệt các chuỗi phổ biến cục bộ
Trang 29Bảng 2.4 CSDL Chiếu theo PrefixSpan
1 Tìm tất cả mẫu tuần tự độ dài 1
Duyệt CSDL chuỗi D, và tìm các item phổ biến, mỗi item phổ biến tạo nên một chuỗi độ dài 1 Ta được a:5, b:5, c:5, d:4, e:4, f:4
2 Chia nhỏ không gian tìm kiếm
Chia nhỏ không gian tìm kiếm để lấy CSDL
Ví dụ: CSDL này tạo ra 6 tập con rời nhau theo 6 tiền tố <a>, < b>, <c>, <d> <e>
<f>
3 Tìm mẫu phổ biến theo loại tiền tố
Ứng với mỗi tiền tố, thực hiện chiếu CSDL theo tiền tố đó và khai thác các mẫu
dữ liệu trong cơ sở dữ liệu đã được chiếu
Để tìm mẫu tuần tự có tiền tố <a>, chúng ta mở rộng nó bằng cách thêm vào một item tại một thời điểm Để thêm một item x kế tiếp, có hai khả năng xảy ra: Thứ nhất: thuật toán nối item vào itemset cuối trong tiền tố (ví dụ <(ax)>) và thứ hai : item thêm vào đóng vai trò là một itemset riêng (ví dụ <ax>) Để tạo ra CSDL chiếu theo tiền tố <a>: nếu một chuỗi chứa item <a>, thì hậu tố theo sau tiền tố
<a> được rút trích ra như là một chuỗi cho cơ sở dữ liệu chiếu
CSDL được chiếu theo <a>:
Trang 30Bảng 2.5 Dữ liệu được chiếu theo <a>
Các items phổ biến là: a:4, b:4, c:5,d:4, e:3, f:3 và _b: 1, _d:2, _e:1
Vậy chuỗi có độ dài 2 với tiền tố và có độ minsup >=2 với <a> là: <aa>:4, <ab>:4,
<ac>:5, <ad>:4, <ae>:3, <af>3, <(ad):2 Tất cả các mẫu phổ biến trên với tiền tố
<a> ta có thể chia vào 7 tập con: <aa>, <ab>, <ac>, <ae>, <ad>, <af>, <(ad)> Thực hiện đệ quy lần lượt các mẫu phổ biến theo tiền tố có chuỗi độ dài là 2 này
Thực hiện PrefixSpan và chiếu <aa> vào CSDL và ta nhận được bảng dữ liệu như sau:
Bảng 2.6 Dữ liệu được chiếu theo <aa>
Các items phổ biến là: a:1, b:2,c:2,d,f:1 và _bc:1,_e:1,_f:1 _c: 1 Vậy chuỗi
có độ dài 3 với tiền tố là <aa> là: <aab>:2, <aac>:2 Tất cả các mẫu phổ biến trên với tiền tố <aa> ta có thể chia vào 2 tập con:
Trang 31<aab>, <aac> Tiếp tục thực hiện đề quy lần lượt các mẫu trên theo tiền tố có chuỗi
Bảng 2.7 Dữ liệu được chiếu theo <aab>
Các items phổ biến là: c:2, _c:1 Vậy chuỗi có độ dài 4 với tiền tố là <aab> là: <aabc>:2
Tất cả các mẫu phổ biến trên với tiền tố <aab> ta có thể chia vào 1 tập con:
<aabc> Tiếp tục thực hiện đề quy lần lượt mẫu trên theo tiền tố có chuỗi độ dài là 4 này
Thực hiên PrefixSpan và chiếu theo <aabc> vào CSDL và ta nhận được bảng
dữ liệu kế tiếp:
1 <(_c)(ac)(d)(cf)>
Bảng 2.8 Dữ liệu được chiếu theo <aabc>
Trong CSDL chiếu theo <aabc> không có items nào phổ biến Dừng thuật toán với PrefixSpan
Tiếp tục thực với PrefixSpan và chiếu theo <aac> vào CSDL bảng 2.7 ta nhận được bảng dữ liệu như sau:
Trang 32Bảng 2.9 Dữ liệu được chiếu theo <aac>
Các items phổ biến là: c:2, Vậy chuỗi có độ dài 4 với tiền tố là <aacc> là:
<aacc>:2
Tất cả các mẫu phổ biến trên với tiền tố <aacc> và ta có 1 tập con:
<aacc> Tiếp tục thực hiện đề quy lần lượt mẫu trên theo tiền tố có chuỗi độ dài là 4 này
Thực hiên PrefixSpan và chiếu theo <aacc> vào CSDL và ta nhận được bảng
dữ liệu kế tiếp:
1 <(d)(cf)>
Bảng 2.10 Dữ liệu được chiếu theo <aacc>
Trong CSDL chiếu theo <aabc> không có items nào phổ biến Dừng thuật toán với PrefixSpan
Tương tự, ta thực hiện thuật toán PrefixSpan cho <b>, <c>, <e>, <d>, <f>
Kết quả chiếu PrefixSpan và thu về các mẫu phổ biến như sau:
Tiền tố (Prefix) CSDL đã được chiếu
theo tiền tố Mẫu tuần tự
<a,b>, <a,c>, <a,d>, <a,e>
<a,f>, <a,b,a>, <a,b,c>,
Trang 33<(_b)(ab)(ad)de(ac)> <a,b,d>, <a,b,e>, <a,b,f>
<a,c,a>, <a,c,b>,
<a,c,c>, <a,c,d> <a,c,e>,
<a,c,f>, <a,d,a>, <a,d,b>
Về tốc độ thực thi, PrefixSpan thực hiện nhanh hơn SPADE và AprioriAll bởi:
+ Thuật toán phát triển mẫu mà không cần phát sinh ứng viên
Trang 34+ Vận dụng nguyên lý Apriori để cắt tỉa cơ sở dữ liệu được chiếu
+ Mặt khác thực hiện phép chiếu cơ sở dữ liệu theo tiền tố nên không gian tìm kiếm giảm đáng kể Nhờ vậy tiết kiệm bộ nhớ và đếm độ hỗ trợ nhanh hơn
Về sử dụng bộ nhớ, PrefixSpan thực hiện hiệu quả hơn SPADE và SPAM bởi vì: SPAM duyệt theo DFS nên việc lưu trữ không hiệu quả
2.5 Mẫu tuần tự đóng:
Mẫu tuần tự f là mẫu tuần tự đóng nếu nó không tồn tại mẫu f’ sao cho f f’
và sup(f) = sup(f’)
2.6 Thuật toán khai thác mẫu tuần tự đóng
Cho trước CSDL chuỗi và ngưỡng minsup Khai thác mẫu tuần tự đóng là đi
tìm tập đầy đủ tất cả các mẫu tuần tự có trong CSDL và có độ lớn hơn hoặc bằng ngưỡng minsup đã cho và loại bỏ những tập mẫu con có độ hỗ trợ với chúng ra
Ví dụ: cho CSDL như Bảng 2.1 Thuật toán tìm được 5 mẫu tuần tự phổ biến
<(a),(c)>, <(b),(c)>, và <(a)>,<(b)>, <(c)> với độ hỗ trợ minsup =5 Lúc này thuật toán của nhận 2 mẫu <(a),(c)> và <(b),(c)> loại bỏ <(a)>, <(b)>, <(c)> vì chúng là con của tập <(a),(c)>, <(b),(c)>
2.6.1 Thuật toán CloSpan
Thuật toán Clospan (Closed sequemtial pattern mining) [16] khai thác các mẫu tuần tự đóng, tránh được một số lượng lớn các bước gọi đệ quy Đầu tiên tạo ra tập các chuỗi ứng viên đóng được lưu trữ trong một cấu trúc cây hash-chỉ mục và
sau đó cắt tỉa nó Nó sử dụng một số phương pháp cắt tỉa như CommomPrefix và
Backward Sub-Pattern tỉa không gian tìm kiếm Bởi vì CloSpan cần phải duy trì sự
tập hợp của các chuỗi ứng viên đóng, nó sẽ tiêu tốn nhiều bộ nhớ và dẫn đến một không gian tìm kiếm lớn cho việc kiểm tra mô hình đóng khi có nhiều chuỗi phổ biến đóng Kết quả là, nó không tốt đối với số các số lượng chuỗi phổ biến đóng
Trang 35Thuật toán CloSpan dựa trên việc phát hiện các mẫu tuần tự có độ dài 2, ví
dụ như “A luôn xảy ra trước hoặc sau B ”
Ví dụ: Xét CSDL như bảng 2.1 ta thấy mẫu dữ liệu <(a),(c)> là mẫu phổ biến Thuật toán CloSpa đề xuất các phương pháp liên quan và chứng minh rằng
<(b)> luôn xảy ra trước <(c)> Dựa vào đặc điểm này, thuật toán CloSpan chỉ ra rằng <(ab),(c)> là mẫu phổ biến mà không cần quét lại CSDL lần nữa!
2.6.2 Thuật toán BIDE
Thuật toán BIDE (BI-Directional Extension) [8] là mở rộng của thuật toán CloSpan[16] Đầu tiên, thông qua một phần mở rộng chuỗi mới, được gọi là BIDirectional Extension, thuật toán sử dụng cả hai phương pháp:
(1) Mẫu tiền tố và kiểm tra thuộc tính đóng để phát triển
(2) Để lược bớt không gian tìm kiếm sâu hơn so với phương pháp tiếp cận trước,
thuật toán đề nghị một phương pháp cắt tỉa gọi là BackScan
Ý tưởng chính của phương pháp này là để tránh mở rộng chuỗi bằng cách phát hiện trước phần mở rộng đã được chứa trong một chuỗi đã có nhằm tăng tốc độ khai thác mà vẫn giữ tính đúng đắn của việc khai thác chuỗi phổ biến đóng Liệt kê chuỗi phổ biến về mặt khái niệm, không gian tìm kiếm của khai thác chuỗi tạo
thành một cấu trúc cây và được định nghĩa đệ quy như sau: nút gốc ở mức 0 của cây chứa chuỗi rỗng được gán nhãn ∅ Các nút ở mức L của cây sẽ được gán nhãn là các chuỗi có kích thước L Nút con ở mức (L+1) được tạo bằng cách mở rộng chuỗi ở mức L để được chuỗi độ dài (L+1) Bằng cách loại bỏ các chuỗi không phổ biến,
các nút còn lại trong cây từ điển chuỗi phổ biến, tạo thành tập chuỗi phổ biến Trong hình 2.3, mỗi nút là một chuỗi phổ biến và độ hỗ trợ của nó, và nút đứt nét là chứa những chuỗi không đóng
Ví dụ: cho CSDL như bảng 2.1 với minsup>=3 BIDE duyệt cây theo chiều sâu (DFS–depth first search), trong Hình 2.1.2, chuỗi phổ biến sẽ được khai thác
Trang 36theo một trình tự, như vậy: a:5, aa:4, ab:4 , ac:5,acc:3, b:5, ba:3, bc:5, c:5, ca:3,
cb:3, cc:4
Hình 2.2 Cây từ điển chuỗi phổ biến
2.6.3 Giới thiệu thuật toán TSP
Thuật toán TSP [15] là khai thác k mẫu tuần tự đóng với chiều dài nhỏ nhất
min_l trong đó k là số mẫu tuần tự đóng mà người dùng muốn tìm
Định nghĩa 1 : (k mẫu tuần tự đóng) Một mẫu tuần tự s được gọi là mẫu
tuần tự đóng có độ dài tối thiểu min_l trong tập top-k nếu không tồn tại nhiều hơn k-1 mẫu đóng có độ dài tối thiểu là min_l và có độ hỗ trợ cao hơn độ hỗ trợ của s
Ví dụ: Xét CSDL như bảng 2.1, với k = 4, min_l = 1 Thuật toán tìm được
2 mẫu như sau: <(b)>: 5, <(a)(c)>: 5 Mặc dù thuật toán tìm được hơn 2 mẫu với độ hỗ trợ bằng 5 đó là <(a)>: 5, <(c)>: 5, những mẫu này không nằm
trong kết quả mẫu tuần tự đóng bởi vì chúng là con của mẫu kết quả
Trang 37Định nghĩa 2: Chuỗi s cho trước, tập chuỗi IDs của tất cả các chuỗi trong
CSDL D chứa s gọi là danh sách chuỗi ID, ký hiệu: SIDList(s) Tổng của
SIDList(s) gọi là tổng chuỗi ID, ký hiệu là SIDSum(s)
Ví dụ: Xét CSDL như bảng 2.1 thì danh sách chuỗi ID của <(a)(b)> là [1,
2, 3, 4, 5] và tổng chuỗi ID của <(a)(b)> là 14
Thuật toán TSP được xây dựng trên nền tảng cây PDB -Tree, cấu trúc PDB- Tree chi tiết được trình bày như sau:
2.6.4 Cấu trúc cây PDB
Cấu trúc cây PDB là sự miêu tả bộ nhớ của cây tìm kiếm tiền tố và lưu trữ thông tin về một phần khai thác CSDL chiếu trong suốt quá trình khai thác multi-pass Vì cây PBD bao gồm một phần CSDL chiếu được khai thác, một CSDL chiếu được khai thác hoàn toàn Nó được xóa khỏi cây PDB bởi các thuộc tính này, cây PDB có kích thước nhỏ hơn nhiều so với cây tiền tố trong suốt quá trình khai thác dữ liệu Độ sâu lớn nhất của cây PDB thì luôn luôn nhỏ
hơn min_l bởi vì TSP khai thác tất cả CSDL chiếu tại cấp min_l và nhỏ hơn
Mặc khác giảm bộ nhớ để lưu trữ cây PDB, chúng ta sử dụng CSDL chiếu giả tại tất các nút cây PDB Chúng ta chỉ lưu trữ danh sách các điểm của chuỗi hiện tại trong CSDL chuỗi ban đầu
Ví dụ : xét CSDL ở bảng 2.1
Trang 38Hình 2.3 Cấu trúc cây PDB
2.6.5 Thuật toán TSP
Thuật toán Prefixspan[11] được trình bày ở hình 2.1 là tìm tất cả các mẫu
tuần tự bao gồm mẫu tuần tự đóng và không đóng Để tìm các mẫu tuần tự đóng
chỉ có duy nhất thuật toán CloSpan [12] giải quyết vấn đề này, đầu tiên CloSpan
lưu các mẫu tuần tự đóng và không đóng sau đó thuật toán tìm và xóa đi các
mẫu không đóng Quá trình khai thác bắt đầu với minsup bằng 1 và tăng tromg
suốt quá trình và khi đó sử dụng giá trị minsup đã được tăng lên để cắt tỉa không
gian tìm kiếm Ngay khi có ít nhất k mẫu tuần tự đóng với chiều dài không nhỏ
hơn min_l được tìm thấy, thuật toán sẽ xóa các mẫu trong k mẫu tuần tự đóng có
độ hỗ trợ bằng minsup cho đến khi bằng k mẫu tuần tự đóng Sau đó minsup
được cập nhật lại bằng độ hỗ trợ của mẫu tuần tự thấp nhất trong k mẫu tuần tự
Với minsup =1