Giới thiệu đề tài 1 GIỚI THIỆU ĐỀ TÀI 1.1 Dữ liệu chuỗi thời gian và vấn đề khai phá dữ liệu chuỗi thời gian 1.1.1 Khai phá dữ liệu Khai phá dữ liệu là: - một quá trình trích xuất tri
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
TRẦN NHẬT TUẤN
KẾT HỢP THU GIẢM SỐ CHIỀU
VÀ KỸ THUẬT LẬP TRÌNH ĐA LUỒNG
ĐỂ TĂNG TỐC GOM CỤM DỮ LIỆU CHUỖI THỜI GIAN VỚI ĐỘ ĐO XOẮN THỜI GIAN ĐỘNG
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 07 năm 2017
Trang 2ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
TRẦN NHẬT TUẤN
KẾT HỢP THU GIẢM SỐ CHIỀU
VÀ KỸ THUẬT LẬP TRÌNH ĐA LUỒNG
ĐỂ TĂNG TỐC GOM CỤM DỮ LIỆU CHUỖI THỜI GIAN VỚI ĐỘ ĐO XOẮN THỜI GIAN ĐỘNG
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ
PGS TS DƯƠNG TUẤN ANH
TP HỒ CHÍ MINH, tháng 07 năm 2017
Trang 3CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : PGS TS DƯƠNG TUẤN ANH
Cán bộ chấm nhận xét 1 : TS PHẠM VĂN CHUNG
Cán bộ chấm nhận xét 2 : TS LÊ VĂN QUỐC ANH
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 18 tháng 07 năm 2017 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1 PGS TS QUẢN THÀNH THƠ (Chủ tịch)
2 TS NGUYỄN AN KHƯƠNG (Thư ký)
3 TS PHẠM VĂN CHUNG (Phản biện 1)
4 TS LÊ VĂN QUỐC ANH (Phản biện 2)
5 TS TRẦN TUẤN ANH (Ủy viên)
Trang 4ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
- Ứng dụng kỹ thuật lập trình đa luồng để tăng tốc việc tính toán độ đo DTW
- Tìm hiểu giải thuật K-medoids cải tiến được dùng làm giải thuật gom cụm chính
III NGÀY GIAO NHIỆM VỤ: 16/01/2017
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 18/06/2017
V CÁN BỘ HƯỚNG DẪN: PGS TS DƯƠNG TUẤN ANH
Trang 5LỜI CÁM ƠN
Đầu tiên tôi xin được gửi lời cảm ơn tập thể các thầy cô của khoa Khoa học & Kỹ thuật Máy tính trường Đại học Bách Khoa đã tận tình chỉ dạy và trang bị cho tôi những kiến thức cần thiết đề làm nền tảng cho việc thực hiện luận văn cũng như những kinh nghiệm quý báu để tôi vững tin hơn trong môi trường làm việc sau này Xin chân thành cảm ơn thầy Dương Tuấn Anh đã tận tình giúp đỡ, định hướng và cung cấp ý tưởng cũng như tài liệu tham khảo trong thời gian tôi làm luận văn Ngoài ra, tôi xin được gửi lời cảm ơn chân thành đến gia đình và bạn bè - những người luôn ở bên cạnh động viên tôi về vật chất lẫn tinh thần và hỗ trợ tôi hoàn thành luận văn này
Trang 6TÓM TẮT
Dữ liệu chuỗi thời gian đã trở nên rất cần thiết và phổ biến trong nhiều lĩnh vực ứng dụng Ý tưởng về việc thu thập và phân tích dữ liệu chuỗi thời gian đã có từ lâu Tuy nhiên, vẫn có những thách thức nhất định khi làm việc với dữ liệu chuỗi thời gian, cụ thể là gom cụm dữ liệu, bài toán đóng vai trò quan trọng trong rất nhiều ứng dụng dữ liệu Với nhiều trường hợp thì độ đo Euclid tỏ ra quá cứng nhắc vì không thích nghi được với những phép biến đổi như tịnh tiến, co giãn biên độ hay xoắn trục thời gian Hơn nữa, độ đo này đã được chứng minh là ít chính xác và thường cho kết quả không mong muốn trong một số lĩnh vực ứng dụng như dữ liệu đa phương tiện Sự ra đời của độ đo xoắn thời gian động (DTW) đã góp phần giải quyết vấn đề trên bằng cách cho phép ánh xạ các hình dạng tương tự nhau thậm chí khi các hình dạng đó không còn khớp về trục thời gian Tuy độ đo DTW cho kết quả tốt hơn độ đo khoảng cách Euclid trên gần như mọi bài toán, nhưng lại thời gian tính toán rất lâu Vì vậy, một số giải pháp được đưa ra để tăng tốc DTW
Đề tài nghiên cứu này tập trung vào việc xây dựng chương trình gom cụm dữ liệu dựa vào giải thuật K-medoids với độ đo xoắn thời gian động DTW, kết hợp kỹ thuật thu giảm số chiều PAA và kỹ thuật lập trình đa luồng để tăng tốc thời gian gom cụm Đặc điểm nổi bật của phương pháp này là đánh đổi giữa thời gian thực thi và kết quả đạt được Kết quả thực nghiệm cho thấy chất lượng gom cụm vẫn tương đối chính xác nhưng đã rút ngắn đáng kể về mặt thời gian
Trang 7ABSTRACT
Time series data have become a ubiquitous, necessary data source in many application domains About the idea of collecting and analyzing time series data, there are still certain challenges in working with them, namely cluster analysis – which plays an important role in a wide variety of data applications In most cases, using Euclidean dissimilarity for time series data is inelastic in regards to transformation methods, such as shifting, scaling or time warping Moreover, its result is not good and unexpected in some application domains, for example, multimedia data Dynamic Time Warping, as a dissimilarity measure, overcomes the problem by mapping analogous shapes, even those are not matched on time axis Although being better than Euclidean dissimilarity at quality of results in most of clustering problems, DTW calculation takes a very long time to finish execution Therefore, it requires techniques to accelerate DTW calculation
This study focuses on building clustering system based on K-medoids algorithm and DTW distance, combining dimensionality reduction and multithreading technique to speed up time series clustering The outstanding feature of this method is the tradeoff between execution time and clustering quality Experimental results show that clustering quality is acceptably accurate, while taking significantly less time to execute
Trang 8LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả báo cáo trong luận văn này và chương trình là sản phẩm
do công sức lao động của chính tôi thực hiện, không có sự sao chép từ những công trình nào khác, ngoại trừ những kết quả từ các công trình khác đã ghi rõ trong luận văn Tất cả các kiến thức tôi học hỏi được từ những tài liệu tham khảo đều được trích dẫn nguồn đầy đủ Nếu có bất cứ sai phạm nào so với lời cam đoan, tôi xin chịu các hình thức xử lý theo quy định
Trang 9MỤC LỤC
GIỚI THIỆU ĐỀ TÀI 1
1.1 Dữ liệu chuỗi thời gian và vấn đề khai phá dữ liệu chuỗi thời gian 1
1.1.1 Khai phá dữ liệu 1
1.1.2 Dữ liệu chuỗi thời gian 1
1.1.3 Khai phá dữ liệu chuỗi thời gian 2
1.2 Bài toán gom cụm trong dữ liệu chuỗi thời gian 3
1.3 Mục tiêu 7
1.4 Phương pháp nghiên cứu 8
1.5 Ý nghĩa của luận văn 8
1.6 Những kết quả đạt được của luận văn 9
1.7 Nội dung chính của luận văn 10
CƠ SỞ LÝ THUYẾT 11
2.1 Các độ đo khoảng cách chuỗi thời gian 11
2.1.1 Các độ đo trong không gian Euclid 11
2.1.2 Độ đo xoắn thời gian động 12
2.2 Các giải thuật gom cụm dữ liệu thường dùng 16
2.2.1 Giải thuật K-means 17
2.2.2 Giải thuật K-medoids 18
2.3 Các phương pháp thu giảm số chiều dựa vào đặc trưng 20
2.3.1 Các phương pháp biến đổi sang miền tần số 20
2.3.2 Các phương pháp xấp xỉ tuyến tính từng đoạn 22
2.4 Các tiêu chí đánh giá chất lượng gom cụm 23
CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN 26
3.1 Cách biểu diễn xấp xỉ gộp từng đoạn (PAA) 26
Trang 103.2 Độ đo xoắn thời gian động với biểu diễn dữ liệu đã thu giảm số chiều bằng PAA 28
3.3 Giải thuật gom cụm K-medoids cải tiến 29
3.4 Kỹ thuật lập trình đa luồng để tăng tốc tính toán độ đo DTW 30
HỆ THỐNG GOM CỤM DỮ LIỆU CHUỖI THỜI GIAN 34
4.1 Đặt vấn đề 34
4.2 Hướng giải quyết 35
4.2.1 Kỹ thuật tính khoảng cách PDTW 35
4.2.2 Kỹ thuật khởi tạo trung tâm cụm của giải thuật K-medoids cải tiến 37
4.2.3 Kỹ thuật lập trình đa luồng 39
4.3 Kiến trúc chi tiết hệ thống 41
4.3.1 Module giao diện người dùng 42
4.3.2 Module xử lý chuỗi thời gian 43
4.3.3 Module gom cụm dữ liệu 44
4.3.4 Module đánh giá kết quả gom cụm 45
4.3.5 Module trực quan hóa dữ liệu và kết quả 45
THỰC NGHIỆM 47
5.1 Giới thiệu tập dữ liệu mẫu 47
5.2 Đánh giá thời gian thực thi của kỹ thuật lập trình đa luồng 49
5.3 Đánh giá chất lượng gom cụm và thời gian thực thi của hệ thống 51
5.3.1 Tập dữ liệu Face Four 52
5.3.2 Tập dữ liệu Trace 53
5.3.3 Tập dữ liệu CBF 55
5.3.4 Tập dữ liệu Heterogeneous 56
5.3.5 Tập dữ liệu CC 58
5.3.6 Tập dữ liệu Inline Skate 60
5.4 Kết luận 62
Trang 11GIẢI THUẬT GOM CỤM DỰA VÀO CÁC ĐỈNH MẬT ĐỘ 63
6.1 Giới thiệu giải thuật 63
6.2 Chi tiết giải thuật 64
6.3 Hiện thực giải thuật gom cụm dựa vào các đỉnh mật độ trong hệ thống 66
6.3.1 Tính toán mật độ cục bộ 𝝆 66
6.3.2 Tính toán khoảng cách 𝜹 66
6.3.3 Lựa chọn trung tâm cụm 67
6.3.4 Gán các đối tượng vào các cụm 67
6.4 Thực nghiệm 67
6.4.1 So sánh thời gian thực thi của giải thuật Density Peaks với giải thuật K-medoids cải tiến 67
6.4.2 Thực nghiệm giải thuật gom cụm Density Peaks với các tập dữ liệu 68
6.4.3 So sánh chất lượng gom cụm của giải thuật Density Peaks với giải thuật K-medoids cải tiến 70
6.5 Kết luận 73
KẾT LUẬN 74
7.1 Tổng kết 74
7.2 Những đóng góp của đề tài 74
7.3 Hướng phát triển 75
TÀI LIỆU THAM KHẢO 76
Trang 12DANH SÁCH HÌNH VẼ
Hình 1.1 Minh họa đường biểu diễn dữ liệu chuỗi thời gian chứng khoán 2
Hình 1.2 Minh họa quá trình gom cụm dữ liệu chuỗi thời gian 4
Hình 1.3 Minh họa gom cụm chuỗi thời gian dùng độ đo khoảng cách Euclid (trái) và độ đo DTW (phải) 6
Hình 2.1 (a) Tính khoảng cách theo Euclid và (b) tính khoảng cách theo DTW 12
Hình 2.2 Ma trận xoắn và đường xoắn tối ưu [10] 13
Hình 2.3 Đồ thị biểu diễn hai chuỗi thời gian 15
Hình 2.4 Ma trận xoắn tính DTW cho hai chuỗi thời gian 16
Hình 2.5 Quá trình gom cụm dùng K-means [11] 18
Hình 2.6 Các trường hợp thay thế của giải thuật K-medoids [11] 19
Hình 2.7 Minh họa cách biến đổi dữ liệu theo các phương pháp DFT, DWT [30] 21
Hình 3.1 Minh họa cho kỹ thuật thu giảm số chiều dữ liệu 27
Hình 3.2 Chuỗi X và xấp xỉ PAA của nó X' 27
Hình 3.3 Hai chuỗi thời gian tương tự và sắp xếp khoảng cách xoắn giữa chúng Hình trên là sắp xếp bởi DTW Hình dưới là sắp xếp PDTW trên biểu diễn thu giảm số chiều PAA của chúng 29
Hình 3.4 Minh họa kỹ thuật cải tiến tốc độ tính toán DTW 31
Hình 4.1 Lưu đồ giải thuật cho phương thức tính PAA 35
Hình 4.2 Lưu đồ giải thuật K-medoids cải tiến 37
Hình 4.3 Hệ thống gom cụm dữ liệu chuỗi thời gian 41
Hình 4.4 Giao diện chính của chương trình 42
Hình 4.5 Giao diện thể hiện kết quả gom cụm 45
Hình 4.6 Giao diện trực quan hóa dữ liệu 46
Hình 4.7 Giao diện trực quan hóa kết quả gom cụm 46
Hình 5.1 Hình minh họa tập dữ liệu Heterogeneous 48
Hình 5.2 Biểu đồ so sánh thời gian thực thi gom cụm giữa việc có áp dụng và không áp dụng kỹ thuật lập trình đa luồng 50
Hình 5.3 Hình minh họa tập dữ liệu Face Four 52
Hình 5.4 Đồ thị thời gian và chất lượng gom cụm trên tập Face Four 53
Hình 5.5 Hình minh họa tập dữ liệu Trace 53
Hình 5.6 Đồ thị thời gian và chất lượng gom cụm trên tập Trace 54
Trang 13Hình 5.7 Hình minh họa tập dữ liệu CBF 55
Hình 5.8 Đồ thị thời gian và chất lượng gom cụm trên tập CBF 56
Hình 5.9 Hình minh họa tập dữ liệu Heterogeneous 56
Hình 5.10 Đồ thị thời gian và chất lượng gom cụm trên tập Heterogeneous 57
Hình 5.11 Hình minh họa tập dữ liệu CC 58
Hình 5.12 Đồ thị thời gian và chất lượng gom cụm trên tập CC 59
Hình 5.13 Hình minh họa tập dữ liệu Inline Skate 60
Hình 5.14 Đồ thị thời gian và chất lượng gom cụm trên tập Inline Skate 61
Hình 6.1 Giải thuật trong không gian hai chiều (A) Phân bố điểm (B) Đồ thị quyết định dữ liệu trong A 65
Hình 6.2 Một số ví dụ kết quả gom cụm các đỉnh mật độ 65
Hình 6.3 Đồ thị thời gian và chất lượng gom cụm trên tập Trace 69
Hình 6.4 Đồ thị thời gian và chất lượng gom cụm trên tập Heterogeneous 70
Hình 6.5 Đồ thị so sánh thời gian và chất lượng gom cụm của 2 giải thuật trên tập Trace 72
Hình 6.6 Đồ thị so sánh thời gian và chất lượng gom cụm của 2 giải thuật trên tập Heterogeneous 73
Trang 14DANH SÁCH BẢNG
Bảng 5.1 Bảng so sánh thời gian thực thi gom cụm giữa việc có áp dụng và không
áp dụng kỹ thuật lập trình đa luồng (đơn vị thời gian: giây) 50Bảng 5.2 Bảng thời gian (đơn vị: ms) và chất lượng gom cụm trên tập Face Four 52Bảng 5.3 Bảng thời gian (đơn vị: ms) và chất lượng gom cụm trên tập Trace 54Bảng 5.4 Bảng thời gian (đơn vị: ms) và chất lượng gom cụm trên tập CBF 55Bảng 5.5 Bảng thời gian (đơn vị: ms) và chất lượng gom cụm trên tập
Heterogeneous 57Bảng 5.6 Bảng thời gian (đơn vị: ms) và chất lượng gom cụm trên tập CC 58Bảng 5.7 Bảng thời gian (đơn vị: ms) và chất lượng gom cụm trên tập Inline Skate 61Bảng 6.1 Bảng so sánh thời gian thực thi (đơn vị: ms) của hai giải thuật K-medoids cải tiến và Density Peaks 68Bảng 6.2 Bảng thời gian (đơn vị: ms) và chất lượng gom cụm trên tập Trace 69Bảng 6.3 Bảng thời gian (đơn vị: ms) và chất lượng gom cụm trên tập
Heterogeneous 70Bảng 6.4 Bảng so sánh thời gian (đơn vị: ms) và chất lượng gom cụm của 2 giải thuật trên tập Trace 71Bảng 6.5 Bảng so sánh thời gian (đơn vị: ms) và chất lượng gom cụm của 2 giải thuật trên tập Heterogeneous 72
Trang 15Giới thiệu đề tài
1
GIỚI THIỆU ĐỀ TÀI
1.1 Dữ liệu chuỗi thời gian và vấn đề khai phá dữ liệu chuỗi thời gian
1.1.1 Khai phá dữ liệu
Khai phá dữ liệu là:
- một quá trình trích xuất tri thức từ lượng lớn dữ liệu
- một quá trình không dễ (non-trivial) trích xuất thông tin ẩn, hữu ích, chưa được
biết trước từ dữ liệu
Các tác vụ khai phá dữ liệu: khai phá mô tả lớp/khái niệm (đặc trưng hóa và phân biệt hóa dữ liệu) - description, khai phá luật kết hợp/tương quan - association rule, phân loại/lớp dữ liệu - classification, dự báo - prediction, gom cụm dữ liệu - clustering, phân tích xu hướng - trend analysis, phân tích độ lệch và phần tử ngoại biên - outlier, phân tích độ tương tự - similarity analysis,…
Trong số các tác vụ trên, gom cụm là quá trình gom nhóm (cụm) dữ liệu hoặc đối tượng Các đối tượng trong cùng một cụm tương tự với nhau hơn so với đối tượng ở các cụm khác Đại diện hoặc mô tả của các cụm tạo thành được sử dụng trong các bài toán ra quyết định như classification, prediction, outlier detection
1.1.2 Dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian (time series) là tập hợp các quan sát tuần tự theo thời gian [1]
Dữ liệu này có thể là hai chiều hay nhiều chiều nhưng phải có một chiều là thời gian Chúng phổ biến rộng khắp trong đời sống Các số liệu được đo đạc như tỷ lệ ủng hộ ứng viên tổng thống Mỹ, đo huyết áp, lượng mưa hàng năm ở Brazil, giá trị cổ phiếu Yahoo, lượng truy cập web mỗi giây,… thay đổi liên tục theo thời gian Một đường biểu diễn dữ liệu chuỗi thời gian chứng khoán được minh họa ở Hình 1.1 Do đó, có thể nói dữ liệu chuỗi thời gian xuất hiện thực tế trong nhiều lĩnh vực như tin sinh học, người máy, y học, hóa học, nhận dạng cử chỉ, khí tượng học, thiên văn học, sinh trắc học, tài chính, sản xuất,… Một mẫu 4000 ảnh được lấy ngẫu nhiên từ 15 tờ báo xuất
Trang 16Giới thiệu đề tài
có thể được xử lý Cuối cùng là vấn đề xử lý dữ liệu hỗn tạp, có định dạng dữ liệu khác nhau, tần số lấy mẫu khác nhau, bị nhiễu và thiếu giá trị,…
1.1.3 Khai phá dữ liệu chuỗi thời gian
Gần tương tự như khai phá dữ liệu trong trường hợp tổng quát, các tác vụ chính trong khai phá dữ liệu chuỗi thời gian [2] bao gồm:
Trang 17Giới thiệu đề tài
3
- So trùng (indexing): Tên gọi khác là truy vấn bằng nội dung (query by content) Cho trước một chuỗi thời gian Q, và độ đo tương tự/sai biệt D(Q,C) nào đó, tìm
chuỗi thời gian tương tự nhất trong cơ sở dữ liệu DB
- Gom cụm (clustering): Tìm các phân nhóm tự nhiên của những chuỗi thời gian
trong cơ sở dữ liệu DB dựa vào độ đo tương tự/sai biệt D(Q,C) nào đó
- Phân lớp (classification): Cho trước một chuỗi thời gian Q chưa đánh nhãn, gán
nó vào một trong hai hoặc nhiều lớp đã được định nghĩa trước
- Dự báo (prediction hay forecasting): Cho trước một chuỗi thời gian Q chứa n điểm
dữ liệu, dự đoán giá trị tại thời điểm n + 1
- Tổng kết (summarization): Cho trước một chuỗi thời gian Q chứa n điểm dữ liệu với n là một số rất lớn, tạo một xấp xỉ (có thể minh họa bằng đồ thị) của Q mà có
thể giữ lại những đặc trưng chủ yếu của nó, nhưng vừa một trang đơn, màn hình máy tính, v.v…
- Phát hiện bất thường (anomaly detection): Tên gọi khác là dò tìm điểm đáng chú
ý (interestingness detection) Cho trước một chuỗi thời gian bình thường Q, và
một chuỗi thời gian không chú thích R, tìm tất cả các phần của R có chứa các mẫu
bất thường (xuất hiện mà không được mong đợi)
- Phân đoạn (segmentation): Tên gọi khác là phát hiện thay đổi (change detection) (a) Cho trước một chuỗi thời gian Q chứa n điểm dữ liệu, xây dựng một mẫu Q’,
từ K phân đoạn (K << n), sao cho Q’ gần xấp xỉ với Q (b) Cho trước một chuỗi thời gian Q, phân hoạch nó thành K phần đồng đều
- Phát hiện mô típ (motif discovery): Phát hiện mô típ về cốt lõi là việc tìm tất cả mọi chuỗi con (gọi là mô típ) mà xuất hiện lặp lại trong một chuỗi thời gian dài hơn [3]
1.2 Bài toán gom cụm trong dữ liệu chuỗi thời gian
Gom cụm dữ liệu chuỗi thời gian là một tiến trình rất quan trọng trong quá trình cô đọng và tổng quát hóa dữ liệu Gom cụm tương tự như phân lớp ở chỗ phân loại dữ liệu vào các nhóm Tuy nhiên, các nhóm này không được định nghĩa trước, mà được
Trang 18Giới thiệu đề tài
4
định nghĩa bằng bản thân dữ liệu, dựa trên sự tương tự giữa các chuỗi thời gian Gom cụm thường được xem như việc học không giám sát, dựa trên việc quyết định sự tương tự giữa các dữ liệu ở một số thuộc tính định nghĩa trước Những dữ liệu tương
tự nhau nhất được nhóm vào các cụm, nhưng các cụm đó phải rất khác biệt nhau
Hai phương pháp tổng quát cho gom cụm dữ liệu chuỗi thời gian là gom cụm phân
hoạch và gom cụm phân cấp Gom cụm phân cấp tính khoảng cách theo cặp, và sau
đó trộn các cụm tương tự từ dưới lên, không cần biết trước số lượng cụm Đây là một trong những công cụ tốt nhất để đánh giá dữ liệu, bằng cách tạo một biểu đồ nhánh của vài chuỗi thời gian từ miền được quan tâm Tuy nhiên, ứng dụng của nó chỉ giới hạn ở các tập dữ liệu nhỏ do độ phức tạp tính toán bậc hai Hình 1.2 minh họa một ví
dụ cho phương pháp gom cụm này
Các phương pháp phân hoạch đặt lại vị trí cho đối tượng bằng cách di chuyển chúng
từ cụm này tới cụm khác, bắt đầu từ một phân hoạch khởi tạo Các giải thuật tối thiểu hóa sai số là một trong số các phương pháp phân hoạch Các giải thuật này được sử dụng thường xuyên nhất, có xu hướng làm việc tốt với các cụm đặc và cô lập Ý tưởng cơ bản của chúng là tìm các cấu trúc gom cụm mà tối thiểu hóa một tiêu chuẩn sai số (đo khoảng cách giữa đối tượng và giá trị thể hiện của cụm) nào đó Tiêu chuẩn
nổi tiếng nhất là tổng bình phương sai số (Sum of Squared Error), đo tổng bình
phương khoảng cách Euclid giữa các đối tượng tới các giá trị thể hiện của chúng Giải
Hình 1.2 Minh họa quá trình gom cụm dữ liệu chuỗi thời gian
Trang 19Giới thiệu đề tài
5
thuật đơn giản và thường dùng nhất, sử dụng tiêu chuẩn bình phương sai số là giải
thuật K-means Giải thuật này phân hoạch dữ liệu vào K cụm (C 1 ,C 2 , ,C K), thể hiện
bằng các trung tâm cụm Trung tâm của mỗi cụm được tính bằng giá trị trung bình
(mean) tất cả các đối tượng thuộc về cụm đó Độ phức tạp tuyến tính là một trong các nguyên nhân dẫn tới sự phổ biến của các giải thuật K-means Dù cho số lượng đối tượng rất lớn, kết quả tính toán của giải thuật này là rất ấn tượng Do đó, K-means có lợi thế khi so sánh với các giải thuật gom cụm khác (ví dụ như gom cụm phân cấp)
có độ phức tạp phi tuyến Các lý do khác cho sự phổ biến của giải thuật này là tính
dễ hiểu, hiện thực đơn giản, tốc độ hội tụ nhanh và khả năng đáp ứng với dữ liệu thưa
thớt Một giải thuật phân hoạch khác cũng sử dụng ý tưởng tối thiểu hóa SSE là giải
thuật medoids Giải thuật này rất giống means, chỉ khác là mỗi cụm của
K-medoids được thể hiện bằng đối tượng gần trung tâm nhất (medoid) trong cụm, thay
vì một giá trị trung bình ngầm định có thể không thuộc về cụm đó như của K-means Phương pháp K-medoids trội hơn giải thuật K-means khi dữ liệu có sự tồn tại của nhiễu và các phần tử biên vì một medoid ít bị ảnh hưởng bởi các phần tử biên hay các giá trị cực trị so với một mean Tuy nhiên, quá trình của K-medoids đòi hỏi chi phí cao hơn phương pháp K-means
Tìm kiếm tương tự (similarity search) là công tác căn bản nhất để khai thác những cơ
sở dữ liệu chuỗi thời gian Bài toán tìm kiếm tương tự là thành phần căn bản trong nhiều công tác khai phá dữ liệu chuỗi thời gian cao cấp hơn như gom cụm, phân lớp, tìm mô típ, phát hiện mẫu bất thường, khám phá luật kết hợp và trực quan hóa dữ liệu
Đã có nhiều độ đo tương tự đã được sử dụng Việc chọn một độ đo tương tự là tùy thuộc rất nhiều vào miền ứng dụng và trong nhiều trường hợp thì một độ đo thuộc
chuẩn L p đơn giản như độ đo Euclid là đủ tốt để dùng Tuy nhiên trong nhiều trường hợp thì độ đo Euclid tỏ ra quá cứng nhắc vì không thích nghi được với những phép
biến đổi như tịnh tiến (shifting), co giãn biên độ (scaling) hay xoắn trục thời gian
(time warping) Hơn nữa, độ đo này đã được chứng minh là ít chính xác và thường cho kết quả không mong muốn trong một số lĩnh vực ứng dụng như dữ liệu đa phương tiện Nhiều phương pháp tìm kiếm tương tự mới hơn dựa vào những độ đo tương tự
Trang 20Giới thiệu đề tài
6
mềm dẻo và vững chắc hơn như độ đo xoắn thời gian động (Dynamic Time Warping
- DTW), độ đo chuỗi con chung dài nhất (Longest Common Subsequence - LCS) Sự
ra đời của DTW đã góp phần giải quyết vấn đề trên bằng cách cho phép ánh xạ các hình dạng tương tự nhau thậm chí khi các hình dạng đó không còn khớp về trục thời gian Hình 1.3 minh họa cho sự khác nhau giữa gom cụm chuỗi thời gian dùng độ đo Euclid và gom cụm chuỗi thời gian dùng độ đo DTW
Hình 1.3 Minh họa gom cụm chuỗi thời gian dùng độ đo khoảng cách Euclid (trái) và
độ đo DTW (phải)
Tuy độ đo DTW cho kết quả tốt hơn độ đo khoảng cách Euclid trên gần như mọi bài toán, nhưng lại thời gian tính toán rất lâu Vì vậy, một số giải pháp được đưa ra để tăng tốc DTW, bao gồm:
- Sử dụng các ràng buộc (constraint): giới hạn số các ô được đánh giá trong ma trận
chi phí, qua đó DTW tìm thấy đường xoắn tối ưu qua cửa sổ ràng buộc
- Rút trích đặc trưng: tăng tốc giải thuật DTW bằng cách thao tác trên biểu diễn dữ liệu đã thu giảm độ lớn sau khi áp dụng một số phương pháp biến đổi, gọi là những
kỹ thuật thu giảm số chiều (dimensionality reduction)
Nhu cầu sử dụng kỹ thuật thu giảm số chiều xuất phát từ việc dữ liệu chuỗi thời gian thường cực kỳ lớn và do đó tìm kiếm trực tiếp trên những dữ liệu này sẽ rất phức tạp
Trang 21Giới thiệu đề tài
7
và không hữu hiệu Việc thu giảm số chiều của dữ liệu dẫn tới biểu diễn dữ liệu chuỗi thời gian thành các dạng khác Sau đó, ta sẽ xây dựng các giải thuật tính toán, phân tích trên các dạng biểu diễn này
Có ba nhóm phương pháp chính để thu giảm số chiều là:
- Các phương pháp biến đổi sang miền tần số: gồm có biến đổi Fourier rời rạc (discrete Fourier transform - DFT), biến đổi wavelet rời rạc (discrete wavelet
transform - DWT)
- Các phương pháp xấp xỉ tuyến tính từng đoạn: gồm có xấp xỉ tuyến tính từng đoạn (piecewise linear approximation - PLA), xấp xỉ gộp từng đoạn (piecewise aggregate approximation - PAA), xấp xỉ hằng số từng đoạn thích nghi (adaptive
piecewise constant approximation - APCA)
- Các phương pháp điểm quan trọng: gồm có điểm mốc (landmark), điểm cực trị (extrema), điểm PIP (perceptually important points)
PAA được chọn lựa làm phương pháp thu giảm số chiều cho luận văn này, và theo
đó là việc xây dựng giải thuật tính toán DTW trên biểu diễn dữ liệu đã được thu giảm
số chiều (Piecewise Dynamic Time Warping - PDTW) [5] Kỹ thuật này tận dụng việc chúng ta có thể xấp xỉ một cách hiệu quả hầu hết chuỗi thời gian bằng phương pháp PAA Kỹ thuật này giúp tăng tốc DTW một hằng số lớn Giá trị hằng số phụ thuộc vào dữ liệu nhưng điển hình là từ hàng chục đến hàng trăm lần
Để giúp tăng tốc độ tính toán ma trận xoắn DTW, qua đó tăng tốc giải thuật DTW về
tổng thể, kỹ thuật lập trình đa luồng (multithreading) cũng được sử dụng, dựa trên ý
tưởng mỗi ô trong ma trận xoắn của hai chuỗi bất kỳ là một tác vụ tính toán và phụ thuộc vào kết quả tính toán của ô phía trên và ô phía bên trái của tác vụ này Việc áp dụng kỹ thuật này vẫn có thể đảm bảo tính toán được khoảng cách DTW chính xác như cách tính DTW cổ điển, với thời gian tính toán được rút ngắn lại
1.3 Mục tiêu
Mục tiêu nghiên cứu của đề tài này trên cơ sở dữ liệu chuỗi thời gian là xây dựng hệ thống gom cụm dữ liệu dựa vào giải thuật gom cụm K-medoids cải tiến với độ đo
Trang 22Giới thiệu đề tài
8
xoắn thời gian động DTW, kết hợp kỹ thuật thu giảm số chiều PAA và kỹ thuật lập trình đa luồng, với các vấn đề chính sau:
- Tìm hiểu cách tính khoảng cách DTW: ưu điểm của DTW đó là độ chính xác cao
so với các độ đo Euclid, nhưng cách tính toán phức tạp và chậm Do đó, đề tài sẽ tìm hiểu các phương pháp tính khoảng cách DTW
- Tìm hiểu phương pháp xấp xỉ gộp từng đoạn PAA để thu giảm số chiều và giải thuật PDTW để tính độ đo DTW cho dữ liệu chuỗi thời gian đã thu giảm số chiều bằng PAA
- Ứng dụng kỹ thuật lập trình đa luồng để tăng tốc việc tính toán độ đo DTW
- Tìm hiểu giải thuật K-medoids cải tiến [24] sẽ được dùng làm giải thuật gom cụm chính trong đề tài
- Tìm hiểu giải thuật gom cụm dựa vào các điểm cực đại mật độ (density peaks) và
so sánh hiệu quả của giải thuật này với giải thuật K-medoids cải tiến nói trên
1.4 Phương pháp nghiên cứu
Các phương pháp sẽ được sử dụng trong quá trình nghiên cứu:
- Phương pháp phân tích và tổng hợp lý thuyết
o Tìm hiểu về dữ liệu chuỗi thời gian và gom cụm dữ liệu chuỗi thời gian
o Tìm hiểu các vấn đề liên quan tới tăng tốc gom cụm dữ liệu chuỗi thời gian
o Tìm hiểu độ đo xoắn thời gian động DTW
o Tìm hiểu kỹ thuật thu giảm số chiều và kỹ thuật lập trình đa luồng
- Phương pháp hiện thực hóa áp dụng những kiến thức đã tìm hiểu
- Phương pháp thu thập dữ liệu để tìm kiếm một số tập dữ liệu mẫu
- Phương pháp thực nghiệm và đánh giá để kiểm tra độ hiệu quả của giải pháp đề xuất trên một số tập dữ liệu mẫu
1.5 Ý nghĩa của luận văn
Hiện nay có một số giải pháp để tăng tốc gom cụm dữ liệu với độ đo DTW, ví dụ như
sử dụng các ràng buộc Tuy nhiên, có một số bất lợi trong việc sử dụng ràng buộc là
Trang 23Giới thiệu đề tài
9
không thể tìm thấy đường xoắn nếu nó không hoàn toàn nằm trong cửa sổ hay chỉ làm việc tốt trong những lĩnh vực mà chuỗi thời gian có sự thay đổi nhỏ về mặt thời gian
Luận văn đi theo một cách tiếp cận khác Dựa trên ý tưởng của Keogh và Pazzani [5]
về việc tăng tốc DTW cho các ứng dụng khai phá dữ liệu chuỗi thời gian, thực hiện gom cụm dữ liệu bằng K-medoids cải tiến với độ đo DTW trên biểu diễn dữ liệu đã được thu giảm số chiều, chúng tôi đề xuất hiện thực giải thuật này, kết hợp với kỹ thuật lập trình đa luồng để tăng tốc độ tính toán
1.6 Những kết quả đạt được của luận văn
Sau một thời gian nghiên cứu và hiện thực, chúng tôi đã đạt được các kết quả tích cực, đó là:
- Xây dựng được hệ thống gom cụm dữ liệu chuỗi thời gian với độ đo xoắn thời gian động sử dụng kết hợp kỹ thuật lập trình đa luồng và kỹ thuật thu giảm số chiều PAA, rút ngắn nhiều lần thời gian thực thi gom cụm mà ít gây ảnh hưởng tới chất lượng gom cụm
- Vận dụng và hiện thực một kỹ thuật khởi tạo trung tâm cụm, nòng cốt của giải thuật gom cụm K-medoids cải tiến đề xuất bởi Park và Jun [24], nhằm rút ngắn thời gian tính toán so với các giải thuật K-medoids thông thường
- Vận dụng được kỹ thuật lập trình đa luồng và xử lý song song tác vụ để giảm thời gian tính toán khoảng cách DTW nhưng vẫn cho kết quả tuyệt đối chính xác như phương pháp cổ điển
- Đề xuất áp dụng giải thuật gom cụm dựa vào các đỉnh mật độ như một giải pháp thay thế cho các giải thuật K-medoids trong một số trường hợp
- Cho phép người dùng tùy biến nhiều thông số chương trình: có áp dụng kỹ thuật
đa luồng hay không, chuẩn hóa dữ liệu, các tùy chọn liên quan tới PAA, chọn lựa giải thuật gom cụm, số cụm dữ liệu
Trang 24Giới thiệu đề tài
10
- Kết quả thực nghiệm trên các bộ dữ liệu mẫu cho thấy hệ thống đã đáp ứng được tiêu chí rút ngắn đáng kể thời gian thực thi mà vẫn đảm bảo chất lượng gom cụm chuỗi thời gian với độ đo xoắn thời gian động
Như vậy, hệ thống này về cơ bản đã đáp ứng được các yêu cầu của bài toán đặt ra Chúng tôi sẽ trình bày chi tiết về hệ thống ở các phần sau
1.7 Nội dung chính của luận văn
Chương 1, giới thiệu vấn đề
Chương 2, các cơ sở lý thuyết sử dụng trong nghiên cứu này, bao gồm các lý thuyết
về độ đo khoảng cách của chuỗi thời gian, các kỹ thuật về gom cụm dữ liệu thường
và dữ liệu chuỗi thời gian, cùng với các phương pháp thu giảm số chiều
Chương 3, các công trình nghiên cứu liên quan
Chương 4, nội dung chi tiết thiết kế và hiện thực hệ thống gom cụm kết hợp kỹ thuật thu giảm số chiều và lập trình đa luồng
Chương 5, các kết quả thực nghiệm đạt được, đánh giá chất lượng gom cụm của hệ thống và thời gian chạy của giải thuật
Chương 6, bổ sung phần lý thuyết, hiện thực và thực nghiệm cho giải thuật gom cụm dựa vào các đỉnh mật độ
Chương 7, kết luận, đóng góp của đề tài và hướng phát triển trong tương lai
Trang 25thường và dữ liệu chuỗi thời gian cũng như giới thiệu về cách xác định số cụm k tối
ưu nhất trong giải thuật gom cụm K-medoids và các phương pháp đánh giá chất lượng gom cụm dữ liệu, cùng với các phương pháp thu giảm số chiều
2.1 Các độ đo khoảng cách chuỗi thời gian
Các bài toán tìm kiếm mẫu, phân loại hay gom cụm dữ liệu chuỗi thời gian đều sử dụng kiểu dữ liệu mà ở đó được biểu diễn thành một chuỗi các số thực Vì vậy, để giải quyết các bài toán này ta phải sử dụng các độ đo khoảng cách giữa các cặp chuỗi thời gian với nhau Giả sử ta có hai chuỗi thời gian 𝑄 và 𝐶 với các độ dài n và m tương ứng là 𝑄 = 𝑞1, 𝑞2, … , 𝑞𝑖, … , 𝑞𝑛và 𝐶 = 𝑐1, 𝑐2, … , 𝑐𝑗, … , 𝑐𝑚 Ta cần phải xác định
độ đo khoảng cách 𝐷𝑖𝑠𝑡(𝑄, 𝐶) của hai chuỗi thời gian này
2.1.1 Các độ đo trong không gian Euclid
Hiện nay, có rất nhiều độ đo khoảng cách đã được sử dụng cho gom cụm dữ liệu chuỗi thời gian tùy thuộc vào từng miền ứng dụng và trong đó các độ đo trong không gian Euclid là đủ khả năng để giải quyết bài toán này Tuy nhiên, vì sự thiếu linh hoạt
để áp dụng trong các kỹ thuật biến đổi như tịnh tiến (shifting), kéo dãn (stretching) hay co lại (contracting) trên trục thời gian nên các độ đo này ngày càng trở nên thiếu
chính xác [6] Sau đây, chúng tôi sẽ giới thiệu một vài độ đo trong không gian Euclid
Trang 26Cơ sở lý thuyết
12
Tùy thuộc vào từng miền ứng dụng mà chúng ta sử dụng độ đo phù hợp nhưng thông thường độ đo Euclid là đủ tốt và có độ chính xác chấp nhận được để áp dụng
Ngoài ra, các độ đo trên phải thỏa mãn một số tính chất sau [7]:
- 𝐷𝑖𝑠𝑡(𝑄, 𝐶) ≥ 0: khoảng cách phải là số không âm
- 𝐷𝑖𝑠𝑡(𝑄, 𝑄) = 0: khoảng cách từ một đối tượng tới chính nó là 0
- 𝐷𝑖𝑠𝑡(𝑄, 𝐶) = 𝐷𝑖𝑠𝑡(𝐶, 𝑄): khoảng cách là hàm đối xứng
- 𝐷𝑖𝑠𝑡(𝑄, 𝐶) ≤ 𝐷𝑖𝑠𝑡(𝑄, 𝑇) + 𝐷𝑖𝑠𝑡(𝑇, 𝐶): khoảng cách trực tiếp từ 𝑄 tới 𝐶 không lớn hơn khoảng cách đi qua các điểm trung gian 𝑇 khác
Ưu điểm: thời gian tính toán nhanh, có thể áp dụng cho các bài toán khai phá dữ liệu
khác và các độ đo thỏa mãn bất đẳng thức tam giác nên có thể dễ dàng lập chỉ mục, giảm thời gian tìm kiếm
Khuyết điểm: chỉ áp dụng khi những chuỗi có chiều dài bằng nhau [8], dễ bị ảnh
hưởng bởi nhiễu [9]
2.1.2 Độ đo xoắn thời gian động
Việc sử dụng độ đo trong không gian Euclid đối với dữ liệu chuỗi thời gian có hình dạng giống nhau nhưng khác nhau về thời gian sẽ sinh ra kết quả tính toán không chính xác vì cách ánh xạ điểm thứ 𝑖 của chuỗi này với điểm thứ 𝑖 của chuỗi khác Vì vậy để khắc phục điểm yếu này thì độ đo xoắn thời gian động đã ra đời Hình 2.1 thể hiện sự khác nhau giữa cách tính khoảng cách theo Euclid và theo DTW
Hình 2.1 (a) Tính khoảng cách theo Euclid và (b) tính khoảng cách theo DTW
Kỹ thuật tính toán khoảng cách xoắn thời gian động là cách sắp xếp hai chuỗi thời gian sao cho giá trị khoảng cách là nhỏ nhất [6] Để sắp xếp được hai chuỗi này, chúng ta phải xây dựng ma trận 𝑛 × 𝑚 nơi phần tử (𝑖, 𝑗) của ma trận là khoảng cách 𝐷𝑖𝑠𝑡(𝑞𝑖, 𝑐𝑗) của hai điểm 𝑞𝑖, 𝑐𝑗 và mỗi điểm (𝑖, 𝑗) này là sự sắp xếp giữa hai điểm
Trang 27Cơ sở lý thuyết
13
𝑞𝑖, 𝑐𝑗 Đường xoắn 𝑊 (warping path) được định nghĩa là sự sắp xếp của những phần
tử trong hai chuỗi 𝑄 và 𝐶 , tức là ánh xạ giữa 𝑄 và 𝐶 Từ đó, chúng ta có 𝑊 =
(2.1)
Chúng ta có thể tính toán được DTW bằng giải thuật quy hoạch động (dynamic
programming) gồm biến giai đoạn, biến trạng thái và biến quyết định để mô tả quá trình chuyển đổi trạng thái hợp lệ Trong đó, biến giai đoạn đơn giản chỉ là một sự tăng đơn điệu các sự kiện, biến trạng thái là các điểm (𝑖, 𝑗) trong ma trận và biến quyết định để giới hạn những đường xoắn hợp lệ làm giảm không gian tìm kiếm Việc giới hạn không gian tìm kiếm sẽ giúp tiết kiệm được chi phí tính toán và cải thiện
Hình 2.2 Ma trận xoắn và đường xoắn tối ưu [10]
Trang 28Cơ sở lý thuyết
14
được vấn đề hiệu suất, cho nên đường xoắn thời gian phải tuân theo một vài ràng buộc sau:
- Tính đơn điệu (monotonicity): những điểm phải được sắp thứ tự đơn điệu tương
ứng với thời gian, tức là cho 𝑤𝑘 = (𝑎, 𝑏) thì 𝑤𝑘−1= (𝑎′, 𝑏′) với a – a' ≥ 0 và
b – b' ≥ 0
- Tính liên tục (continuity): từng bước trong đường xoắn phải liền kề nhau, tức là
cho 𝑤𝑘 = (𝑎, 𝑏) thì 𝑤𝑘−1= (𝑎′, 𝑏′) với a – a' ≤ 1 và b – b' ≤ 1
- Cửa sổ xoắn (warping window): những điểm hợp lệ phải rơi vào khoảng cửa sổ
xoắn cho trước 𝜔 > 0 với |𝑖𝑘 − 𝑗𝑘| ≤ 𝜔
- Ràng buộc độ dốc (slope constraint): những đường xoắn hợp lệ phải bị ràng buộc
về độ dốc, điều này giúp tránh trường hợp những bước di chuyển quá lớn theo một hướng
- Điều kiện biên (boundary conditions): 𝑤1 = (1,1) và 𝑤𝑘 = (𝑛, 𝑚) điều này giúp đường xoắn bắt đầu và kết thúc tại các điểm nằm ở góc trên đường chéo của ma trận
Tiếp theo, chúng ta sẽ tính toán khoảng cách DTW bằng quy hoạch động dựa vào mối quan hệ đệ quy sau, mà định nghĩa khoảng cách tích lũy 𝛾(𝑖, 𝑗) của mỗi điểm: 𝛾(𝑖, 𝑗) = 𝐷𝑖𝑠𝑡(𝑞𝑖, 𝑐𝑗) + 𝑚𝑖𝑛 {𝛾(𝑖 − 1, 𝑗 − 1), 𝛾(𝑖 − 1, 𝑗), 𝛾(𝑖, 𝑗 − 1)} (2.2) Khoảng cách đó là tổng khoảng cách giữa các phần tử hiện tại với khoảng cách tích lũy nhỏ nhất của các điểm xung quanh Độ đo Euclid có thể xem như trường hợp đặc biệt của DTW với ràng buộc 𝑤𝑘 = (𝑖, 𝑗)𝑘, 𝑖 = 𝑗 = 𝑘 và hai chuỗi có độ dài bằng nhau
Chi tiết giải thuật tính khoảng cách DTW như sau:
Input
𝑄: 𝑎𝑟𝑟𝑎𝑦 [1 … 𝑛], 𝐶: 𝑎𝑟𝑟𝑎𝑦 [1 … 𝑚], 𝐷𝑇𝑊 ∶ 𝑎𝑟𝑟𝑎𝑦 [1 … 𝑛, 1 … 𝑚] Output: 𝐷𝑇𝑊[𝑛, 𝑚]
1 for i = 1 : n
2 for j = 1 : m
Trang 29Ví dụ sau đây sẽ minh họa cho giải thuật tính khoảng cách DTW Giả sử chúng ta có
2 chuỗi thời gian:
𝑄 = (5, 6, 3, 2, 9, 5, 9, 4, 8, 5)
𝐶 = (3, 4, 1, 8, 3, 7, 4, 4, 8, 2) Hai chuỗi này được biểu diễn đồ thị bằng Hình 2.3
Để tính khoảng cách DTW chúng ta xây dựng ma trận tính khoảng cách tích lũy của hai chuỗi trên như Hình 2.4 Mỗi ô trong ma trận sẽ chứa khoảng cách tích lũy tương ứng của cặp điểm đó Trong ma trận xoắn Hình 2.4 thì các ô được tính toán như sau:
𝛾(1, 1) = (𝑄1− 𝐶1)2
𝛾(1, 𝑗) = 𝛾(1, 𝑗 − 1) + (𝑄1− 𝐶𝑗)2𝛾(𝑖, 1) = 𝛾(𝑖 − 1, 1 ) + (𝑄𝑖− 𝐶1)2
𝛾(𝑖, 𝑗) = 𝑚𝑖𝑛{𝛾(𝑖 − 1, 𝑗 − 1), 𝛾(𝑖, 𝑗 − 1), 𝛾(𝑖 − 1, 𝑗)} + (𝑄𝑖 − 𝐶𝑗)2
Hình 2.3 Đồ thị biểu diễn hai chuỗi thời gian
Trang 30Cơ sở lý thuyết
16
Sau khi đã tính tất cả giá trị tích lũy cho các ô, chúng ta được một đường xoắn tối ưu bao gồm các ô tham gia tích lũy cho ô (10,10) Trong hình trên thì đường xoắn tối
ưu là các ô được tô màu
Vậy khoảng cách DTW của hai chuỗi trên là √28 ≈ 5,2915, trong khi khoảng cách Euclid của hai chuỗi trên là √122 ≈ 11,0454
Ưu điểm: Phương pháp DTW có ưu điểm là cho kết quả chính xác hơn so với độ đ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
Khuyết điểm: thời gian chạy lâu và độ phức tạp của DTW là 𝑂(𝑛𝑚), tuy nhiên gần
đây đã có những công trình tăng tốc độ tìm kiếm tương tự dùng độ đo DTW
2.2 Các giải thuật gom cụm dữ liệu thường dùng
Các giải thuật gom cụm dữ liệu được chia theo từng đặc trưng riêng biệt bao gồm phân hoạch, phân cấp, dựa trên mật độ, dựa trên lưới, dựa trên mô hình và các giải thuật khác Ở đây, chúng tôi sẽ đề cập đến giải thuật phổ biến là gom cụm phân hoạch
Hình 2.4 Ma trận xoắn tính DTW cho hai chuỗi thời gian
Trang 31Cơ sở lý thuyết
17
Các giải thuật gom cụm phân hoạch được sử dụng rất phổ biến vì nó đơn giản và là phiên bản cơ bản nhất của phân tích gom cụm Giải thuật này hoạt động được trước hết phải giả sử số cụm mà các đối tượng có thể được nhóm lại, tức là thông số k Những cụm được hợp thành từ các đối tượng thỏa điều kiện tối ưu hóa các tiêu chuẩn phân hoạch mục tiêu như độ đo tương tự dựa vào khoảng cách Giải thuật này gồm hai phương pháp cổ điển nhất là K-means và K-medoids
Hiện nay, có rất nhiều giải thuật và phương pháp để gom cụm dữ liệu chuỗi thời gian
như áp dụng phương pháp PCA thu giảm chiều và kết hợp giải thuật gom cụm phân cấp để gom cụm dữ liệu [12] hay gom cụm dữ liệu dựa trên các đặc trưng [13], nhưng
giải thuật K-means hay những giải thuật cải tiến của nó [14] vẫn được sử dụng rộng rãi và phổ biến nhờ tính đơn giản của nó
2.2.1 Giải thuật K-means
Giải thuật này dựa trên nguyên tắc trung tâm cụm, tức là đối tượng trung bình của
cụm đó Tương tự K-medoids, đầu tiên chọn lấy k đối tượng ngẫu nhiên để làm trung
tâm cụm, những đối tượng còn lại được gán vào các cụm mà độ tương tự với trung tâm cụm là lớn nhất hay là khoảng cách của chúng tới trung tâm cụm là nhỏ nhất Với mỗi đối tượng được gán thêm vào cụm thì trung tâm cụm mới sẽ được tính lại bằng các đối tượng đã được gán cho cụm đó và sử dụng trung tâm cụm mới đó cho đối tượng tiếp theo Giải thuật tiếp tục cho đến khi hết tập dữ liệu và sau đó gán lại các đối tượng với trung tâm cụm mới Cứ như thế cho đến khi chất lượng gom cụm không đổi hoặc ta có thể dừng sau một số lần lặp
Ưu điểm: độ phức tạp nhỏ 𝑂(𝑛𝑘𝑡) với n là số đối tượng, k là số cụm và t là số lần
lặp, do đó thích hợp với các tập dữ liệu lớn
Khuyết điểm: phải xác định số cụm k trước, việc xác định đối tượng trung bình cũng
phức tạp hơn đối với khoảng cách DTW Ngoài ra, giải thuật bị ảnh hưởng bởi nhiễu
và cực trị cục bộ nên kết quả là kích thước các cụm thường đồng đều và có dạng siêu cầu
Hình 2.5 mô tả quá trình thực hiện giải thuật K-means để gom cụm dữ liệu với trung tâm cụm được biểu diễn bởi một dấu “+”
Trang 32Cơ sở lý thuyết
18
2.2.2 Giải thuật K-medoids
Phiên bản tiêu biểu nhất đó là giải thuật PAM Giải thuật hoạt động bằng cách lấy
một đối tượng làm đại diện cho mỗi cụm, những đối tượng còn lại được gán vào cụm
mà khoảng cách từ chúng tới đối tượng đại diện là nhỏ nhất Sau đó, sự phân hoạch được thực hiện bằng cách tối thiểu hóa khoảng cách của một đối tượng 𝑝 với đối tượng đại diện tương ứng bằng công thức sau:
𝐸 = ∑ ∑ 𝑑(𝑝, 𝑜𝑖)
𝑝∈𝐶𝑖
𝑘 𝑖=1
trong đó E là hàm chi phí của tất cả đối tượng 𝑝 trong tập dữ liệu, 𝑜𝑖 là đối tượng đại diện tương ứng với cụm 𝐶𝑖 Quá trình thay thế đối tượng đại diện bằng đối tượng khác dựa trên hàm chi phí được lặp đi lặp lại cho tới khi kết quả gom cụm không đổi Ngoài ra, ta có thể dừng chương trình sau một số lần lặp đã được định trước
Chi tiết giải thuật gom cụm K-medoids (PAM) như sau:
Input: k: số cụm, D: tập dữ liệu gồm n đối tượng
Output: tập đối tượng thuộc k cụm
1 Chọn k đối tượng ngẫu nhiên từ tập D làm đối tượng đại diện
2 repeat
3 Gán các đối tượng còn lại vào cụm có đối tượng đại diện gần nó nhất
4 Chọn ngẫu nhiên một đối tượng không là đại diện 𝑜𝑟𝑎𝑛𝑑𝑜𝑚
5 Tính tổng chi phí S cho việc thay thế đối tượng đại diện 𝑜𝑗 bởi đối
tượng 𝑜𝑟𝑎𝑛𝑑𝑜𝑚 bằng hàm chi phí E đã đề cập ở trên
Hình 2.5 Quá trình gom cụm dùng K-means [11]
Trang 33Cơ sở lý thuyết
19
6 Nếu 𝑆 < 0 thì thay thế đối tượng 𝑜𝑗 bằng đối tượng 𝑜𝑟𝑎𝑛𝑑𝑜𝑚 để tạo
nên tập k đối tượng đại diện mới
7 until không thể tối thiểu hóa S được nữa
Hình 2.6 mô tả bốn trường hợp xem xét sự thay thế đối tượng đại diện bằng các đối
tượng khác dùng hàm chi phí E Cụ thể, ta giả sử 𝑜1, … , 𝑜𝑘 là k đối tượng đại diện
hiện tại, để xác định đối tượng 𝑜𝑟𝑎𝑛𝑑𝑜𝑚 là một sự thay thế tốt cho đối tượng 𝑜𝑗 (1 ≤
𝑗 ≤ 𝑘) thì ta tính khoảng cách từ mọi đối tượng p đến đối tượng đại diện gần nhất
của tập {𝑜1, … , 𝑜𝑗−1, 𝑜𝑟𝑎𝑛𝑑𝑜𝑚, 𝑜𝑗+1, … , 𝑜𝑘} và dùng khoảng cách này để cập nhật hàm chi phí
Hình 2.6a và Hình 2.6b cho thấy đối tượng p đang được gán cho đối tượng đại diện
𝑜𝑗, ta xét xem đối tượng này có thể được gán lại cho đối tượng khác được không miễn
là gần nó nhất Vì vậy, Hình 2.6a và Hình 2.6b cho thấy đối tượng p được gán lại cho
đối tượng 𝑜𝑖 và 𝑜𝑟𝑎𝑛𝑑𝑜𝑚 tương ứng vì nó gần hơn so với đối tượng 𝑜𝑗
Ngoài ra, Hình 2.6c và Hình 2.6d cho thấy đối tượng p đang được gán cho đối tượng
đại diện 𝑜𝑖 trong khi ta đang xem xét thay thế đối tượng đại diện 𝑜𝑗 bằng đối tượng đại diện 𝑜𝑟𝑎𝑛𝑑𝑜𝑚 Hình 2.6c thể hiện đối tượng p vẫn được gán cho 𝑜𝑖 vì nó vẫn gần
𝑜𝑖 hơn 𝑜𝑟𝑎𝑛𝑑𝑜𝑚 Trong khi đó Hình 2.6d thì ngược lại vì đối tượng p gần 𝑜𝑟𝑎𝑛𝑑𝑜𝑚
hơn
Hình 2.6 Các trường hợp thay thế của giải thuật K-medoids [11]
Ưu điểm: giảm thiểu sự ảnh hưởng của nhiễu vì mỗi cụm được đại diện bởi phần tử
chính giữa cụm
Trang 34Cơ sở lý thuyết
20
Khuyết điểm: số cụm k phải được xác định trước và độ phức tạp của giải thuật là
𝑂(𝑘(𝑛 − 𝑘)2) nên giải thuật bị ảnh hưởng bởi kích thước tập dữ liệu Để khắc phục điểm yếu về độ phức tạp, người ta đã phát triển một kỹ thuật dựa trên việc lấy mẫu
gọi là CLARA Giải thuật này thay thế việc phải xem xét toàn bộ các đối tượng không
là đại diện bằng việc chỉ phải xem xét trên một tập mẫu ngẫu nhiên được rút ra từ tập
dữ liệu ban đầu và việc lấy mẫu được thực hiện nhiều lần sau đó cho ra kết quả gom cụm tốt nhất
2.3 Các phương pháp thu giảm số chiều dựa vào đặc trưng
Phương pháp tổng quát để thu giảm số chiều có thể tóm tắt như sau [4]:
1 Thiết lập một độ đo tương tự d
2 Thiết kế một kỹ thuật thu giảm số chiều để rút trích một đặc trưng có chiều dài k (tức là một đặc trưng gồm k giá trị), với k có thể được xử lý một cách hữu hiệu nhờ
một cấu trúc chỉ mục không gian (đa chiều)
3 Cung cấp một độ đo tương tự d k trên một không gian đặc trưng k chiều và chứng
tỏ rằng nó tuân thủ điều kiện sau đây:
Điều kiện (2.3) có nghĩa là hàm khoảng cách tính trên không gian đặc trưng (hay
không gian thu giảm) của hai chuỗi thời gian đã được biến đổi X’, Y’ từ hai chuỗi thời gian ban đầu X, Y phải chặn dưới khoảng cách thật giữa chúng trên không gian nguyên
thủy
2.3.1 Các phương pháp biến đổi sang miền tần số
2.3.1.1 Phương pháp biến đổi Fourier rời rạc (DFT)
Phương pháp biến đổi rời rạc Fourier do Agrawal và cộng sự đề nghị ([15], [16],
[17]) Trong phương pháp biến đổi Fourier thì đường dữ liệu ban đầu được biểu diễn
bởi các đường căn bản Những đường căn bản trong trường hợp này là đường sin và
cosin
𝐶(𝑡) = ∑ 𝐴𝑘cos(2𝜋𝑤𝑘𝑡) + 𝐵𝑘𝑠𝑖𝑛(2𝜋𝑤𝑘𝑡))
𝑛
𝑘=1
Trang 35Cơ sở lý thuyết
21
Ưu điểm: thích hợp với các loại đường biểu diễn dữ liệu khác nhau và giải thuật để
biến đổi dữ liệu chỉ có độ phức tạp 𝑂(𝑛𝑙𝑔𝑛)
Khuyết điểm: rất khó giải quyết nếu các chuỗi thời gian có chiều dài khác nhau 2.3.1.2 Phương pháp biến đổi wavelet rời rạc (DWT)
Phương pháp thu giảm số chiều bằng biến đổi rời rạc Wavelet rời rạc do Chan và Fu
đề nghị năm 1999 [18] Phương pháp DWT cũng giống phương pháp DFT, tuy nhiên
đường cơ bản của nó không phải là đường lượng giác sin hay cosin mà là đường
haar như trong Hình 2.7
Ưu điểm: rất hiệu quả bởi vì nó mã hóa nhanh và đơn giản với độ phức tạp của việc
mã hóa này là tuyến tính; hỗ trợ nhiều mức phân giải
Khuyết điểm: chiều dài chuỗi dữ liệu ban đầu của nó phải là một số lũy thừa 2 và
chiều dài của chuỗi con truy vấn cũng nên là số lũy thừa của 2 thì giải thuật mới thực hiện hiệu quả
Hình 2.7 Minh họa cách biến đổi dữ liệu theo các phương pháp DFT, DWT [30]
Trang 36Cơ sở lý thuyết
22
2.3.2 Các phương pháp xấp xỉ tuyến tính từng đoạn
2.3.2.1 Phương pháp xấp xỉ tuyến tính từng đoạn (PLA)
Phương pháp xấp xỉ tuyến tính từng đoạn (piecewise linear approximation) do Keogh
và cộng sự đề nghị ([1], [19]) Trong phương pháp này ta sẽ biểu diễn dữ liệu ban đầu bằng chuỗi các đoạn thẳng tuyến tính Mỗi đoạn thẳng tuyến tính nối cặp điểm ở hai đầu đoạn thẳng xấp xỉ tốt nhất (best-fit) những điểm có trong phân đoạn chuỗi thời gian đó Các đoạn thẳng này có thể rời nhau hoặc liên tục Cách biểu diễn này rất trực quan và nó phù hợp để nén tất cả các loại dữ liệu chuỗi thời gian Hơn thế nữa, việc tìm các chuỗi đoạn thẳng này có thể thực hiện trong thời gian tuyến tính
Ưu điểm: có rất nhiều ưu thế bao gồm nén dữ liệu và lọc nhiễu; có nhiều giải thuật
cho phân đoạn chuỗi dữ liệu
Khuyết điểm: câu hỏi mở là làm sao chọn giá trị K (số phân đoạn tối ưu dùng để thể
hiện một chuỗi thời gian đặc biệt) tốt nhất Vấn đề này liên quan đến viẹc đánh đổi giữa độ chính xác và độ chặt, và rõ ràng không có giải pháp tổng quát
2.3.2.2 Phương pháp xấp xỉ gộp từng đoạn (PAA)
Phương pháp xấp xỉ gộp từng đoạn (piecewise aggregate approximation) do Keogh
và cộng sự đề nghị năm 2001 [20] Phương pháp này rất đơn giản, ta tuần tự xấp xỉ k giá trị liền kề nhau thành cùng một giá trị bằng trung bình cộng của k điểm đó Qúa trình cứ tiếp tục như vậy từ trái sang phải Kết quả cuối cùng là đường thẳng có dạng bậc thang Với phương pháp này, thời gian tính toán rất nhanh và cách biểu diễn của
nó hỗ trợ nhiều độ đo khoảng cách
Ưu điểm: thời gian tính toán nhanh và dễ dàng; hỗ trợ câu truy vấn có chiều dài khác
nhau; hàm khoảng cách được đề nghị có giá trị chặn dưới chặt so với dữ liệu gốc
Khuyết điểm: xây dựng lại chuỗi ban đầu khó và thường sinh lỗi lớn, trong khi các
phương pháp khác có công thức để tái tạo lại chuỗi ban đầu với tỷ lệ lỗi nhỏ; không quan tâm đến những đặc biệt khác như điểm giá trị cực trị của mỗi đoạn xấp xỉ
2.3.2.3 Phương pháp xấp xỉ hằng số từng đoạn thích nghi (APCA)
Phương pháp xấp xỉ hằng số từng đoạn thích nghi (adaptive piecewise constant
approximation) do Keogh và cộng sự đề nghị năm 2001 [21] Phương pháp APCA
Trang 37Cơ sở lý thuyết
23
giống như phương pháp PAA là xấp xỉ dữ liệu ban đầu thành những đoạn thẳng nằm ngang Tuy nhiên, nó khác với PAA là các đoạn này ở PAA có kích thước bằng nhau, còn ở APCA thì kích thước của các đoạn là khác nhau tùy theo dữ liệu Những vùng nào trên chuỗi thời gian có biến động nhấp nhô nhiều thì được phân thành những đoạn ngắn, còn những vùng nào ít biến động thì được phân thành những đoạn dài hơn
Ưu điểm: tính toán nhanh với độ phức tạp 𝑂(𝑛); hiệu quả hơn các cách tiếp cận khác
trên một số tập dữ liệu; hỗ trợ các truy vấn có độ dài tùy ý; hỗ trợ độ đo Euclid có trọng số; hỗ trợ truy vấn chính xác nhanh, và thậm chí nhanh hơn với các truy vấn xấp xỉ trên cùng cấu trúc dữ liệu
Khuyết điểm: tương đối khó hiện thực; không dễ nhìn nếu hình dung một cách trực
tiếp
2.4 Các tiêu chí đánh giá chất lượng gom cụm
Đánh giá chất lượng gom cụm dữ liệu là một công việc quan trọng nhằm xác định chất lượng của kết quả gom cụm mang lại để từ đó tiến hành điều chỉnh và lựa chọn
vì gom cụm là một quá trình học không giám sát Thông thường ta hay sử dụng hai
phương pháp đánh giá phổ biến là đánh giá nội và đánh giá ngoại Ngoài ra, ta còn
có cách đánh giá tương đối đó là đánh giá kết quả gom cụm bằng việc so sánh các kết quả gom cụm khác ứng với các bộ trị thông số khác nhau Các phương pháp này đều
dựa trên hai tiêu chí đó là độ nén (compactness) các đối tượng trong cụm nên gần nhau và độ phân tách (separation) các cụm nên xa nhau
Đánh giá nội (internal validation): đánh giá kết quả gom cụm theo chính tập dữ
liệu, dùng cho các dữ liệu hoàn toàn ngẫu nhiên và ta không biết một đối tượng thuộc
cụm nào Ta thường dùng một hàm mục tiêu (objective function) để đánh giá chất
lượng và hàm mục tiêu thường sử dụng đó là tổng sai khác các phần tử trong cụm đến trung tâm cụm đó đối với tất cả các cụm [14] Cực tiểu của hàm này sẽ cho phương pháp gom cụm tốt nhất có thể
𝐹 = ∑ ∑ ‖𝑥𝑘− 𝑐𝑖‖
𝑘∈𝐶𝑖𝑀
𝑖=1
Trang 38Cơ sở lý thuyết
24
Đánh giá ngoại (external validation): đánh giá kết quả gom cụm dựa vào cấu trúc
được chỉ định trước cho tập dữ liệu Trong đề tài này, ta sẽ sử dụng các phương pháp
đánh giá như chỉ số Rand, Adjusted Rand Index (ARI), Jaccard, Fowlkes và Mallow (FM), Cluster Similarity Measure (CSM), Normalized Mutual Information (NMI) Giả sử dữ liệu có M cụm Gọi 𝐺 = 𝐺1; 𝐺2; … ; 𝐺𝑀 là các cụm thực sự mà ta đã biết trước và 𝐴 = 𝐴1; 𝐴2; … ; 𝐴𝑀 là các cụm kết quả do giải thuật sinh ra Gọi D là tập dữ liệu ban đầu và với mọi cặp dữ liệu trong D ta tính các thông số sau:
- a: là số cặp dữ liệu đồng thời thuộc một cụm trong G và cũng thuộc một cụm trong A
- b: là số cặp dữ liệu đồng thời thuộc một cụm trong G nhưng khác cụm trong A
- c: là số cặp dữ liệu đồng thời thuộc một cụm trong A nhưng khác cụm trong G
- d: là số cặp dữ liệu đồng thời không thuộc cụm trong A và G
Dưới đây là các công thức đánh giá của các phương pháp trên và có giá trị trong đoạn
[0,1], càng đến gần 1 thì A và G càng giống nhau, giải thuật cho kết quả gom cụm tốt
và ngược lại
- Rand: được Rand đề xuất vào năm 1971 [26] dựa trên hai chỉ số a và d thể hiện
sự giống nhau và hai chỉ số b và c thể hiện sự khác nhau
𝑅𝑎𝑛𝑑 = 𝑎 + 𝑑
𝑎 + 𝑏 + 𝑐 + 𝑑
- ARI: được Hubert và Arabie (1985) [27] đưa ra nhằm cải tiến chỉ số Rand, đây
là phương pháp cho cơ hội sửa chữa đối với chỉ số Rand Vì vậy, ARI có thể cho
ra giá trị âm nên làm tăng độ nhạy của chỉ số hơn là Rand
Trang 39Cơ sở lý thuyết
25
- Jaccard: do Jaccard (1912) [28] giới thiệu nhằm đo độ tương tự giữa hai tập hợp
hữu hạn, được định nghĩa là tỷ số giữa kích thước của giao với kích thước của
hợp của hai tập hợp
𝐽𝑎𝑐𝑐𝑎𝑟𝑑 = 𝑎
𝑎 + 𝑏 + 𝑐
- Fowlkes và Mallow: do Fowlkes và Mallow (1983) [29] đề xuất nhằm so sánh
độ tương tự giữa hai tập hợp mà không liên quan với nhau, khắc phục nhược điểm
chỉ dùng cho các tập hợp có liên quan của chỉ số Rand Ngoài ra, chỉ số FM còn
cho ra kết quả tốt khi có sự ảnh hưởng của nhiễu
𝑀 𝑖=1
√(∑ |𝐺𝑖| log|𝐺𝑖 |
𝑁
𝑀 𝑖=1 ) ∗ (∑ |𝐴𝑗| log|𝐴𝑗|
Trang 40Các công trình nghiên cứu liên quan
26
CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
Chương này sẽ tập trung trình bày các công trình nghiên cứu có liên quan đến vấn đề
mà đề tài đang giải quyết Đó là các phương pháp tính xấp xỉ gộp từng đoạn và theo
đó là một giải thuật xoắn thời gian động cho biểu diễn dữ liệu trên, giải thuật gom cụm K-medoids cải tiến và kỹ thuật lập trình đa luồng để tăng tốc tính toán DTW
3.1 Cách biểu diễn xấp xỉ gộp từng đoạn (PAA)
Chúng ta biểu thị mỗi truy vấn chuỗi thời gian như 𝑋 = 𝑥1, … , 𝑥𝑛 Đặt N là chiều của
chuỗi thời gian biến đổi mà chúng ta muốn làm việc với 1 ≤ 𝑁 ≤ 𝑛 Để tiện lợi, ta
giả sử rằng N là thừa số của n nhằm mục đích đơn giản hóa Lưu ý đây không phải là
yêu cầu bắt buộc đối với cách tiếp cận của chúng ta
Một chuỗi thời gian X có độ dài n được thể hiện trong không gian N bằng một vector
𝑋̅ = 𝑥̅1, … , 𝑥̅𝑛 Phần tử thứ i của 𝑋̅ được tính bằng phương trình sau:
được tính và một vector của các giá trị này trở thành biểu diễn dữ liệu được giảm
Hình 3.1 minh họa một chuỗi thời gian gồm có 8 (n) điểm và được chiếu lên 2 (N) chiều Chuỗi thời gian được chia thành 2 (N) khung và tính trung bình cho mỗi khung
Một vector của các giá trị trung bình này trở thành biểu diễn dữ liệu được thu giảm
số chiều
Hai trường hợp đặc biệt đáng chú ý là khi 𝑁 = 𝑛, biểu diễn dữ liệu biến đổi sẽ giống hệt như biểu diễn ban đầu Khi 𝑁 = 1, biểu diễn dữ liệu biến đổi đơn giản là trung