Tinh thần chính của hướng tiếp cận là cải tiến một số điểm trong giải thuật của công trình nghiên cứu trên và bổ sung giải pháp gia tăng theo chiều dọc cho cơ sở dữ liệu chuỗi thời gian
GIỚI THIỆU ĐỀ TÀI
Giới thiệu vấn đề
Chuỗi thời gian (time series) là chuỗi trị số thực, mỗi trị biểu diễn một giá trị đo tại những thời điểm cách đều nhau [1]
Hiện nay, dữ liệu chuỗi thời gian, cũng như các bài toán khai phá nguồn dữ liệu này, cũng đang ngày một trở nên phổ biến, được quan tâm, nghiên cứu và xuất hiện trong nhiều ứng dụng thuộc nhiều lĩnh vực khác nhau, như: kinh tế (dữ liệu thị trường chứng khoán mỗi giờ, dữ liệu mua sắm của khách hàng mỗi ngày, v.v.), y khoa (số lượng bệnh nhân nhập viện mỗi năm, hoạt động của nhịp tim, sóng não của người bệnh mỗi giây, v.v.), môi trường (lượng mưa mỗi năm, mực nước mỗi ngày trên một con sông), v.v Có thể thấy, nhu cầu hướng đến lưu trữ và khai thác dữ liệu chuỗi thời gian để phục vụ cho các nhu cầu phát triển của cá nhân hay tổ chức đang dần trở thành một vấn đề mang tính cấp thiết Đặc biệt, với tính chất của một cơ sở dữ liệu nói chung, của cơ sở dữ liệu chuỗi thời gian nói riêng, việc dữ liệu gia tăng theo thời gian là điều không thể không có Điều này, góp phần ảnh hưởng khá lớn đến kết quả mà các cá nhân hay tổ chức sẽ nhận được trong quá trình khai phá dữ liệu chuỗi thời gian phục vụ cho các vấn đề khác nhau, đặc biệt là vấn đề dự báo Vì vậy, việc nghiên cứu các phương pháp khai phá dữ liệu chuỗi thời gian gia tăng nhằm thỏa nhu cầu, mục đích của người sử dụng với hiệu suất tối ưu là một trong những nội dung nghiên cứu mà nhiều nhà khoa học trên thế giới đang hướng đến Trong đó, bài toán Khai phá mẫu phổ biến gia tăng trong cơ sở dữ liệu chuỗi thời gian là một bài toán quan trọng mà chúng tôi đặc biệt quan tâm nghiên cứu và trình bày trong bài luận văn này.
Mục tiêu đề tài
Mục tiêu nghiên cứu của đề tài là thực hiện khai phá mẫu phổ biến gia tăng trong cơ sở dữ liệu chuỗi thời gian Cho một cơ sở dữ liệu chuỗi thời gian D, một ngưỡng hỗ trợ tối thiểu min_supp, chúng tôi sẽ thực hiện việc khai phá dữ liệu trong D để trả về
14 một tập gồm các mẫu, mà các mẫu này phổ biến trong D Hơn nữa, mỗi khi D được cập nhật, tức mỗi khi cơ sở dữ liệu chuỗi thời gian D có thêm các dữ liệu mới vào, chúng tôi sẽ cập nhật lại tập mẫu phổ biến đã khai phá trước đó để trả về một tập phổ biến mới thỏa dữ liệu chuỗi thời gian D ở thời điểm mới nhất
Cụ thể hóa cho mục tiêu vừa nêu trên, trong khoảng thời gian được cho phép, luận văn tập trung vào các nội dung chính sau:
1.2.1 Xem xét các trường hợp có thể gia tăng dữ liệu cho cơ sở dữ liệu chuỗi thời gian (dữ liệu đầu vào cho bài toán khai phá mẫu phổ biến gia tăng)
Các trường hợp gia tăng dữ liệu trong cơ sở dữ liệu chuỗi thời gian, bao gồm: gia tăng dữ liệu trên một chuỗi thời gian (gia tăng theo chiều ngang), gia tăng dữ liệu là các chuỗi thời gian (gia tăng theo chiều dọc), gia tăng đồng thời chuỗi thời gian và dữ liệu trên các chuỗi thời gian (chiều ngang lẫn chiều dọc)
Mục tiêu chính của đề tài là hướng đến thực hiện được trường hợp gia tăng dữ liệu chuỗi thời gian theo cả chiều ngang, lẫn chiều dọc
Với mục tiêu trên, đề tài tập trung sử dụng và dựa trên nội dung của hai bài báo Incremental Mining for Frequent Patterns in Evolving Time Series Datatabases [2] và bài báo về giải thuật IncSP [3] Từ đó, đề xuất cách tiếp cận sau: Mở rộng và cải tiến công trình Khai phá gia tăng trên Cơ sở dữ liệu chuỗi thời gian, năm 2008
1.2.2 Tự động hóa việc xác định khoảng cách gap (dữ liệu đầu ra của bài toán khai phá mẫu phổ biến gia tăng)
Tự động hóa việc xác định khoảng cách gap (nếu có) trong các mẫu phổ biến sau khi thực hiện xong giai đoạn khai phá mẫu phổ biến gia tăng trong cơ sở dữ liệu chuỗi thời gian, và trả về giả trị khoảng cách gap đó cho người dùng.
Ý nghĩa đề tài
Ý nghĩa khoa học, hướng tiếp cận của đề tài tập trung vào vấn đề hiện vẫn còn ít được quan tâm và ít có các công trình nghiên cứu liên quan được công bố - khai phá mẫu phổ biến gia tăng đối với cơ sở dữ liệu chuỗi thời gian Hiện nay, tuy đã có khá nhiều các nghiên cứu khoa học về lãnh vực khai phá mẫu phổ biến, nhưng các công trình nghiên cứu về khai phá mẫu phổ biến gia tăng nói chung, khai phá mẫu phổ biến
15 gia tăng trong cơ sở dữ liệu chuỗi thời gian nói riêng vẫn có khá ít ỏi Các công trình nghiên cứu mới gần đây nhất về lãnh vực này, có các giải thuật như IncSpan, IncSP nhưng cũng chỉ áp dụng cho dữ liệu tuần tự Vì vậy, hướng tiếp cận vấn đề khai phá mẫu phổ biến gia tăng trong cơ sở dữ liệu chuỗi thời gian của đề tài thiết nghĩ đóng góp được phần nào vào nhu cầu của người sử dụng, mà ở thời điểm hiện tại các công trình nghiên cứu đã công bố vẫn chưa kịp thỏa mãn
Về ý nghĩa thực tiễn, sự đóng góp của đề tài giúp nâng cao hiệu suất khai phá mẫu phổ biến gia tăng trong cơ sở dữ liệu chuỗi thời gian, về thời gian xử lý và cũng có thể là về cả không gian lưu trữ, dù là gia tăng dữ liệu theo bất kì trường hợp nào trong ba trường hợp: gia tăng dữ liệu trên các chuỗi thời gian, gia tăng chuỗi thời gian, gia tăng chuỗi thời gian và dữ liệu trên các chuỗi thời gian.
Cấu trúc luận văn
Ngoài chương 1 – Giới thiệu đề tài, cấu trúc luận văn còn có các chương khác sau:
CƠ SỞ LÝ THUYẾT
Dữ liệu chuỗi thời gian
Chuỗi thời gian (time series) là chuỗi trị số thực, mỗi trị biểu diễn một giá trị đo tại những thời điểm cách đều nhau [1] Dữ liệu chuỗi thời gian thường có kích thước rất lớn và được ứng dụng rộng rãi trong các lãnh vực khác nhau
Hình 2.1 Ví dụ về chuỗi thời gian (time series) [14]
Ngoài ra, cũng có những định nghĩa về chuỗi thời gian đơn biến (univariate time series) và chuỗi thời gian đa biến (multivariate time series) Chuỗi thời gian đơn biến là một chuỗi thời gian chỉ chứa một quan sát được ghi nhận một cách tuần tự tại những khoảng thời gian cách đều nhau Chuỗi thời gian đa biến là chuỗi thời gian mà trong đó tại một thời điểm ta có nhiều quan sát (biến) khác nhau [15]
Cho một chuỗi thời gian T có chiều dài n, một chuỗi con C của T là một dãy có chiều dài m (với ) có vị trí liền nhau trong chuỗi thời gian T Một chuỗi con C của T cũng có thể được xem là một chuỗi thời gian với chiều dài m
17 Một điều cần lưu ý, là khái niệm “chuỗi con” khác với khái niệm “chuỗi tuần tự”
Nếu khái niệm “chuỗi tuần tự” cho phép các phần tử của chuỗi có thể không liên tục so với chuỗi ban đầu, thì khái niệm “chuỗi con C” của một chuỗi thời gian T chỉ chấp nhận những phần tử liên tiếp nhau trong chuỗi thời gian T Bên dưới là một ví dụ về chuỗi con của một chuỗi thời gian
Cho chuỗi thời gian T = (3, 5, 1, 12, 4, 7) Khi đó, C1 = (12, 4, 7) được gọi là một chuỗi con của chuỗi thời gian T Tuy nhiên, C2 = (3, 1,12, 4) không được xem là một chuỗi con của chuỗi thời gian T, vì “3” và “1” là các giá trị không liên tiếp nhau trong T
Các công trình nghiên cứu thường áp dụng phương pháp cửa sổ trượt (windows sliding) để lấy các chuỗi con trong một chuỗi thời gian để phục vụ cho bài toán nghiên cứu Số lượng của các chuỗi con lấy được là bằng nhau và bằng độ dài của cửa sổ trượt
Hình 2.2 Ví dụ về chuỗi con C của chuỗi thời gian T [16]
Cho một số thực dương R (do người dùng định nghĩa) và một chuỗi thời gian T Biết rằng T chứa một chuỗi con C bắt đầu tại thời điểm p và một chuỗi con M bắt đầu tại q, nếu khoảng cách D giữa 2 chuỗi nhỏ hơn hoặc bằng R, tức D(C, M) < R, thì M là một chuỗi con trùng khớp với C và ngược lại
Một số bài toán khai phá mẫu phổ biến trong cơ sở dữ liệu chuỗi thời gian
2.2.1 Bài toán khai phá mẫu phổ biến
Khai phá mẫu phổ biến trong cơ sở dữ liệu chuỗi thời gian là quá trình khai phá, tìm ra các sự kiện hay các mẫu (pattern) trên các chuỗi thời gian, mà các mẫu này có tần suất xuất hiện thường xuyên trong cơ sở dữ liệu Để xác định được một mẫu (pattern) có là mẫu phổ biến hay không, người ta dựa vào một giá trị gọi là giá trị ngưỡng hỗ trợ tối thiểu (minimum support threshold) min_supp Nếu tuần suất xuất hiện của một mẫu có giá trị lớn hơn hoặc bằng giá trị của ngưỡng hỗ trợ tối thiểu, ta gọi mẫu đó là mẫu phổ biến Ý nghĩa của bài toán khai phá mẫu phổ biến trong các cơ sở dữ liệu lớn hay trong trong cơ sở dữ liệu chuỗi thời gian đều có tác dụng lớn và được áp dụng phổ biến trong nhiều lãnh vực khác nhau, phục vụ cho nhu cầu dự báo dữ liệu trong tương lai Ví dụ trong lãnh vực chứng khoán, việc khai phá tìm ra được những mẫu phổ biến về dữ liệu hiện tại, giúp người dùng dự đoán được những diễn biến của dữ liệu chứng khoán trong tương lai
2.2.2 Bài toán khai phá mẫu phổ biến gia tăng
Với khai phá mẫu phổ biến, việc khai phá chỉ thực hiện trên tập dữ liệu hoàn toàn tĩnh, nghĩa là không có thêm bất kì biến động gì nữa về dữ liệu Tuy nhiên, trong thực tế, cơ sở dữ liệu chuỗi thời gian luôn luôn sẽ có sự gia tăng dữ liệu theo thời gian Khi đó, các mẫu phổ biến trước đó không còn phù hợp nữa với tình hình dữ liệu hiện tại Vì vậy, để giải quyết vấn đề này, khái niệm “khai phá mẫu phổ biến gia tăng” xuất hiện và dần trở thành mối quan tâm của nhiều công trình nghiên cứu
Khai phá mấu phổ biến gia tăng là quá trình khai phá, hay cập nhật lại tập các mẫu phổ biến mỗi khi cơ sở dữ liệu được mở rộng bởi các dữ liệu mới được thêm vào, đảm bảo tập mẫu phổ biến luôn đúng trong bất kì tình trạng nào của cơ sở dữ liệu
Khai phá mẫu tuần tự phổ biến
Khai phá mẫu tuần tự phổ biến là quá trình khai phá ra các sự kiện hay các chuỗi xuất hiện thường xuyên và có tính thứ tự trong cơ sở dữ liệu chuỗi Một ví dụ tiêu biểu:
“Khách hàng mua máy ảnh Canon sẽ có khuynh hướng mua thêm máy in HP trong vòng một tháng”
Vấn đề khai phá mẫu tuần tự phổ biến được Agrawal và Srikant đề xuất lần đầu năm 1995, dựa trên chuỗi mua sản phẩm của khách hàng Khai phá 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… Sau khi có được các mẫu tuần tự, ta sẽ tìm luật tuần tự: biểu hiện quan hệ có thể có giữa hai loạt sự kiện (sequential event) và trong đó có một loạt sự kiện xảy ra trước một loạt sự kiện khác [15]
2.3.2 Một số khái niệm thường gặp trong khai phá mẫu tuần tự phổ biến
- Cho I = {I1, I2,…, Ip} là tập tất cả items
- Tập phần tử (itemset): là một tập khác rỗng và không có thứ tự các items
- Một chuỗi (sequence) là một danh sách có thứ tự các sự kiện (events)
Mỗi một chuỗi s được kí hiệu sao cho sự kiện e1 xảy ra trước sự kiện e2, e2 xảy ra trước e3,…
- Chiều dài của một chuỗi là số lượng item có trong chuỗi Chẳng hạn một chuỗi S có k item được gọi là k – sequence Ví dụ: là một 3 – sequence và có kích thước là 3
- Chuỗi con: chuỗi β = được gọi là chuỗi con của chuỗi α = hay α là chuỗi cha của β, ký hiệu β ⊆ α, nếu tồn tại những số nguyên 1 ≤ j1 < j2 < … < j2 ≤ m, sao cho b1 ⊆ aj1, b2 ⊆ aj2, …, bm ⊆ ajm
Ví dụ chuỗi là chuỗi con của , nhưng không phải là chuỗi con của chuỗi
- Độ hỗ trợ (support): Cho cơ sở dữ liệu 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ự f là tổng số chuỗi trong
20 D có chứa f Độ hỗ trợ tương đối của f là tỉ lệ phần trăm chuỗi trong D chứa f Ở đâ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(f)
- Mẫu tuần tự phổ biến: Cho 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 tuần tự f được coi là phổ biến nếu độ hỗ trợ của nó lớn hơn hoặc bằng minSup: sup(f) ≥ minSup, khi đó f được gọi là mẫu tuần tự phổ biến [15]
CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
Một số kỹ thuật thu giảm số chiều dữ liệu chuỗi thời gian
Thực tế cho thấy, dữ liệu chuỗi thời gian thường khá lớn, thậm chí là rất lớn
Nếu giữ nguyên gốc tập dữ liệu chuỗi thời ban đầu và tiến hành khai phá trên tập dữ liệu này, việc tìm kiếm không chỉ tốn rất nhiều chi phí mà còn rất phức tạp và kém hiệu quả Vì vậy, để khắc phục vấn đề khó khăn này, một số kỹ thuật thu giảm số chiều đã được nghiên cứu và công bố với mục đích thu giảm độ lớn của dữ liệu
Thu giảm số chiều là phương pháp biến đổi và biểu diễn lại chuỗi thời gian n chiều thành chuỗi thời gian có m chiều (với m < n), sao cho vẫn giữ được những đặc trưng của chuỗi thời gian ban đầu Một số phương pháp thu giảm số chiều dựa trên việc rút trích đặc trưng đã được đề xuất và áp dụng vào các ứng dụng thực tế Tuy nhiên, cũng cần phải sử dụng phương pháp thu giảm số chiều một cách đúng mức và phù hợp với bài toán khai phá, vì dữ liệu chuỗi thời gian sau khi áp dụng các kỹ thuật thu giảm số chiều thường sẽ bị mất mát thông tin
Sau đây, là một số kỹ thuật thu giảm số chiều phổ biến, thường được áp dụng trong các ứng dụng khai phá dữ liệu chuỗi thời gian trong thực tế
3.1.1 Kỹ thuật PAA (Piecewise Aggregate Approximation)
Kỹ thuật PAA (Piecewise Aggregate Approximation), hay kỹ thuật xấp xỉ gộp từng đoạn, là một kỹ thuật thu giảm số chiều được đề xuất bởi Keogh, E cùng các đồng sự vào năm 2001 [4] Kỹ thuật PAA thu giảm chuỗi thời gian n chiều
23 xuống còn N chiều bằng kỹ thuật chia chuỗi thời gian ban đầu thành N đoạn (frame) và tính toán giá trị trung bình của các điểm dữ liệu nằm trong mỗi đoạn Tập hợp các giá trị trung bình này trở thành kết quả của việc thu giảm chuỗi thời gian với n chiều ban đầu
Hình 3.1 Kỹ thuật thu giảm số chiều PAA [5]
3.1.2 Kỹ thuật PLA (Piecewise Linear Approximation)
Kỹ thuật PLA (Piecewise Linear Approximation), hay kỹ thuật xấp xỉ tuyến tính từng đoạn, là kỹ thuật được đề xuất vào năm 1998 bởi Keogh E, và Pazzami M
Kỹ thuật PLA biểu diễn dữ liệu chuỗi thời gian ban đầu bằng chuỗi các đoạn thẳng tuyến tính có thể rời nhau hoặc liên tục
Hình 3.2 Kỹ thuật thu giảm số chiều PLA [6]
3.1.3 Kỹ thuật PCA (Principal Component Analysis)
Kỹ thuật PCA (Principal component analysis), hay kỹ thuật phân tích thành phần cốt yếu, là một kỹ thuật phổ biến thường được sử dụng để phân tích chuỗi thời gian trong lãnh vực tài chính Kỹ thuật PCA thường được áp dụng khi cần loại bỏ các thành phần ít đặc trưng và thu giảm số chiều dữ liệu.
Rời rạc hóa chuỗi thời gian
Kỹ thuật SAX (Symbolic Aggregate Approximation), là kỹ thuật chuyển chuỗi thời gian sang dạng chuỗi ký tự (symbolic) rời rạc Ý tưởng chính của kỹ thuật này là chuyển kết quả từ kỹ thuật PAA (Piecewise Aggregate Approximation) sang dạng ký tự
Sau khi hoàn thành giai đoạn thu giảm số chiều dữ liệu chuỗi thời gian với phương pháp PAA, chuỗi dữ liệu thời gian Ti với số chiều n được chia thành các vùng/phần bằng nhau Giá trị số ở từng phần, lúc này được xấp xỉ và thể hiện bằng một hệ số duy nhất là giá trị trung bình cộng; sau đó, chuyển các hệ số vừa nêu sang các kí tự Mỗi kí tự sẽ đại diện cho một vùng/phần và mỗi đoạn sẽ được ánh xạ thành một ký tự tương ứng với vùng đang chứa nó Ở kỹ thuật này, hai giá trị cần được xác định là chiều dài của chuỗi con (chiều dài các phần bằng nhau cần được chia đều) và kích thước của bảng ký tự (số ký tự được sử dụng)
Hình 3.3 Kỹ thuật rời rạc hóa chuỗi thời gian – SAX [5]
Với kỹ thuật rời rạc hóa chuỗi thời gian – SAX, ta áp dụng phương pháp thu giảm số chiều PAA (Piecewise Aggregate Approximation) dựa trên giá trị trung bình cộng với ưu điểm nhanh, dễ thực hiện; nhưng mặt khác, cũng có một khuyết điểm là dễ bỏ qua những mẫu đặc biệt do bản chất trung bình cộng
Giả sử trong một đoạn bất kì, sự biến động các giá trị trong đoạn tồn tại những điểm cực trị max – min, khi đó với bản chất trung bình cộng, kỹ thuật SAX sẽ dễ dàng bỏ qua hai giá trị max – min này và chỉ thể hiện bằng kí tự có giá trị trung bình tương ứng của đoạn đó Mà việc bỏ qua những điểm cực trị max – min này là có ảnh hưởng rất lớn đến kết quả dự báo đối với dữ liệu thuộc lãnh vực tài chánh Để giải quyết vấn đề trên, kỹ thuật ESAX [7] đã ra đời vào năm 2006, được đề xuất bởi Lkhagva Battuguldur cùng các cộng sự Kỹ thuật ESAX đề xuất một cách biểu diễn chuỗi dữ liệu thời gian mới Khi đó, ở mỗi đoạn, sẽ lưu trữ ba giá trị, thay vì một giá trị trung bình như kỹ thuật SAX, bao gồm các giá trị: min, max và trung bình cộng Trong đó, giá trị trung bình được tìm từ kỹ thuật PAA, y như kỹ thuật SAX Sau đó, thực hiện việc định nghĩa max và min tương ứng trên từng đoạn
Bên dưới là hình ảnh minh họa về kỹ thuạt ESAX:
Hình 3.4 Kỹ thuật rời rạc hóa ESAX [7]
Tìm kiếm tương tự trên cơ sở dữ liệu chuỗi thời gian
Tìm kiếm tương tự trên dữ liệu chuỗi thời gian là một trong những vấn đề được quan tâm nghiên cứu rất nhiều trong lãnh vực khai phá dữ liệu chuỗi thời gian Ứng dụng của tìm kiếm tương tự cho chuỗi thời gian rất đa dạng, được áp dụng trong nhiều lãnh vực, ngành nghề khác nhau, như trong kinh doanh, trong âm nhạc, các vấn đề về môi trường,
Sự tương tự giữa hai chuỗi thời gian được xác định thông qua các độ đo tương tự Việc xem xét và chọn lựa một độ đo tương tự phù hợp với bài toán cần thực hiện cũng là một vấn đề thách thức Sau đây là một số độ đo phổ biến thường được sử dụng trên dữ liệu chuỗi thời gian Độ đo Euclid
Cho hai chuỗi thời gian Q = (q1, q2, …, qn) và C = (c1, c2, …,cn), độ đo khoảng cách Euclid giữa hai chuỗi thời gian này được cho bởi công thức
Hình 3.5 Tính khoảng cách Euclid [1]
27 Độ đo khoảng cách Euclid có ưu điểm dễ hiểu, dễ tính toán và dễ mở rộng cho nhiều bài toán khai phá dữ liệu; tuy nhiên cũng có khuyết điểm là nhạy cảm với nhiễu, không thích hợp khi có đường căn bản khác nhau hay có biên độ dao động khác nhau [1] Độ đo xoắn thời gian động (Dynamic Time Warping - DTW) Độ đo xoắn thời gian động là độ đo được đánh giá có độ chính xác cao, khó bị đánh bại Nếu độ đo Euclid tính khoảng cách giữa hai chuỗi thời gian bằng phương pháp ánh xạ 1-1 (điểm thứ i của chuỗi thứ I với điểm thứ i của chuỗi thứ II), thì độ đo DTW cho phép kéo dài hoặc co trục thời gian để cực tiểu hóa khoảng cách Độ đo DTW phù hợp với trường hợp hai chuỗi thời gian không hoàn toàn giống nhau nhưng hình dạng biến đổi rất giống nhau Ưu điểm của độ đo xoắn thời gian động là cho kết quả chính xác hơn độ đo Euclid và cho phép nhận dạng mẫu có hình dạng giống nhau nhưng chiều dài hình dạng về thời gian có thể khác nhau Thay vào đó, độ đo có nhược điểm là thời gian xử lý khá chậm
Hình 3.6 Tính khoảng cách theo DTW [1]
3.3.2 So trùng toàn bộ và so trùng chuỗi con
So trùng toàn bộ, tất cả các chuỗi thời gian trong cơ sở dữ liệu đều có chiều dài n và chuỗi thời gian truy vấn cũng có chiều dài n Khoảng cách giữa chuỗi thời
28 gian truy vấn với bất kỳ một chuỗi thời gian nào trong cơ sở dữ liệu chuỗi thời gian đang xét được tính toán tuyến tính theo thời gian [8]
Một ví dụ về ứng dụng của bài toán này là tìm giá chứng khoán của những công ty có sự thay đổi, chuyển biến dữ liệu giống nhau
So trùng chuỗi con, các chuỗi thời gian trong cơ sở dữ liệu chuỗi thời gian có chiều dài khác nhau Chiều dài của chuỗi truy vấn thường ngắn hơn rất nhiều so với chiều dài của chuỗi dữ liệu ban đầu Do đó, công việc trọng yếu là tìm kiếm những đoạn trong chuỗi dữ liệu ban đầu tương tự với chuỗi truy vấn
Một ứng dụng của bài toán này là tìm những mẫu dữ liệu quan trọng hay những thay đổi bất thường trong dữ liệu ban đầu [1].
Một số kỹ thuật khai phá mẫu tuần tự phổ biến
3.4.1 Giải thuật GSP (Generalized Sequential Patterns)
Giải thuật GSP (Generalized Sequential Patterns) [9], giải thuật được đề xuất bởi R Srikant & R Agrawal vào năm 1996, là một giải thuật khai phá mẫu tuần tự Ý tưởng chính của giải thuật là kế thừa và sử dụng tính chất của giải thuật Apriori: cho S là một chuỗi tuần tự, nếu chuỗi S không phổ biến thì tất cả chuỗi cha S’ của S cũng không phổ biến Điểm cần lưu ý của giải thuật này là duyệt dữ liệu nhiều lần, lần duyệt đầu tiên xác định độ hỗ trợ (support) của từng item
Nhìn chung, tuy sử dụng được tính chất của Aprior để phát triển thêm lên, nhưng số lượng các tập item ứng cử viên được sinh ra từ giải thuật này là khá lớn và chi phí duyệt qua CSDL cũng khá lớn Do đó, để giải quyết những khuyết điểm còn tồn đọng trong giải thuật GSP, nhiều công trình nghiên cứu về khai phá mẫu tuần tự được công bố và được đánh giá là mang lại kết quả tốt hơn GSP
Thuật toán Khai phá mẫu dãy sử dụng lớp tương đương – SPADE (Sequential Pattern Discovery using Equivalent Class) [10] tổ chức dữ liệu theo chiều dọc Trong đó, ứng với mỗi item sẽ lưu một danh sách chứa định danh của các
29 dãy dữ liệu và của các itemset chứa item đó Độ hỗ trợ của các item sẽ được tính trực tiếp từ danh sách các định danh này Ngoài ra, thuật toán SPADE còn dựa trên lý thuyết dàn để chia nhỏ không gian tìm kiếm và thao tác nối đơn giản để sinh ra tập các ứng viên; gom nhóm các mẫu dựa trên tiền tố thành các lớp tương đương Đặc biệt, thuật toán chỉ duyệt cơ sơ dữ liệu ba lần: lần thứ nhất duyệt tìm các mẫu có độ dài bằng 1, lần thứ hai duyệt tìm các mẫu có độ dài bằng 2, lần thứ ba phát triển mẫu độ dài k từ hai mẫu có độ dài (k-1) có (k-2) item đầu giống nhau, sau đó tiến hành duyệt trên từng lớp tương đương Ưu điểm của giải thuật là chi phí tính toán và sử dụng bộ nhớ hiệu quả hơn
Khuyết điểm là phải tốn khá nhiều thời gian cho việc chuyển đổi cơ sở dữ liệu theo chiều ngang sang định dạng theo chiều dọc [11]
Giải thuật PrefixSpan, được đề xuất bởi Jian Pei cùng các cộng sự vào năm 2004 [9], là một giải thuật khai phá mẫu phổ biến mà không cần sinh ra thêm các tập ứng cử viên, tiếp cận theo hướng chia nhỏ dữ liệu PrefixSpan thực hiện chiếu cơ sở dữ liệu và duyệt cơ sở dữ liệu quy chiếu để tìm item phổ biến
Nhìn chung, do không cần thực hiện việc xem xét và tạo ra các tập item ứng cử viên, nên chi phí chính của giải thuật là tạo ra các CSDL chiếu.
Một số kỹ thuật khai phá mẫu tuần tự phổ biến gia tăng
Giải thuật ISM [11] là một giải thuật được xây dựng để giải quyết bài toán khai phá mẫu phổ biến trên chuỗi tuần tự gia tăng, dựa trên nguyên lý của giải thuật SPADE đã đề cập ở phần trên
Giải thuật ISM thực hiện quá trình khai phá sau khi chuyển đổi cơ sở dữ liệu chiều ngang sang định dạng theo chiều dọc và duy trì hai danh sách: “các dãy phổ biến tối đa” (maximally frequent sequences) và “các dãy không thường xuyên tối thiểu” (minimally infrequent sequences) Do đó, hạn chế lớn nhất của giải thuật là tốn chi phí về không gian lưu trữ khá lớn cho việc chuyển đổi định dạng của cơ sở dữ liệu và duy trì hai danh sách trên
Incremental Mining of Sequential Patterns in Large Database [12], là công trình nghiên cứu về việc khai phá gia tăng cho Mẫu tuần tự trong Cơ sở dữ liệu lớn
Khi có các item data mới đến từ database denta, tùy vào các trường hợp cụ thể, bài báo đưa về duy nhất hai dạng chính yếu là: INSERT và APPEND Trong đó:
Với Insert, các “frequent sequence” hoặc phải phổ biến trong Database gốc, hoặc phải phổ biến trong database delta Nếu thỏa điều kiện trên, “frequent sequence” đó sẽ phổ biến trong Database mới DB’ = DB deltaDB
Với Append, bài báo sử dụng giải thuật IncSpan Nội dung mà bài báo tập trung chính yếu cũng là Append, vì Insert đã được xem là trường hợp đặc biệt của Append Vì vậy, giải quyết được bài toán Append, ta sẽ giải quyết được các bài toán về Insert
Vấn đề chính yếu mà bài toán đặt ra là: khai phá mẫu phổ biến gia tăng là tìm ra tập Frequent Subsequence (FS’) của Database mới (D’), dựa trên các Frequent Sequence (FS) đã có của Database gốc (D), thay vì dựa trên một tập hỗn độn, hoàn toàn chưa được xử lý
Giải thuật IncSP (Incremental Sequence Pattern Up-date) [13], một giải thuật giải bài toán cập nhật gia tăng mẫu tuần tự trong cơ sở dữ liệu lớn, cũng như nâng cao hiệu quả thực hiện bài toán hơn so với những giải thuật đi trước như: giải thuật AprioriAll, giải thuật GSP, giải thuật ISM,…
Một cách cô đọng, giải thuật IncSP cập nhật gia tăng và khai phá mẫu tuần tự phổ biến thông qua loạt các phương pháp:
- Trộn tiềm ẩn (effective implicit merging), - Lược bỏ ứng viên sớm (early candidate pruning), - Và đếm riêng biệt (efficient separate counting)
Kỹ thuật implicit merging trộn ngầm những “data sequence” thuộc cùng một Customer với nhau và trì hoãn hoạt động trộn thực tế cho đến khi việc cập nhật các mẫu được hoàn tất Implicit merging đảm bảo tính chính xác cho giá trị hỗ trợ
31 (support) của các pattern; đồng thời, cho phép tính toán lại giá trị support trong quá trình cập nhật các mẫu, một cách riêng biệt trong Cơ sở dữ liệu gốc DB và cơ sở dữ liệu mới db
Candidate pruning và separate counting, trong đó, separate counting là kỹ thuật trọng yếu trong việc tính toán lại cái giá trị support của các mẫu trong CSDL mới db (Support Counting I) và CSDL gốc DB (Support Counting II) Kết quả thu được từ hai Counting Procedure này, giúp ta tìm ra được các Candidate phù hợp, cũng như không phù hợp để thu giảm được tập mẫu Ứng cử viên (Candidate pattern) trong quá trình khai phá mẫu tuần tự phổ biến
Nếu so với giải thuật GSP, để cập nhật lại giá trị support của các mẫu trong CSDL gốc “DB”, giải thuật IncSP chỉ cần thực hiện quét duy nhất CSDL mới “db”
Giải thuật IncSP cũng tôn trọng việc giữ nguyên giá trị min_supp trong quá trình khai phá mẫu.
HƯỚNG TIẾP CẬN GIẢI QUYẾT VẤN ĐỀ
Giới thiệu
Trong lãnh vực khai phá dữ liệu nói chung, khai phá dữ liệu chuỗi thời gian nói riêng, có thể thấy việc khám phá các mẫu phổ biến phục vụ cho nhu cầu dự đoán, dự báo xu hướng dữ liệu ở các lãnh vực, ngành nghề đang được ngày một quan tâm nhiều hơn Điều này thể hiện rõ ở số lượng và sự đa dạng trong các hướng tiếp cận của các công trình nghiên cứu liên quan Và phần lớn, các công trình nghiên cứu đã công bố này tập trung khai phá mẫu phổ biến trong điều kiện dữ liệu không gia tăng Nghĩa là, thực hiện nghiên cứu và khai phá mẫu phổ biến trên toàn bộ cơ sở dữ liệu tĩnh tại một thời điểm nhất định
Hướng tiếp cận trên hiện vẫn đang rất được quan tâm và đầu tư nghiên cứu, vì phục vụ những yêu cầu cụ thể ở các lãnh vực trong thực tế Tuy nhiên, bên cạnh hướng tiếp cận trên, những năm gần đây, nhu cầu phát triển và quản lý dữ liệu ngày càng tiếp cận với nhiều thử thách hơn Một trong những thử thách mới là việc khai phá gia tăng cho dữ liệu chuỗi thời gian Nghĩa là, việc khai phá mẫu phổ biến trên cơ sở chuỗi thời gian lúc này được thực hiện ở một mức cao hơn: việc khai phá và cập nhật lại tập các mẫu phổ biến mới phải được thực hiện ngay khi có dữ liệu mới đến (được thêm mới vào cơ sở dữ liệu) sau mỗi khoảng thời gian được quy định trước Hình bên dưới đây, sẽ cho ta một cái nhìn trực quan hơn về sự khác biệt trong hai hướng tiếp cận vừa được trình bày:
34 Hình 4.1 Khai phá không gia tăng và Khai phá gia tăng [18]
Như hình 4.1, dễ dàng nhận thấy rằng, đối với hướng tiếp cận mới là khai phá gia tăng, một lợi thế dễ dàng nhận thấy trong hướng tiếp cận này là để khai phá và cập nhật được tập mẫu phổ biến mới nhất, giải thuật khai phá sẽ chỉ cần làm việc dựa trên dữ liệu mới và tập mẫu phổ biến hiện tại; mà không cần phải quét lại toàn bộ cơ sở dữ liệu Điều này cho phép chúng ta có một tương lai tươi sáng hơn về thời gian khai phá
Nhưng mặt khác, đòi hỏi giải thuật khai phá phải “thông minh” hơn nhiều trong kỹ thuật xử lý
Một cách cụ thể hơn, vì các thuật toán khai khá dữ liệu thường có độ phức tạp tính toán cao, nếu sử dụng các giải pháp khai phá truyền thống cho bài toán gia tăng, mỗi khi thêm bảng ghi dữ liệu mới phải khai phá lại từ đầu, sẽ tiêu tốn một lượng thời gian rất lớn Vì vậy, ý tưởng chính cho giải thuật khai phá của bài toán gia tăng là mỗi khi thêm dữ liệu mới vào cơ sở dữ liệu thì phần dữ liệu gia tăng này được duyệt qua và kết hợp với tập các mẫu phổ biến đã được phát hiện trong lần khai phá trước, nhằm xác định các thành phần của cơ sở dữ liệu ban đầu cần duyệt lại Do vậy không cần phải duyệt lại toàn bộ cơ sở dữ liệu gốc
35 Trong những năm gần đây, các công trình nghiên cứu theo hướng tiếp cận khai phá gia tăng ngày càng nhiều hơn, nhưng đa số đều tập trung vào đối tượng khai phá là cơ sở dữ liệu tuần tự Trong đó, đáng chú ý nhất là hai giải thuật IncSP, IncSPAN Còn đối với bài toán mà luận văn đang hướng đến - khai phá gia tăng mẫu phổ biến trong cơ sở dữ liệu chuỗi thời gian – thì, vẫn còn có khá ít các công trình nghiên cứu Gần đây nhất và đáng chú ý nhất, có giải thuật Optimized-Join, một công trình nghiên cứu vào năm 2008 của nhóm tác giả M Y Eltabakh, M Ouzzani, M A Khalil, W G Aref and A.K Elmagarmid; cũng chính là công trình nền tảng mà luận văn sẽ dựa vào để mở rộng và cải tiến thêm lên cho bài toán khai phá gia tăng mẫu phổ biến trong cơ sở dữ liệu chuỗi thời gian
Giải thuật Optimized-Join được đề xuất trong công trình nghiên cứu năm 2008, nhấn mạnh khả năng khai phá và cập nhật tập mẫu phổ biến mỗi khi có một điểm dữ liệu mới được thêm vào cở sở dữ liệu chuỗi thời gian Cụ thể hơn, giải thuật được đề xuất nhằm giải quyết bài toán gia tăng dữ liệu theo chiều ngang của một chuỗi thời gian nói riêng, toàn bộ cơ sở dữ liệu chuỗi thời gian nói chung (nhiều chuỗi thời gian) Giải thuật đảm bảo thỏa các tính chất đặc trưng của cơ sở dữ liệu chuỗi thời gian, như: tính liên tục của các điểm dữ liệu theo thời gian, thứ tự các điểm dữ liệu, chiều dài chuỗi thời gian; và đặc biệt là chấp nhận khoảng cách gap giữa các điểm dữ liệu Đây là những điểm nổi bật đáng chú ý của giải thuật so với các công trình nghiên cứu liên quan trước đó
Tuy nhiên, công trình nghiên cứu năm 2008 lại hoàn toàn không đề cập đến việc giải thuật Optimized-Join có khả năng giải quyết bài toán gia tăng dữ liệu theo chiều dọc cho cơ sở dữ liệu chuỗi thời gian Gia tăng dữ liệu theo chiều dọc là trường hợp khi cơ sở dữ liệu chuỗi thời gian được thêm mới dữ liệu, nhưng không phải là thêm một điểm dữ liệu mới trên một chuỗi thời gian đã tồn tại, mà là một điểm dữ liệu mới cho một chuỗi thời gian hoàn toàn mới, chưa từng xuất hiện trong cơ sở dữ liệu
36 Hình 4.2 Minh họa các trường hợp gia tăng dữ liệu của Cơ sở dữ liệu chuỗi thời gian (gia tăng theo chiều ngang và chiều dọc)
Mục tiêu của luận văn là mở rộng và cải tiến giải thuật Optimized-Join nhằm giải quyết được bài toán còn lại này, gia tăng dữ liệu theo chiều dọc cho cơ sở dữ liệu chuỗi thời gian Đồng thời, xử lý khoảng cách ràng buộc (gap) giữa hai điểm dữ liệu thời gian trong các mẫu phổ biến kết quả Để cụ thể hơn thế nào là sự gia tăng dữ liệu theo chiều ngang và gia tăng dữ liệu theo chiều dọc của một cơ sở dữ liệu chuỗi thời gian, dẫn đến sự gia tăng mẫu phổ biến trên toàn cơ sở dữ liệu, luận văn thể hiện qua hai ví dụ sau đây:
Cho tập dữ liệu Chuỗi thời gian, gồm 3 chuỗi T1, T2, T3:
T1 = (10, 20, 30, 20, 60) T2 = (20, 60, 30, 85, 10) T3 = (40, 10, 20, 35, 20) Với các giá trị người dùng quy định trước: min_supp = 3, gap (g) = 1
37 Gia tăng dữ liệu trên một chuỗi thời gian bất kỳ (gia tăng chiều ngang)
Chuỗi thời gian T3 gia tăng với item mới 30, như sau:
Item 30, trở thành mẫu phổ biến mới (chiều dài = 1) (Vì thỏa: min_supp ≥ 3, g ≤ 1)
Mẫu (20, 30), trở thành mẫu phổ biến mới (chiều dài > 1) (Vì thỏa: min_supp ≥ 3, g ≤ 1)
Gia tăng thêm đối tượng chuỗi thời gian mới (gia tăng chiều dọc) Gia tăng thêm Chuỗi thời gian mới T 4 :
Mẫu (10, 20), trở thành mẫu phổ biến mới (chiều dài > 1)
Cách thức tiếp cận và cải tiến giải thuật Optimizied-Join
Với mục tiêu khai phá gia tăng mẫu phổ biến trên cơ sở dữ liệu chuỗi thời gian, mà nền tảng dựa trên giải thuật Optimizied-Join của công trình nghiên cứu năm 2008, giải thuật cải tiến bắt đầu được khai triển với cấu trúc lưu trữ hoàn toàn dựa trên cấu trúc lưu trữ của Optimizied-Join, gồm các bảng GDS_Q, GDS_H, LDS_Ri, LDS_Li và CFP (Compress-CFP) Về trọng tâm giải thuật, hàm xử lý Counting Procedure được giữ nguyên về cơ bản đường hướng
Tuy nhiên, vì hướng đến mục tiên cải tiến giải thuật sao cho phù hợp với việc khai phá gia tăng mẫu phổ biến theo chiều dọc; cũng như để giải quyết một số những vấn đề phát sinh và những trường hợp đặc biệt trong giải thuật mà công trình nghiên
38 cứu 2008 không đề cập đến, luận văn đã thay đổi và cải tiến một vài phần trong các bước xử lý của giải thuật Optimizied-Join Giai đoạn này chiếm lượng thời gian lớn nhất trong quá trình hiện thực và cải tiến giải thuật của luận văn, cũng là giai đoạn quan trọng và cốt lõi, giúp xác định tính đúng đắn của giá trị đầu ra là tập các mẫu phổ biến của cơ sở dữ liệu chuỗi thời gian, khi gia tăng dữ liệu về cả chiều ngang lẫn chiều dọc
Hai trong những phần được cải tiến nhiều nhất là cách thức khai triển và xây dựng cơ chế lưu trữ, làm việc của bảng Compress-CFP và cách tính hệ sống F – hệ số góp phần vào việc tính toán và xác định trạng thái của các entry trong bảng Compress-CFP
Sau giai đoạn trên, một bài toán mới được đặt ra, đó là làm sao để thể hiện được trường hợp cơ sở dữ liệu được gia tăng theo chiều dọc, để chạy thực nghiệm giải thuật vừa cải tiến, ghi nhận kết quả và kiểm nghiệm tính đúng đắn của giải thuật? Điều này dẫn đến yêu cầu xây dựng một môi trường giả lập các trường hợp gia tăng của cơ sở dữ liệu chuỗi thời gian, bao gồm 2 trường hợp chính: gia tăng theo chiều ngang và gia tăng theo chiều dọc, tuân theo những tính chất đặc trưng của một cơ sở dữ liệu chuỗi thời gian
Chúng ta biết rằng, chuỗi thời gian (time series) là chuỗi các trị số thực, mỗi trị biểu diễn một giá trị đo tại những thời điểm cách đều nhau [1] Điều này nghĩa là, ta cần một môi trường thể hiện được hai trường hợp sau:
Trường hợp gia tăng dữ liệu theo chiều ngang: Mỗi khi tới một điểm thời gian nhất định, cách đều điểm thời gian trước, các chuỗi thời gian đồng thời được thêm vào một điểm dữ liệu mới, tương ứng của từng chuỗi thời gian
Trường hợp gia tăng dữ liệu theo chiều dọc: Mỗi khi tới một điểm thời gian nhất định, cách đều điểm thời gian trước, các chuỗi thời gian đồng thời được thêm vào một điểm dữ liệu mới, tương ứng của từng chuỗi thời gian hiện có trong cơ sở dữ liệu; và tương ứng với một hoặc nhiều chuỗi thời gian mới
Giải pháp đầu tiên được nghĩ đến khá đơn giản, đó là: tại cùng một điểm thời gian, sử dụng nhiều máy tính tách biệt nhau; mỗi máy thực hiện nhiệm vụ thêm mới dữ liệu cho một chuỗi thời gian được quy định trước Mỗi khi một điểm dữ liệu mới của một chuỗi thời gian bất kỳ được thêm vào cơ sở dữ liệu, giải thuật Optimizied-Join cải tiến được chạy trên một máy tính khác sẽ tiến hành khai phá gia tăng mẫu phổ biến
39 Hình 4.3 Mô phỏng giải pháp đầu tiên cho môi trường gia tăng dữ liệu theo chiều dọc
Ban đầu, giải pháp trên đơn giản và có vẻ hợp lí, nhưng lại đòi hỏi về chi phí triển khai Do đó, để giải quyết bài toán mới nhưng đóng vai trò thiết yếu này, luận văn cũng đề xuất một môi trường đáp ứng và thể hiện được hai trường hợp gia tăng (như đề cập ở đoạn trên) của cơ sở dữ liệu chuỗi thời gian Môi trường này sẽ được mô tả chi tiết và cụ thể hơn trong phần 4.3 bên dưới
Như vậy, tổng quát lại, cách tiếp cận của luận văn để giải quyết mục tiêu đã đặt ra ở mục 4.1 bao gồm hai phần quan trọng sau:
Điều chỉnh và cải tiến giải thuật Optimizied-Join: nhằm giải quyết bài toán khai phá gia tăng mẫu phổ biến trong cơ sở dữ liệu chuỗi thời gian, cho cả hai trường hợp gia tăng dữ liệu (theo chiều ngang và chiều dọc)
Thiết kế và xây dựng môi trường giả lập gia tăng dữ liệu theo cả chiều ngang lẫn chiều dọc
4.2.1 Một số điều chỉnh dựa trên giải thuật Optimizied-Join gốc
Một trong những thách thức và khó khăn lớn nhất trong quá trình nghiên cứu ý tưởng khai phá gia tăng mẫu phổ biến trên cơ sở dữ liệu chuỗi thời gian của bài báo
“Incremental mining for frequent patterns in evolving time series databases” [2], đó là: bài báo mô tả bài toán khá tổng quát; tổng quát từ việc mô tả ý tưởng của toàn bộ giải thuật, các thành phần tham gia, cho đến tổng quát trong việc mô tả ý tưởng làm việc của từng phần riêng biệt Vì chỉ dừng lại ở mức mô tả tổng quát, dẫn đến khó khăn cho người tìm hiểu trong việc có được một cái nhìn bao quát, cụ thể về mối liên hệ giữa các thành phần, cách các thành phần liên kết với nhau, làm việc theo một luồng logic chung như thế nào; và một số trường hợp đặc biệt của bài toán không được đề cập rõ ràng quy tắc hoặc hướng giải quyết
Vì thế, trong suốt quá trình hiện thực thuật toán Optimizied-Join gốc, luận văn đã đồng thời thực hiện việc điều chỉnh và cải tiến giải thuật, theo hai tiêu chí: một là, dựa trên ý tưởng gốc ban đầu mà công trình nghiên cứu năm 2008 mô tả; hai là, phù hợp với mục tiêu cải tiến giải thuật nhằm giải quyết bài toán gia tăng dữ liệu theo chiều dọc trên cơ sở dữ liệu chuỗi thời gian Cụ thể gồm những phần sau: Điều chỉnh xử lý cho tập các mẫu ứng cử (P + k)
Theo các thuật ngữ trong công trình nghiên cứu 2008 [2]:
k là một điểm dữ liệu mới, vừa được thêm vào cơ sở dữ liệu (CSDL) chuỗi thời gian
P là các mẫu phổ biến P có thể là mẫu phổ biến gồm 1 phần tử hoặc nhiều phần tử
P = (20), là mẫu phổ biến gồm 1 phần tử (singleton Frequent Pattern)
P = (10, 20), là mẫu phổ biến gồm 2 phần tử (hay, non-singleton Frequent Pattern)
Một mẫu phổ biến P có khả năng được mở rộng bởi một điểm dữ liệu mới k, được gọi là “mẫu ứng cử”, ký hiệu: (P + k)
GDS_H, là bảng có tính chất toàn cục, lưu trữ toàn bộ các mẫu phổ biến của CSDL chuỗi thời gian; và những mẫu phổ biến này là những mẫu phổ biến có dạng non-singleton Frequent Pattern
THỰC NGHIỆM
Tổng quan
Chương trình được thiết kế và hiện thực bằng ngôn ngữ Java trong môi trường Spring framework, với cấu hình máy là bộ vi xử lý Intel(R) Core(TM) i7-6500U CPU
@ 2.50GHz, bộ nhớ 8.00GB RAM Dữ liệu thực nghiệm là các bộ dữ liệu lấy từ nguồn Datamarket và chủ yếu là bộ dữ liệu tự tạo bởi máy tính Bộ dữ liệu tự tạo có giá trị ngẫu nhiên từ 1-50 , với số lượng Time Series từ 1 đến 10 chuỗi, độ dài 1.000 điểm cho mỗi chuỗi
Mỗi bộ dữ liệu đầu vào sẽ được đọc từ file txt và sau đó được lưu trữ vào cơ sở dữ liệu MongoDB Về tổng quát, chương trình sẽ lần lượt thực hiện các giai đoạn sau:
Đọc dữ liệu từ file txt: Chương trình sẽ đọc dữ liệu từ file txt được thiết lập sẵn trong phạm vi lưu trữ nguồn (source code) của chương trình Khi cần thay đổi tập dữ liệu thử nghiệm, người dùng có thể thay đổi file txt với cùng tên file, hoặc thay đổi dữ liệu đầu vào trực tiếp trên file, trước khi bắt đầu chạy thực nghiệm
Dữ liệu trên file được lưu trữ theo dạng hàng cột, mỗi cột biểu diễn một chuỗi thời gian (time series), mỗi hàng biểu diễn dữ liệu tại một điểm thời gian của các chuỗi thời gian Dữ liệu là kiểu số nguyên dương
Quá trình đọc file txt: Trong quá trình đọc file dữ liệu, chương trình cũng tiến hành một số bước xử lý nhỏ nhằm mục đích làm sạch dữ liệu đầu vào,
60 thỏa các điều kiện sẵn sàng trước khi gọi các giải thuật chính bắt đầu thực nghiệm
Dữ liệu vừa được tiền xử lý sẽ được lưu trữ vào một bảng tạm trong cơ sở dữ liệu, gọi là rawTimeseries
Một phần khác của chương trình, có thể xem là phần xử lý song song, độc lập với quá trình đọc dữ liệu và lưu trữ xuống bảng rawTimeseries trên, sẽ tiến hành đọc và tiến hành thực nghiệm với giải thuật khai phá mẫu gia tăng mỗi khi có dữ liệu của một điểm thời gian mới xuất hiện trong bảng rawTimeseries
Giải thuật khai phá mẫu gia tăng được gọi xử lý cho mỗi điểm dữ liệu mới được thêm vào cơ sở dữ liệu chuỗi thời gian, ở một chuỗi thời gian bất kỳ, hoặc ở một chuỗi thời gian hoàn toàn mới Quá trình khai phá chủ yếu dựa trên giải thuật Obtimizied-join của bài báo [2]
Cuối cùng, sau quá trình khai phá, là cập nhật lại tập mẫu phổ biến của toàn bộ cơ sở dữ liệu chuỗi thời gian.
Tiền xử lý dữ liệu
Trong những giai đoạn đầu thiết kế và thực hiện chương trình chạy thực nghiệm, phần tiền xử lý dữ liệu cho tập dữ liệu bao gồm các phần xử lý những giá trị bị ngắt quãng, bị thiếu, Trong đó, có kỹ thuật PAA và SAX, nhằm thu giảm số chiều dữ liệu và rời rạc hóa dữ liệu Tuy nhiên, sau quá trình phân tích kỹ hơn về dữ liệu đầu vào và nguyên lý khai phá của giải thuật gia tăng đang được áp dụng, luận văn quyết định không thực hiện các kỹ thuật PAA và SAX, nhằm đảo bảo tập dữ liệu thực nghiệm của luận văn có tính chất gần giống nhất với kiểu tập dữ liệu mẫu mà giải thuật Obtimized- Join đã sử dụng và chạy thực nghiệm trước đây, hầu có được tập kết quả tập mẫu phổ biến gia tăng có tính đúng đắn nhất
Một điểm khá quan trọng trong phần tiền xử lý dữ liệu của chương trình, là phần xử lý dữ liệu tại các điểm thời gian cũ của một chuỗi thời gian hoàn toàn mới, vừa được gia tăng thêm trên toàn bộ cơ sở dữ liệu Vì phải tuân theo những tính chất của một chuỗi thời gian, mà cụ thể hơn là tính chất về dữ liệu tại mỗi điểm thời gian sau một
61 khoảng thời gian cố định Do đó, việc xử lý dữ liệu của những điểm thời gian cũ, cho một chuỗi thời gian mới cũng là một phần quan trọng phải thực hiện trong giai đoạn tiền xử lý dữ liệu của chương trình.
Dữ liệu thực nghiệm
Trong phần thực nghiệm, chúng tôi sử dụng 3 bộ dữ liệu chuỗi thời gian thuộc các lĩnh vực khác nhau, kích thước khác nhau và chứa các thành phần (kiểu) khác nhau
Trong đó, hai bộ dữ liệu được tải về từ trang DataMarket (http://datamarket.com), hoặc một số trang thư viện dữ liệu thực nghiệm Time Series của một số trường đại học riêng lẻ khác có các công trình nghiên cứu về Time Series, được kiểm tra xử lý định dạng, tiền xử lý dữ liệu, Một bộ dữ liệu khác là bộ dữ liệu nhân tạo, như có đề cập ở phần tổng quan
Bộ dữ liệu 1 (từ trang Datamarket)
- Tên bộ dữ liệu: Tổng số ca sinh nở ở California năm 1959 (Daily total female births in California, 1959)
- Số lượng Chuỗi thời gian: 1 - Kích thước: 380 điểm
Hình 5.1 Bộ dữ liệu 1 – Tổng số ca sinh nở ở California năm 1959
Bộ dữ liệu 2 (từ trang DataMarket)
- Tên bộ dữ liệu: Zuerich monthly sunspot numbers 1750-1800 - Số lượng chuỗi thời gian: 1
Hình 5.2 Bộ dữ liệu 2 – Zuerich monthly sunspot number 1750-1800
Bộ dữ liệu 3 (Bộ dữ liệu tự tạo)
- Số lượng chuỗi thời gian: 10 - Kích thước: 1,000 điểm - Miền giá trị: 1-50
63 Hình 5.3 Bộ dữ liệu 3 – Mô hình biểu diễn 1 Time Series trong bộ dữ liệu, chiều dài 100 điểm
Mô tả thực nghiệm
Trong ba bộ dữ liệu chuỗi thời gian vừa mô tả ở mục 5.3., bộ dữ liệu thứ 3 (bộ dữ liệu nhân tạo) được tạo ra dựa trên phương pháp mà công trình năm 2008 [2] đề xuất Bộ dữ liệu này gồm các giá trị ngẫu nhiên được tạo ra trong miền giá trị số nguyên dương từ 1 đến 50, số lượng Time Series là 10 chuỗi, mỗi chuỗi có chiều dài 1,000 điểm Tập dữ liệu đầu vào ban đầu, sẽ gồm 5 chuỗi thời gian (Time Series), mỗi chuỗi thời gian có chiều dài 700 điểm Tập gia tăng để chạy các trường hợp gia tăng trên những chuỗi thời gian hiện tại (gia tăng chiều ngang) và gia tăng thêm chuỗi thời gian mới (gia tăng chiều dọc), sẽ lần lượt là từng chuỗi thời gian trong 5 chuỗi còn lại, với chiều dài 300 điểm còn lại Trong phần thực nghiệm, cả ba bộ dữ liệu sẽ lần lượt được sử dụng trong những trường hợp thực nghiệm khác nhau
Ngoài tập dữ liệu đầu vào, các thông số sau đây cũng là những thông số bắt buộc phải được xác định giá trị trước khi bắt đầu giải thuật khai phá gia tăng mẫu phổ biến: min_supp và gap Trong đó, min_supp là ngưỡng giá trị phản ánh số lần xuất hiện tối thiểu của mỗi mẫu để có thể được xem là một mẫu phổ biến hay không Gap là khoảng cách tối thiểu được chấp nhận giữa hai điểm dữ liệu k và k’, quyết định k’ có khả năng mở rộng k hay không Luận văn tạm đặt giá trị min_supp = 3 và gap = 2 làm giá trị ban đầu cho hai thông số trong những trường hợp chạy thực nghiệm đầu tiên
Cụ thể hơn, luận văn sẽ tiến hành các thực nghiệm sau đây:
Thực nghiệm về gia tăng dữ liệu theo chiều ngang
Trên cùng một chuỗi thời gian, tăng giá trị gap
Trên cùng số lượng chuỗi thời gian (≥ 1), tăng giá trị gap
Thực nghiệm gia tăng dữ liệu theo chiều dọc
5.4.1 Thực nghiệm về gia tăng dữ liệu theo chiều ngang
Trên cùng một chuỗi thời gian, tăng giá trị gap a Thực nghiệm trên bộ dữ liệu 1
Trong thực nghiệm này, luận văn chạy trên bộ dữ liệu có một chuỗi thời gian duy nhất, là Bộ dữ liệu 1; cố định giá trị ngưỡng hỗ trợ tối thiểu min_supp
= 3, cố định độ dài chuỗi và lần lượt thay đổi giá trị thông số gap từ 2, 3, 4, 5, 6
Luận văn lần lượt chạy thực nghiệm cho Giải thuật 2008 – cải tiến, Giải thuật 2008 – gốc và Giải thuật Brute-Force Ứng với mỗi trường hợp thực nghiệm và ứng với mỗi lần chạy của gap, luận văn sẽ ghi nhận lại thời gian thực thi toàn bộ quá trình khai phá và số lượng mẫu được khai phá Từ đó, sau tất cả trường hợp thực nghiệm, đánh giá được đưa ra dựa trên thời gian và số lượng mẫu phố biến được khai phá
Kết quả thực nghiệm Giải thuật 2008 – cải tiến và Giải thuật 2008 gốc
TS Number Min_supp Gap Length Time (ms) Patterns
Bảng 5.1 Kết quả thực nghiệm Giải thuật 2008 – cải tiến, với bộ dữ liệu 1
TS Number Min_supp Gap Length Time (ms) Patterns
Bảng 5.2 Kết quả thực nghiệm Giải thuật 2008 – gốc, với bộ dữ liệu 1
Kết quả thực nghiệm Giải thuật 2008 – cải tiến và Giải thuật Brute-Force
TS Number Min_supp Gap Length Time (ms) Patterns
Bảng 5.3 Kết quả thực nghiệm Giải thuật 2008 – cải tiến, với bộ dữ liệu 1
TS Number Min_supp Gap Length Time (ms) Patterns
Bảng 5.4 Kết quả thực nghiệm Giải thuật Brute-Force, với bộ dữ liệu 1
66 b Thực nghiệm trên bộ dữ liệu 2
Tương tự, trong thực nghiệm này, luận văn cũng chạy trên bộ dữ liệu có một chuỗi thời gian duy nhất, nhưng là Bộ dữ liệu 2; cố định giá trị ngưỡng hỗ trợ tối thiểu min_supp = 3, cố định độ dài chuỗi và lần lượt thay đổi giá trị thông số gap từ 2, 3, 4, 5, 6 Luận văn lần lượt chạy thực nghiệm cho Giải thuật 2008 – cải tiến, Giải thuật 2008 – gốc và Giải thuật Brute-Force
Kết quả thực nghiệm Giải thuật 2008 – cải tiến và Giải thuật 2008 gốc
TS Number Min_supp Gap Length Time (ms) Patterns
Bảng 5.5 Kết quả thực nghiệm Giải thuật 2008 – cải tiến, với bộ dữ liệu 2
TS Number Min_supp Gap Length Time (ms) Patterns
Bảng 5.6 Kết quả thực nghiệm Giải thuật 2008 – gốc, với bộ dữ liệu 2
Kết quả thực nghiệm Giải thuật 2008 – cải tiến và Giải thuật Brute-Force
TS Number Min_supp Gap Length Time (ms) Patterns
Bảng 5.7 Kết quả thực nghiệm Giải thuật 2008 – cải tiến, với bộ dữ liệu 2
TS Number Min_supp Gap Length Time (ms) Patterns
Bảng 5.8 Kết quả thực nghiệm Giải thuật Brute-Force, với bộ dữ liệu 2 Đánh giá chung:
Qua kết quả trường hợp thực nghiệm trên, khác nhau về tập dữ liệu đầu vào, ta có thể đánh giá về sự gia tăng số lượng mẫu phổ biến và thời gian khai phá, như sau:
- Về thời gian khai phá: Thời gian khai phá của Bộ dữ liệu 2 tương đương với thời gian của Bộ dữ liệu 1, mặc dù chiều dài Bộ dữ liệu 2 dài gần gấp đôi chiều dài của Bộ dữ liệu 1
Nguyên nhân do thời gian khai phá trên mỗi cơ sở dữ liệu chuỗi thời gian, phụ thuộc rất lớn vào: miền giá trị các điểm dữ liệu, số lần xuất hiện lặp lại của mỗi điểm dữ liệu là Single-Pattern, và vị trí xuất hiện của những Single-
68 Pattern này bên cạnh những điểm dữ liệu khác Vì những điều này ảnh hướng đến số lượng mẫu ứng cử sẽ lần lượt được giải thuật khai phá xử lý để có thể là một mẫu phổ biến hay không Số lượng mẫu trong tập ứng cử này càng nhiều, thời gian giải thuật khai phá xử lý càng lâu
Sự chênh lệch về thời gian khai phá mỗi khi tăng giá trị gap, phụ thuộc vào vị trí phân bố của các điểm dữ liệu trong toàn CSDL và giá trị của thông số gap đầu vào hiện đang được xét
- Về số lượng mẫu được khai phá: phụ thuộc vào những yếu tố y như đối với thời gian khai phá (vừa liệt kê ở trên) Ngoài ra, còn phụ thuộc vào yếu tố “số lần xuất hiện của các Single-Pattern gần những mẫu mà các Single-Pattern này có khả năng mở rộng” Yếu tố này quyết định “mẫu mở rộng” mới này có thỏa giá trị ngưỡng hỗ trợ min_supp hay không
Sự chênh lệch về số lượng mẫu phổ biến mới được khai phá, mỗi khi tăng giá trị gap, phụ thuộc vào: vị trí phân bố của các Single-Pattern, giá trị gap đang xét, số lần xuất hiện của các điểm dữ liệu và giá trị min_supp
Bên cạnh đó, kết quả thực nghiệm cho thấy, Giải thuật 2008 – cải tiến với những điều chỉnh, cải tiến mới, đặc biệt là điều chỉnh ràng buộc để một mẫu ứng cử viên có là một mẫu real-candidate và điều chỉnh điều kiện của phép merge- join LP và Lk, tập kết quả mẫu phổ biến là đủ nghiệm, nghiêm ngặt và thỏa sát với mong đợi của người dùng hơn khi xác định những giá trị ngưỡng hỗ trợ tối thiểu (min_supp) và gap (g) ban đầu; thời gian khai phá cũng nhanh hơn đáng kể so với Giải thuật 2008 gốc
Ngoài ra, khi so sánh với với kết quả thực nghiệm của Giải thuật Brute-
Force, kết quả cũng cho thấy Giải thuật 2008 cải tiến tối ưu hơn về thời gian khai phá Đặc biệt, khi lượng dữ liệu càng nhiều, thời gian khai phá của Giải thuật 2008 – cải tiến càng thể hiện sự tối hơn so với Brute-Force khi thời gian kha phá giữ 2 giải thuật ngày càng chênh lệch nhiều hơn
Sự đánh giá trên, chúng ta sẽ có thể thấy được sự lặp lại và khẳng định rõ ràng hơn qua những thực nghiệm ở các mục tiếp theo
Trên cùng số lượng chuỗi thời gian (≥ 1), tăng giá trị gap Ở trường hợp thực nghiệm này, ta cũng làm các bước thử nghiệm tương tự cho việc gia tăng lần lượt giá trị gap ở các thực nghiệm ngay trên Nhưng, vì ở bộ dữ liệu 1 và 2, chỉ có duy nhất một chuỗi thời gian và chiều dài chuỗi cũng không nhiều, nên ở phần thực nghiệm này trở đi, chúng ta sẽ sử dụng bộ dữ liệu 3 – bộ dữ liệu tự tạo – để chạy thực nghiệm, vì có số lượng chuỗi thời gian (time series) nhiều