Đề tài này sẽ hiện thực bài toán phân lớp dữ liệu chuỗi thời gian sử dụng giải thuật phân lớp có thời gian thực thi tùy chọn dựa trên motif.. Sau đó chúng ta áp dụng giải thuật phân lớp
Trang 1Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Trường Đại Học Bách Khoa - -
NGUYỄN QUỐC VIỆT
ỨNG DỤNG NHẬN DẠNG MOTIF HỖ TRỢ PHÂN LỚP DỮ LIỆU CHUỖI THỜI GIAN DÙNG ĐỘ ĐO
XOẮN THỜI GIAN ĐỘNG
CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
MÃ SỐ CHUYÊN NGÀNH : 60.48.01
LUẬN VĂN THẠC SĨ GVHD: PGS.TS DƯƠNG TUẤN ANH
TP HỒ CHÍ MINH, 2013
Trang 2ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc
- -oOo -
Tp HCM, ngày 19 tháng 05 năm 2013 NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: Nguyễn Quốc Việt……… Giới tính: Nam / Nữ Ngày, tháng, năm sinh: 31/07/1987 Nơi sinh: Đồng Nai Chuyên ngành: Khoa học Máy tính………
4-NGÀY HOÀN THÀNH NHIỆM VỤ:
………
……… 5-HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TS Dương Tuấn Anh…………
Nội dung và đề cương Luận Văn Thạc Sĩ đã được Hội Đồng Chuyên Ngành thông qua
(Họ tên và chữ kí) QUẢN LÝ CHUYÊN NGÀNH
PGS.TS Dương Tuấn Anh
Trang 3LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này do chính tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Trang 4LỜI CẢM ƠN
Tôi xin gửi lời cám ơn chân thành và sâu sắc nhất đến PGS TS.Dương Tuấn Anh, người Thầy đã không quản thời gian công sức luôn tận tình chỉ bảo và hướng dẫn tôi trong suốt thời gian tôi thực hiện luận văn này
Tôi xin cám ơn các quí thầy cô, những người đã gián tiếp và trực tiếp chỉ bảo và hướng dẫn giúp tôi có những kiến thức cần thiết để thực hiện luận văn này Qua đây tôi cũng xin cám ơn các anh chị và các bạn trong cùng nhóm nghiên cứu đã giúp đỡ, góp ý cho tôi trong suốt quá trình làm luận văn
Một lần nữa tôi xin gửi lời cám ơn chân thành đến tất cả mọi người
Trang 5TÓM TẮT LUẬN VĂN
Bài toán phân lớp dữ liệu chuỗi thời gian có vai trò quan trọng trong lĩnh vực khai
phá dữ liệu Nó giúp cho việc phân tích dữ liệu và dự đoán tương lai, đặc biệt trong
những lĩnh vực như tài chính hay y học
Đề tài này sẽ hiện thực bài toán phân lớp dữ liệu chuỗi thời gian sử dụng giải
thuật phân lớp có thời gian thực thi tùy chọn dựa trên motif Giải thuật gồm có hai
giai đoạn: Giai đoạn Huấn luyện và Giai đoạn Phân lớp
Trong giai đoạn Huấn luyện, luận văn đề xuất chiến lược sắp xếp Simple Rank
dựa trên thông tin motif của mỗi đối tượng dữ liệu chuỗi thời gian Chiến lược này sắp
xếp tập dữ liệu dựa trên motif của mỗi chuỗi dữ liệu thay vì dựa trên từng chuỗi dữ
liệu gốc, qua đó rút ngắn thời gian huấn luyện
Trong giai đoạn Phân lớp, giải thuật sẽ tìm kiếm trong tập huấn luyện chuỗi gần
nhất với chuỗi mục tiêu Thứ tự tìm kiếm là thứ tự đã được sắp xếp trong giai đoạn
huấn luyện Giải thuật có thể dừng bất kỳ lúc nào Kết quả phân lớp là nhãn lớp của
chuỗi gần với chuỗi mục tiêu nhất đến thời điểm dừng giải thuật
Độ tương tự của các chuỗi thời gian được sử dụng là Khoảng cách xoắn thời gian
động Để cải thiện thời gian thực thi của giải thuật, đề tài sử dụng kỹ thuật tính chặn
dưới LowerBound Keogh vào cả hai giai đoạn huấn luyện và phân lớp.
Trang 6MỤC LỤC
Trang
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT LUẬN VĂN iii
MỤC LỤC iv
DANH MỤC HÌNH ẢNH vii
DANH MỤC BẢNG BIỂU x
CHƯƠNG 1: GIỚI THIỆU 1
1.1 Phát biểu vấn đề 1
1.2 Mục tiêu và giới hạn đề tài 4
1.3 Tóm lược kết quả đạt được 4
1.4 Cấu trúc của luận văn 5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7
2.1 Độ đo khoảng cách trong miền dữ liệu chuỗi thời gian 7
2.1.1 Độ đo khoảng cách Minkowski 7
2.1.2 Độ đo xoắn thời gian động 9
2.2 Kỹ thuật phân lớp k láng giềng gần nhất 14
CHƯƠNG 3: CÁC CÔNG TRÌNH CÓ LIÊN QUAN 16
3.1 Ràng buộc đối với đường xoắn cho khoảng cách DTW 16
3.1.1 Ràng buộc dải Sakoe-Chiba 16
3.1.2 Ràng buộc hình bình hành Itakura 17
3.1.3 Dải Ratanamahatana-Keogh (dải R-K) 17
3.2 Các kỹ thuật tính chặn dưới cho khoảng cách DTW 19
3.2.1 Ý nghĩa của chặn dưới 19
3.2.2 Phương pháp tính chặn dưới LB_Keogh 20
3.2.3 Đánh giá 23
Trang 73.3.1 Giải thuật phân lớp 23
3.3.2 Sắp xếp tập huấn luyện 25
3.4 Phát hiện motif cho dữ liệu chuỗi thời gian 27
3.4.1 Giải thuật Brute-force để phát hiện motif 30
3.4.2 Nhận diện motif dựa vào phương pháp chiếu ngẫu nhiên (Random Projection Algorithm) 31
3.4.3 Giải thuật MK cải tiến 33
3.4.4 Giải thuật phát hiện motif dựa trên điểm cực trị quan trọng 41
3.4.4.1 Điểm cực trị quan trọng (Important Extreme Points) 41
3.4.4.2 Độ đo tương tự 44
3.4.4.3 Tìm ứng viên Motif 46
3.4.4.4 Giải thuật gom cụm phân cấp theo hướng từ dưới lên (Hierarchical Bottom-Up Algorithm) 47
3.4.4.5 Khái niệm về phép biến hình vị tự 48
3.4.4.6 Lấy mẫu các ứng viên motif bằng phép vị tự 49
3.5 Kết luận 51
CHƯƠNG 4: HIỆN THỰC VÀ THỬ NGHIỆM 54
4.1 Giải quyết vấn đề 54
4.1.1 Đặt vấn đề 54
4.1.2 Hướng giải quyết vấn đề 54
4.1.3 Giai đoạn huấn luyện 56
4.1.3.1 Giải thuật NN_LBKeogh 56
4.1.3.2 Giải thuật huấn luyện 58
4.1.4 Giai đoạn phân lớp 59
4.2 Thực nghiệm 61
4.2.1 Hệ thống phân lớp dữ liệu chuỗi thời gian 61
4.2.2 Cấu hình 64
4.2.3 Tập dữ liệu 64
4.2.4 Thực nghiệm giai đoạn huấn luyện 64
Trang 84.2.4.1 Tập dữ liệu TwoPat 65
4.2.4.2 Tập dữ liệu Clustered 69
4.2.5 Thực nghiệm giai đoạn phân lớp 71
4.2.5.1 Tập dữ liệu TwoPat 71
4.2.5.2 Tập dữ liệu Clustered 73
CHƯƠNG 5: KẾT LUẬN 76
5.1 Tổng kết 76
5.2 Những đóng góp của đề tài 77
5.3 Hướng phát triển 77
TÀI LIỆU THAM KHẢO 79
BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH – VIỆT 81
Trang 9DANH MỤC HÌNH ẢNH
Hình 1-1 Đường biễu diễn dữ liệu chuỗi thời gian 1
Hình 1-2 Bài toán phân lớp dữ liệu chuỗi thời gian 3
Hình 2-1 Hình ảnh trực giác của khoảng cách Euclid (nguồn: [3]) 8
Hình 2-2 Hai mẫu dữ liệu có hình dạng giống nhau nhưng lệch nhau về thời gian (nguồn:[4]) 9
Hình 2-3 Cách tính khoảng cách xoắn thời gian động: A) Cho hai chuỗi mục tiêu Q và C, B) Ma trận tính DTW, C) Kết quả tính DTW (nguồn:[2]) 10
Hình 2-4 Đồ thị biểu diễn hai chuỗi thời gian 12
Hình 2-5 Ma trận tính DTW cho hai chuỗi thời gian 12
Hình 2-6 Giải thuật phân lớp k-Nearest-Neighbor 15
Hình 3-1 Hai loại ràng buộc đối với đường xoắn: a) Dải Sakoe-Chiba và b) Hình bình hành Itakura (nguồn: [5]) 17
Hình 3-2 Hình dạng của các loại ràng buộc cửa sổ xoắn: A) Dải R-K,B) Dải Sakoe-Chiba, C) Hình bình hành Itakura (nguồn: [4]) 18
Hình 3-3 Minh họa giải thuật tìm kiếm tiến sử dụng độ chính xác (nguồn:[4])19 Hình 3-4 Giải thuật tìm kiếm tuần tự sử dụng chặn dưới (nguồn:[5]) 20
Hình 3-5 Đường bao ứng với hai loại ràng buộc: A) Dải Sakoe-Chiba và B) Hình bình hành Itakura (nguồn:[2]) 21
Hình 3-6 Hình ảnh trực quan của chặn dưới LB_Keogh (nguồn:[2]) 22
Hình 3-7 Giải thuật phân lớp có thời gian thực thi tùy chọn (nguồn:[7]) 24
Hình 3-8 Giải thuật sắp xếp tập huấn luyện 25
Hình 3-9 Mô phỏng phát hiện motif dữ liêu chuỗi thời gian 3 chuỗi dữ liệu con bên dưới thường xuất hiện trong chuỗi dữ liệu ban đầu ở phía trên 28
Trang 10Hình 3-10 Mô phỏng chuỗi con trùng khớp (matching) giữa hai chuỗi con C và
M Chuỗi thời gian T là đường màu đen nhỏ, chuỗi con C có hình màu đen in đậm và
chuỗi M có hình màu xám 28
Hình 3-11 Trong hầu hết các chuỗi con C, sẽ có hai chuỗi con khớp (match) tốt nhất nằm ở phía bên trái và bên phải chuỗi này 29
Hình 3-12 Minh họa định nghĩa Motif-bậc-K 29
Hình 3-13 Giải thuật Motif-Brute-Force (Nguồn [1]) 31
Hình 3-14 Minh họa việc xây dựng ma trận với a=3, w=4 và n=16 32
Hình 3-15: Trái) {1,2} được chọn ngẫu nhiên Phải) tăng giá trị của các ô tương ứng 1 đơn vị [11] 33
Hình 3-16: Trái) Cột {2,4} được chọn Phải) Tăng giá trị của vị trí tương ứng [11] 33 Hình 3-17 Khoảng cách chuỗi con tham chiếu Q nằm giữa C a và C b 36
Hình 3-18 Khoảng cách chuỗi con tham chiếu Q nằm ngoài C a và C b 37
Hình 3-19 Dịch chuyển trục tọa độ dữ liệu chuỗi thời gian 38
Hình 3-20 Cải tiến giải thuật phát hiện motif 40
Hình 3-21 Điểm quan trọng với hệ số nén lần lượt là 91% và 94% 41
Hình 3-22 Điểm cực đại và cực tiểu quan trọng 42
Hình 3-23 Giải thuật lấy mẫu lại ứng viên Motif T với nội suy spline bậc I 45
Hình 3-24 Giải thuật gom cụm phân cấp theo hướng từ dưới lên 47
Hình 3-25 Giải thuật gom cụm phân cấp từ dưới lên và trên xuống HAC 48
Hình 3-26 Minh họa phép vị tự tâm O, hệ số vị tự k =1/2 49 Hình 3-27: Chuỗi dữ liệu sau khi lấy mẫu có chiều dài 150 điểm dùng phương
Trang 11Hình 4-1 Ví dụ tập huấn luyện được sắp xếp bởi chiến lược SimpleRank 55
Hình 4-2: Giải thuật NN_LBKeogh 57
Hình 4-3 Giải thuật huấn luyện 59
Hình 4-4: Giải thuật phân lớp 60
Hình 4-5 Mô hình thực hiện giải thuật phân lớp có thời gian thực thi tuỳ chọn không sử dụng motif 62
Hình 4-6 Mô hình thực hiện giải thuật phân lớp có thời gian thực thi tuỳ chọn sử dụng motif 63
Hình 4-7 Biểu đồ thời gian thực thi giai đoạn huấn luyện không sử dụng kỹ thuật chặn dưới trên tập dữ liệu TwoPat 66
Hình 4-8 Biểu đồ thời gian thực thi giai đoạn huấn luyện dùng kỹ thuật chặn dưới LB_Keogh trên tập dữ liệu TwoPat 68
Hình 4-9 Biểu đồ thời gian thực thi giai đoạn huấn luyện sử dụng kỹ thuật chặn dưới LB_Keogh trên tập dữ liệu Clustered 70
Hình 4-10 kết quả số mẫu phân lớp trên tập dữ liệu TwoPat 73
Hình 4-11 kết quả số mẫu phân lớp trên tập dữ liệu Clustered 74
Trang 12DANH MỤC BẢNG BIỂU
Bảng 4-1 Thời gian thực hiện giai đoạn huấn luyện không dùng kỹ thuật chặn dưới trên tập dữ liệu TwoPat 65Bảng 4-2 Thời gian thực hiện giai đoạn huấn luyện của hai giải thuật dùng kỹ thuật chặn dưới LB_Keogh trên tập dữ liệu TwoPat 67Bảng 4-3 Thời gian thực hiện giai đoạn huấn luyện của hai giải thuật dùng kỹ thuật chặn dưới LB_Keogh trên tập dữ liệu Clustered 69Bảng 4-4 Số lượng mẫu phân lớp chính xác trên tập dữ liệu TwoPat 72Bảng 4-5 Độ chính xác phân lớp của giải thuật phân lớp có sử dụng thông tin motif và không sử dụng thông tin motif trên tập dữ liệu TwoPat 72Bảng 4-6 Số lượng mẫu phân lớp chính xác trên tập dữ liệu Clustered 73Bảng 4-7 Độ chính xác phân lớp của giải thuật phân lớp có sử dụng thông tin motif và không sử dụng thông tin motif trên tập dữ liệu Clustered 74
Trang 13CHƯƠNG 1: GIỚI THIỆU
1.1 Phát biểu vấn đề
Chuỗi dữ liệu thời gian hay chuỗi thời gian là sự quan sát các dữ liệu theo thời gian tuần tự Đối với loại dữ liệu này, cấu trúc dữ liệu có thể là hai hay nhiều chiều trong đó có chiều thời gian, tức là dữ liệu được theo dõi và ghi lại tại một thời điểm nhất định Tuy nhiên trong hầu hết các ứng dụng thực tế, dữ liệu được đo cách nhau trong một khoảng thời gian cố định nên để đơn giản hóa quá trình lưu trữ cũng như độ phức tạp của dữ liệu, người ta chỉ lưu lại thứ tự các giá trị dữ liệu theo một
trình tự thời gian nhất định có dạng X=<x 1, x 2, …x n > trong đó x i là dữ liệu được đo ở
thời điểm thứ i
Hình 1-1 Đường biễu diễn dữ liệu chuỗi thời gian
Trong các ứng dụng thực tế, có rất nhiều loại dữ liệu chuỗi thời gian như sự theo dõi biến đổi giá của chứng khoán, dữ liệu đo điện tâm đồ, dữ liệu theo dõi mực nước sông hay là sự ghi lại việc truy cập các trang web của người dùng Thông thường, các loại dữ liệu chuỗi thời gian này là rất lớn, được đo và lưu trữ lại trong một khoảng thời gian dài cho nên việc lưu trữ và khai phá dữ liệu này thường tốn kém chi phí thời gian Do đó việc sử dụng các công cụ khai phá dữ liệu này được áp dụng trên nền máy tính đã thu hút sự quan tâm, nghiên cứu và ứng dụng trong rất nhiều các
Trang 14lĩnh vực trong những năm gần đây
Một số vấn đề khi nghiên cứu chuỗi thời gian:
Khối lượng dữ liệu
Một trong những đặc trưng của chuỗi thời gian là dữ liệu rất lớn Ví dụ khi đo đạc dữ liệu điện tâm đồ trong 1 giờ khoảng 1 Gigabyte Đây là một trong những vấn
đề thách thức trong quá trình phân tích, tính toán và xử lý dữ liệu chuỗi thời gian trong việc tạo ra kết quả được chính xác trong thời gian hợp lý
Phụ thuộc yếu tố chủ quan
Trong thực tế, các kết quả dữ liệu chuỗi thời gian thu được chịu ảnh hưởng yếu
tố chủ quan của người đo dữ liệu, điều kiện và các công cụ đo…
Dữ liệu không đồng nhất
Quá trình thu thập dữ liệu chuỗi thời gian được đo trên những định dạng khác nhau, số lượng và tần số lấy mẫu không đồng nhất cũng ảnh hưởng đến tính toàn vẹn của dữ liệu Thêm vào đó quá trình đo đạc không chính xác do nhiễu, thiếu một vài giá trị hay dữ liệu không sạch
Tập hợp dữ liệu chuỗi thời gian liên quan đến một lĩnh vực hoặc một bài toán ứng dụng thường có kích thước rất lớn Tuy nhiên, tập hợp dữ liệu này thường có mối liên
hệ chặt chẽ với nhau Dựa trên những mối liên hệ đó, người ta thường thống kê và phân loại dữ liệu thành một số lớp với một số đặc trưng nhất định Ví dụ, dữ liệu giá chứng khoán có thể phân loại thành các lớp: ổn định, tăng trưởng đều, không ổn định,
… Nhu cầu đặt ra là dùng dữ liệu thống kê trong quá khứ để phân loại dữ liệu hiện tại hoặc tương lai Việc phân loại này có ý nghĩa rất lớn trong nhiều lĩnh vực như: dự đoán tình trạng giá một chứng khoán, dự đoán kiểu thời tiết, … Hình 1-2 minh họa cơ
Trang 15sở dữ liệu thống kê có hai lớp dữ liệu và yêu cầu phân loại mẫu dữ liệu O thuộc lớp
nào trong hai lớp đó
Hình 1-2 Bài toán phân lớp dữ liệu chuỗi thời gian
Bài toán phân lớp (classification) dữ liệu chuỗi thời gian được đặt ra để giải quyết
vấn đề trên Phân lớp là quá trình học có giám sát bao gồm hai giai đoạn: huấn luyện
và kiểm tra Giai đoạn huấn luyện sẽ thực hiện việc học dựa trên tập huấn luyện Giai đoạn kiểm tra sẽ thực hiện kiểm tra kết quả phân lớp cho một tập kiểm thử
Ngoài ra, có nhiều bài toán trên thực tế đòi hỏi chúng ta phải phân lớp khác nhau dựa trên tài nguyên tính toán được cấp phát Ví dụ, bài toán yêu cầu phải phân lớp tín hiệu trên đường truyền internet để xác định xem đó có phải là tín hiệu bất thường hay không, và chỉ có giới hạn trong khoảng thời gian nhất định để ta đua ra đáp án phân lớp Như vậy ta sẽ không thể đợi giải thuật chạy xong hoàn toàn để kết luận, mà sẽ phải đưa ra kết luận trong khoảng thời gian tùy chọn với một mức độ chính xác có thể chấp nhận được, khi đó một giải thuật phân lớp có thời gian thực thi tùy chọn là rất cần thiết
Tuy nhiên, khi áp dụng phân lớp trên chuỗi thời gian ta thường gặp phải nhược điểm sau: dữ liệu chuỗi thời gian có đặc điểm là rất lớn nên việc phân lớp sẽ rất tốn chi phí thời gian và tài nguyên Để khắc phục nhược điểm trên, chúng ta có thể vận dụng nhận dạng motif trên dữ liệu chuỗi thời gian để cải tiến giải thuật phân lớp dữ
Mẫu dữ liệu O
Trang 16liệu chuỗi thời gian có thời gian thực thi tùy chọn giúp giải thuật thực thi hữu hiệu hơn
1.2 Mục tiêu và giới hạn đề tài
Mục tiêu nghiên cứu đề tài trên cơ sở dữ liệu chuỗi thời gian tập trung vào hai vấn
đề chính:
Nghiên cứu các giải thuật nhận dạng motif trên dữ liệu chuỗi thời gian
Trong cơ sở dữ liệu chuỗi thời gian, dữ liệu thường rất lớn Vì vậy, việc nhận dạng các motif đặc trưng cho dữ liệu chuỗi thời gian và phân lớp dựa trên các motif đại diện này sẽ giúp quá trình phân lớp nhanh hơn
Ứng dụng việc nhận dạng motif để cải tiến giải thuật phân lớp dữ liệu chuỗi thời
gian có thời gian thực thi tùy chọn để làm cho giải thuật này trở nên hữu hiệu hơn
Sau khi nhận dạng motif đại diện chuỗi thời gian, ta xác định thứ hạng (rank)
của các dữ liệu chuỗi thời gian dựa trên motíp đại diện Sau đó chúng ta áp dụng giải
thuật phân lớp có thời gian thực thi tùy chọn (anytime classification algorithm) để phân lớp tập dữ liệu chuỗi thời gian này dựa vào thứ hạng (rank) các dữ liệu chuỗi
thời gian đã tính trước đó
1.3 Tóm lược kết quả đạt được
Với những yêu cầu của đề tài, sau thời gian nghiên cứu và hiện thực, chúng tôi đã xây dựng hệ thống phân lớp dữ liệu chuỗi thời gian Hệ thống này gồm hai thành phần chính: Huấn luyện và Phân lớp Thành phần Huấn luyện cho phép người dùng nhập
vào một tập huấn luyện gồm m chuỗi thời gian có chiều dài bằng nhau Thành phần
Huấn luyện sẽ thực hiện việc sắp xếp tập huấn luyện Thành phần phân lớp sẽ cho
phép người dùng nhập vào một chuỗi thời gian O, hệ thống sẽ sử dụng tập huấn luyện
Trang 17Thành phần huấn luyện làm nhiệm vụ sắp xếp tập huấn luyện Việc sắp xếp này chia làm hai giai đoạn: giai đoạn tìm kiếm motif cho mỗi thể hiện trong tập huấn luyện và giai đoạn sắp xếp tập huấn luyện dựa trên motif của mỗi thể hiện trong tập
huấn luyện Để phát hiện motif chương trình sử dụng giải thuật nhận diện motif trên
dữ liệu chuỗi thời gian dựa vào điểm cực trị quan trọng Để tính khoảng cách xoắn
thời gian động của tất cả các cặp chuỗi, chương trình áp dụng kỹ thuật tính chặn dưới
LB_Keogh để cải thiện thời gian thực thi
Thành phần phân lớp tìm chuỗi gần nhất của chuỗi mục tiêu O trong tập huấn
luyện Chương trình cũng áp dụng kỹ thuật tính chặn dưới trên để cải thiện thời gian thực thi
Dựa trên chương trình đã hiện thực, đề tài tiến hành thực nghiệm trên hai tập dữ liệu mẫu và so sánh kết quả khi phân lớp không sử dụng thông tin motif và khi có sử dụng thông tin motif của các thể hiện trong tập huấn luyện trên cả hai giai đoạn huấn luyện
và phân lớp:
- Giai đoạn huấn luyện, đề tài so sánh thời gian thực thi quá trình sắp xếp tập huấn luyện khi không sử dụng thông tin motif và khi có sử dụng thông tin motif
- Giai đoạn phân lớp, đề tài so sánh độ chính xác của giải thuật phân lớp khi
sử dụng motif và khi không sử dụng motif
Như vậy, hệ thống hiện thực sẽ được trình bày trong các chương sau đã đáp ứng được những yêu cầu và nhiệm vụ của đề tài
1.4 Cấu trúc của luận văn
Đề cương được chia làm 3 phần chính:
Chương 2 : Cơ sở lý thuyết
Trang 18Giới thiệu một số lý thuyết nền tảng được sử dụng trong đề tài bao gồm hai độ đo khoảng cách được sử dụng trong việc tìm khoảng cách trong miền dữ liệu chuỗi thời
gian là khoảng cách Euclid và khoảng cách xoắn thời gian động (dynamic time
warping) Chương này cũng sẽ giới thiệu giải thuật phân lớp được sử dụng chính
trong đề tài là giải thuật phân lớp k Láng giềng gần nhất (k-Nearest-Neighbor)
Chương 3 : Các công trình nghiên cứu liên quan
Chương này sẽ trình bày các công trình có liên quan đến đề tài Các công trình này được trình bày trong bốn mục liên quan đến bốn chủ đề chính: ràng buộc đối với
đường xoắn cho khoảng cách dynamic time warping (DTW), các kỹ thuật tăng tốc
trong việc tính DTW, giải thuật phân lớp có thời gian thực thi tùy chọn và giải thuật tìm kiếm Motif trên dữ liệu chuỗi thời gian
Chương 4 : Giải quyết vấn đề và thực nghiệm
Chương này tập trung vào cải thiện thời gian thực thi của giải thuật phân lớp có
thời gian thực thi tùy chọn bằng cách sử dụng thông tin motif của chuỗi thời gian Kế
tiếp trình bày kết quả thực nghiệm trên hai tập dữ liệu TwoPat và Clustered
Chương 5 : Kết luận
Trình bày một số kết luận sau khi thực hiện đề tài
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Để giải quyết bài toán phân lớp dữ liệu chuỗi thời gian, đề tài này sử dụng một số
lý thuyết từ các lĩnh vực khác nhau Do đó, chương này sẽ trình bày những điểm cơ
bản của các lý thuyết đó Độ đo khoảng cách Euclid và độ đo khoảng cách xoắn thời
gian động, cách tính độ đo khoảng cách xoắn thời gian động Kỹ thuật phân lớp k láng giềng gần nhất
2.1 Độ đo khoảng cách trong miền dữ liệu chuỗi thời gian
Trong lĩnh vực dữ liệu chuỗi thời gian, có nhiều độ đo khoảng cách đã được đề
xuất Tuy nhiên, hai độ đo được quan tâm nhất là độ đo Minkowski và độ đo Xoắn
thời gian động (Dynamic Time Warping)
2.1.1 Độ đo khoảng cách Minkowski
Giả sử có hai chuỗi thời gian Q và C có chiều dài n có dạng:
Trang 20Tuy p có thể có nhiều lựa chọn khác nhau, nhưng trong các nghiên cứu về dữ liệu chuỗi thời gian, p=2 (khoảng cách Euclid) thường được sử dụng Hình 2-1 minh họa hình ảnh trực giác của khoảng cách Euclid
Hình 2-1 Hình ảnh trực giác của khoảng cách Euclid (nguồn: [3])
Ưu điểm:
- Tính toán dễ dàng
- Có khả năng sử dụng trong tất cả các bài toán tìm kiếm tương tự như phân lớp, gom cụm, so trung chuỗi con, … Đặc biệt độ đo này thích hợp khi sử dụng các phép biến đổi thu giảm số chiều
Nhược điểm:
- Nhạy cảm với nhiễu
- Không thích hợp đối với dữ liệu cho hình dạng gần giống nhau nhưng lệch nhau về mặt thời gian Hình 2-2 minh họa hai chuỗi thời gian có hình dạng giống nhau nhưng lệch nhau về mặt thời gian
- Chỉ tính được đối với hai chuỗi có chiều dài bằng nhau Trong các trường hợp cần tính khoảng cách giữa hai chuỗi có chiều dài không bằng nhau thì không thể sử dụng khoảng cách Euclid
Nhằm khắc phục những nhược điểm này, độ đo khoảng cách xoắn thời gian động
Trang 21Hình 2-2 Hai mẫu dữ liệu có hình dạng giống nhau nhưng lệch nhau về thời gian (nguồn:[4])
2.1.2 Độ đo xoắn thời gian động
Giả sử có hai chuỗi thời gian Q và C có chiều dài lần lượt là n và m, với:
Q = q 1 , q 2 , …, q i , …, q n
C = c 1 , c 2 , …, c j , …, c m
Để tính toán khoảng cách DTW giữa hai chuỗi trên, ta xây dựng một ma trận D kích thước m n Trong đó, phần tử D ij = d(q i , c j ) là khoảng cách giữa hai điểm q i và
c j (với khoảng cách Euclid thì d(q i , c j ) = (q i - c j)2) Ma trận này được minh họa trong
Hình 2-3 Đường xoắn (warping path) W là một tập các phần tử liên tục của ma trận định nghĩa một ánh xạ giữa Q và C Phần tử thứ k của W được định nghĩa là w k =(i, j) k,
vì vậy ta có:
W = w 1 , w 2 , …, w k , …, w K max(n, m) K m + n + 1
Theo định nghĩa, đường xoắn tối ưu là đường xoắn cho giá trị chi phí xoắn
(khoảng cách xoắn) nhỏ nhất:
Trang 22( , ) = (2 1)
Trong đó chi phí xoắn của một đường xoắn là tổng khoảng cách của các cặp điểm tương ứng với các ô nằm trên đường xoắn đó
Hình 2-3 Cách tính khoảng cách xoắn thời gian động: A) Cho hai chuỗi
mục tiêu Q và C, B) Ma trận tính DTW, C) Kết quả tính DTW (nguồn:[2]) Đường xoắn tối ưu này có thể tìm được bằng cách sử dụng phương pháp quy
hoạch động (dynamic programming) để tính công thức truy hồi định nghĩa khoảng cách tích lũy (cumulative distance) (i, j) như sau:
( − , )( , − )( − , − )
(2 2)
Trang 23Trong đó, khoảng cách tích lũy (i, j) tại ô (i, j) của ma trận được tính bằng khoảng cách d(i, j) của ô tương ứng cộng với giá trị nhỏ nhất của khoảng cách tích lũy
của các ô liền kề trước ô đó Khoảng cách xoắn thời gian động của hai chuỗi thời gian
Q và C là căn bậc hai của khoảng cách tích lũy tại ô (m, n)
Khoảng cách Euclid có thể được xem là trường hợp đặc biệt của khoảng cách
DTW, trong đó phần tử thứ k của W được ràng buộc sao cho w k = (i, j) k , i = j = k Lưu
ý rằng trường hợp đặc biệt này chỉ đúng khi hai chuỗi có chiều dài bằng nhau vì khoảng cách Euclid không thể tính được đối với hai chuỗi có chiều dài khác nhau Trong thực tế, ta không cần phải tính tất cả đường xoắn có thể, vì nhiều đường xoắn trong số đó tương ứng với những đường xoắn không hợp lý (ví dụ, một điểm trong một chuỗi điện tâm đồ ánh xạ tới toàn bộ nhịp tim trong một chuỗi điện tâm đồ khác) Thay vào đó, ta xem xét những ràng buộc sau để làm giảm số lượng đường xoắn cần phải xét trong quá trình so trùng
- Điều kiện biên: w 1 = (1, 1) và w K = (m, n), ràng buộc này yêu cầu đường
xoắn phải bắt đầu và kết thúc ở hai góc đối diện của ma trận
- Tính liên tục: cho w k = (a, b), thì w k – 1 = (a’, b’) trong đó a – a’ 1 và b –
b’ 1 Ràng buộc này yêu cầu đường xoắn phải di chuyển giữa những ô liền
kề (kể cả những ô liền kề theo đường chéo)
- Tính đơn điệu tăng: cho w k = (a, b) thì w k – 1 = (a’, b’) với a – a’ 0 và b –
b’ 0 Ràng buộc này yêu cầu các điểm trong W phải tăng đơn điệu theo
thời gian
Quá trình tính khoảng cách DTW được minh họa bằng ví dụ sau: Giả sử ta có hai chuỗi thời gian:
Q = (5, 6, 6, 9, 10, 8, 5, 4, 4, 5)
Trang 24C = (4, 6, 7, 6, 5, 4, 2, 3, 5, 6)
Hai chuỗi này được biểu diễn bằng đồ thị ở Hình 2-4
Hình 2-4 Đồ thị biểu diễn hai chuỗi thời gian
Để tính khoảng cách DTW giữa hai chuỗi trên, ta xây dựng ma trận tính khoảng cách tích lũy như trong Hình 2-5 Mỗi ô trong ma trận này chứa khoảng cách tích lũy của cặp điểm tương ứng
Q C
Q
Trang 25Trong ma trận ở Hình 2-5, giá trị của các ô được tính như sau:
- (1, 1) = (Q1 – C1)2
- (1, i) = (1, i-1) + (Q 1 – C i)2
- (i, 1) = (i-1, 1) + (Q i – C 1)2
- Các ô còn lại: (i, j) = min{(i-1, j), (j-1, i), (i-1, j-1)} + (Q i – C j)2
Sau khi tính được giá trị cho tất cả các ô, ta có đường xoắn bao gồm các ô tham gia tích lũy giá trị cho ô (10, 10) Trong ví dụ trên, đường xoắn là các ô được tô xám
Vậy, khoảng cách DTW của hai chuỗi Q và C như trên là √22 ≈ 4.7 , trong khi
khoảng cách Euclid là 8
Một số ưu điểm và nhược điểm của khoảng cách DTW được tóm tắt như sau:
Ưu điểm:
Euclid, đặc biệt trong trường hợp tập dữ liệu nhỏ
nhưng lệch nhau về mặt thời gian
có chiều dài không bằng nhau
Nhược điểm:
Với hai chuỗi Q và C có chiều dài lần lượt là m và n, để tính khoảng cách DTW của hai chuỗi này, ta phải xây dựng ma trận D có kích thước m n và
tính khoảng cách tích lũy tương ứng với hàm (công thức 2.3) cho mọi ô trong ma trận đó Như vậy, độ phức tạp tính toán của giải thuật tính DTW sử
dụng phương pháp quy hoạch động là O(mn)
Trang 262.2 Kỹ thuật phân lớp k láng giềng gần nhất
Kỹ thuật phân lớp k láng giềng gần nhất được mô tả lần đầu tiên vào đầu thập
niên 1950 Đây là kỹ thuật phân lớp cho các đối tượng dữ liệu dựa trên các mẫu huấn
luyện gần nó nhất K láng giềng gần nhất là một loại phương pháp học dựa trên mẫu
(instance-based learning), hay phương pháp học lười (lazy learning), trong đó tất cả
các tính toán được trì hoãn đến lúc phân lớp Tập huấn luyện được mô tả bao gồm n
thuộc tính và nhãn lớp tương ứng của nó Mỗi đối tượng dữ liệu thể hiện một điểm
trong không gian n chiều Bằng cách này, toàn bộ tập huấn luyện được lưu trữ trong một không gian mẫu n chiều Khi cho một đối tượng dữ liệu chưa được xác định lớp, giải thuật k láng giềng gần nhất tìm kiếm trong không gian mẫu để có được k mẫu huấn luyện gần với đối tượng đó nhất k mẫu huấn luyện này là k “mẫu láng giềng gần
nhất” của mẫu cần phân lớp Kết quả phân lớp cho đối tượng mục tiêu là kết quả bầu
cử của k mẫu láng giềng gần nhất của nó Nghĩa là nhãn lớp của đối tượng mục tiêu được xác định là lớp có nhiều mẫu xuất hiện nhất trong k mẫu láng giềng gần nhất của đối tượng mục tiêu đó Nếu k = 1 thì nhãn lớp của đối tượng mục tiêu chính là nhãn
lớp của mẫu gần nó nhất Trong ví dụ ở Hình 2-6, nếu k=3, mẫu cần phân lớp (mẫu hình tròn) sẽ được xác định thuộc lớp hình tam giác Nhưng nếu k=5, mẫu cần phân
lớp sẽ được xác định thuộc lớp hình vuông
Giải thuật k láng giềng gần nhất không định nghĩa chi tiết độ đo tương tự giữa
các đối tượng dữ liệu Tùy theo đặc điểm của từng loại dữ liệu mà ta có thể dùng các
độ đo tương tự khác nhau Trong trường hợp dữ liệu chuỗi thời gian, độ đo tương tự
có thể là khoảng cách Euclid hoặc khoảng cách DTW như được mô tả ở mục 2.1 Với giải thuật phân lớp k láng giềng gần nhất, giai đoạn huấn luyện chỉ bao gồm
việc lưu trữ các đối tượng dữ liệu trong tập huấn luyện cùng với nhãn lớp tương ứng Việc lưu trữ này có thể bao gồm việc sắp xếp thứ tự cho tập huấn luyện
Trang 27Hình 2-6 Giải thuật phân lớp k-Nearest-Neighbor
Trang 28CHƯƠNG 3: CÁC CÔNG TRÌNH CÓ LIÊN QUAN
Chương này sẽ trình bày các công trình có liên quan đến đề tài Các công trình này được trình bày trong bốn mục liên quan đến bốn chủ đề chính: ràng buộc đối với đường xoắn cho khoảng cách DTW, các kỹ thuật tăng tốc trong việc tính DTW, giải thuật phân lớp có thời gian thực thi tùy chọn và giải thuật tìm kiếm Motif trên dữ liệu chuỗi thời gian
3.1 Ràng buộc đối với đường xoắn cho khoảng cách DTW
Việc tính DTW có chi phí lớn vì phải tìm đường xoắn đạt giá trị nhỏ nhất trong
ma trận bằng quy hoạch động Độ phức tạp của giải thuật là O(n 2) Tuy nhiên, đường xoắn tối ưu thường gần đường chéo của ma trận Vì vậy, ta có thể giảm bớt chi phí tính toán bằng cách giới hạn lại phạm vi tìm đường xoắn tối ưu thay vì tìm trên toàn
bộ ma trận Hai ràng buộc về đường xoắn phổ biến là dải Sakoe-Chiba và hình bình hành Itakura Trong phạm vi đề tài này, ràng buộc đối với đường xoắn này được gọi
là cửa sổ xoắn (warping window)
3.1.1 Ràng buộc dải Sakoe-Chiba
Ràng buộc trên cửa sổ xoắn này được đề xuất bởi Sakoe và Chiba (1978) [6] Ràng buộc này được mô tả như sau
Gọi đường xoắn tối ưu là tập các ô trong ma trận gióng hàng của hai chuỗi thời gian:
W = w 1 , w 2 , …, w k , …, w K max(n, m) K m + n + 1
Trong đó w k = (i, j) k Ràng buộc dải Sakoe-Chiba (Sakoe-Chiba Band) yêu cầu |i–
j| r, trong đó r là một số nguyên dương cho trước được gọi là cửa sổ xoắn
Trang 293.1.2 Ràng buộc hình bình hành Itakura
Ràng buộc hình bình hành Itakura (Itakura Paralelogram) được đề xuất bởi
Itakura (1975) [8] Ràng buộc hình bình hành Itakura cũng định nghĩa đường xoắn cũng bao gồm một tập các ô trong ma trận gióng hàng của hai chuỗi thời gian:
W = w 1 , w 2 , …, w k , …, w K max(n, m) K m + n + 1
Trong đó w k = (i, j) k Ràng buộc Itakura Parallelogram yêu cầu |i – j| r, trong đó
r là một hàm biến thiên theo thời gian
Hình 3-1.b minh họa hình dạng cửa sổ xoắn ứng với ràng buộc Hình bình hành Itakura
Hình 3-1 Hai loại ràng buộc đối với đường xoắn: a) Dải Sakoe-Chiba
và b) Hình bình hành Itakura (nguồn: [5])
3.1.3 Dải Ratanamahatana-Keogh (dải R-K)
Ratanamahatana & Keogh (2004) [4] đã đề xuất dải Ratanamahatana-Keogh (dải R-K) dựa trên nhận xét rằng cửa sổ xoắn có thể có hình dạng không đồng nhất Dải R-
Trang 30K được đề xuất nhằm hai mục đích: tăng tốc việc tính toán khoảng cách DTW và nâng cao độ chính xác của quá trình phân lớp vì cửa sổ xoắn là kết quả học dựa trên tập dữ liệu mẫu Hình 3-2.A trình bày một ví dụ của dải R-K khi so sánh với dải Sakoe-Chiba và Hình bình hành Itakura
Hình 3-2 Hình dạng của các loại ràng buộc cửa sổ xoắn: A) Dải R-K,B) Dải
Sakoe-Chiba, C) Hình bình hành Itakura (nguồn: [4])
Để tìm ra dải R-K cho một tập dữ liệu, Ratanamahatana và các cộng sự xem bài toán này như một bài toán tìm kiếm cổ điển Để sử dụng kỹ thuật tìm kiếm heuristic,
cần phải đặc tả hướng tìm kiếm, như tìm kiếm tiến (forward), tìm kiếm lùi (backward)
hay kết hợp hai hướng (bi-direction), trạng thái khởi động, hàm heuristic, các thao tác
và phép kiểm tra cuối cùng Tìm kiếm tiến bắt đầu với trạng thái là dải Sakoe-Chiba
có kích thước bằng 0 (khoảng cách Euclid), còn tìm kiếm lùi bắt đầu với trạng thái là dải đồng nhất có kích thước bằng cạnh lớn nhất m
Trang 31Hình 3-3 Minh họa giải thuật tìm kiếm tiến sử dụng độ chính xác
(nguồn:[4])
Về mặt lý thuyết, ngưỡng có thể là một ô, nhưng ngưỡng này có thể gây ra tình trạng quá khớp (overfitting) Ratanamahatana và các cộng sự đề nghị ngưỡng có giá trị √ ⁄ ,2 trong đó m là chiều dài của chuỗi dữ liệu nhập
3.2 Các kỹ thuật tính chặn dưới cho khoảng cách DTW
Mục này giới thiệu ý nghĩa của chặn dưới cho khoảng cách DTW trong quá trình tìm kiếm tuần tự và trình bày một số chặn dưới cho khoảng cách DTW phổ biến
3.2.1 Ý nghĩa của chặn dưới
Ý nghĩa của việc tính chặn dưới được Ratanamahatana và Keogh trình bày trong [5] và có thể được tóm lược như sau: Bài toán tìm kiếm tương tự sử dụng khoảng cách Euclid có độ phức tạp I/O lớn, tuy nhiên việc tìm kiếm tương tự sử dụng DTW còn có
n) Một cách để giải quyết vấn đề này là sử dụng một hàm chặn dưới tính toán nhanh,
Trang 32giúp lược bớt những chuỗi không thể là chuỗi so trùng tốt nhất Hình 3-4 thể hiện giải thuật tìm kiếm tuần tự sử dụng chặn dưới
if true_dist < best_so_far best_so_far = true_dist;
index_of_best_match = i;
end if end if end for
Hình 3-4 Giải thuật tìm kiếm tuần tự sử dụng chặn dưới (nguồn:[5]) Trong giải thuật này, việc tính toán khoảng cách DTW là không cần đối với những chuỗi có chặn dưới lớn hơn khoảng cách tốt nhất hiện tại
Các chặn dưới phải thỏa mãn một số ràng buộc sau:
luôn nhỏ hơn hoặc bằng khoảng cách thực
tính toán của độ đo DTW nguyên thủy
tốt Chặn dưới có giá trị gần như bằng 0 sẽ không được sử dụng
3.2.2 Phương pháp tính chặn dưới LB_Keogh
Chặn dưới LB_Keogh được Keogh và các cộng sự đề xuất năm 2002 [2] Để tính
được chặn dưới này, trước tiên các tác giả đề xuất tìm đường bao (envelope) của
chuỗi thời gian dựa trên cửa sổ xoắn Và các tác giả cũng đề xuất hai cách tính đường
Trang 33bao dựa trên 2 loại cửa sổ xoắn phổ biến nhất là dải Sakoe-Chiba và hình bình hành Itakura
Với cửa sổ xoắn kích thước r, đường bao của chuỗi thời gian Q được tính như
sau:
U i = max(q i-r : q i+r) (3.1)
L i = min(q i-r : q i+r)
U và L lần lượt đại diện cho đường bao phía trên (Upper) và đường bao phía dưới
(Lower) Với cửa sổ xoắn dải Sakoe-Chiba, r là một hằng số Còn với Itakura Parallelogram, r là một hàm theo biến i Lưu ý rằng, cho dù kích thước cửa sổ xoắn là
một hằng số (dải Sakoe-Chiba), đường bao có thể có chiều rộng không bằng nhau Đường bao rộng hơn đối với những chuỗi thời gian thay đổi nhanh, và hẹp hơn với những chuỗi dữ liệu thay đổi chậm Hình 3-5 minh họa hình dạng của đường bao ứng với hai loại ràng buộc cửa sổ xoắn phổ biến: dải Sakoe-Chiba và hình bình hành Itakura
Hình 3-5 Đường bao ứng với hai loại ràng buộc: A) Dải Sakoe-Chiba
và B) Hình bình hành Itakura (nguồn:[2])
Trang 34Một tính chất hiển nhiên nhưng rất quan trọng của U và L đó là:
i L i q i U i Với đường bao U và L được định nghĩa như trên, chặn dưới LB_Keogh được định
nghĩa bằng công thức sau:
Hình 3-6 Hình ảnh trực quan của chặn dưới LB_Keogh (nguồn:[2])
Từ khi được công bố đến nay, đã có rất nhiều công trình nghiên cứu sử dụng chặn dưới LB_Keogh để tăng tốc quá trình tính khoảng cách DTW Ngoài các công trình của Keogh và các cộng sự, nhiều công trình của các nhóm nghiên cứu khác cũng sử
Trang 353.2.3 Đánh giá
Việc tính toán khoảng cách DTW là không thể tăng tốc Vì vậy, để tăng tốc thì phải hạn chế số lần tính khoảng cách DTW Việc hạn chế này được thực hiện bằng các kỹ thuật tính chặn dưới
Cách tính của chặn dưới LB_Keogh phụ thuộc vào cửa sổ xoắn Cửa sổ xoắn
càng rộng thì đường bao của chuỗi sẽ càng rộng và giá trị của chuỗi mục tiêu càng dễ nằm trong đường bao Điều đó làm cho giá trị chặn dưới nhỏ Vì vậy, chặn dưới
LB_Keogh phù hợp với kích thước cửa sổ xoắn nhỏ
Kích thước cửa sổ xoắn thường phụ thuộc vào đặc điểm của dữ liệu cần xử lý Vì vậy, nếu dữ liệu yêu cầu cửa sổ xoắn có kích thước nhỏ thì ta nên dùng kỹ thuật tính
chặn dưới LB_Keogh
3.3 Giải thuật phân lớp có thời gian thực thi tùy chọn
Giải thuật phân lớp có thời gian thực thi tùy chọn dựa trên giải thuật
1-Nearest-Neighbor Giải thuật này được ứng dụng vào bài toán phân lớp dữ liệu chuỗi thời gian
bởi Ueno và các cộng sự (2006) [7] Ý tưởng chính của giải thuật là sắp xếp các chuỗi trong tập huấn luyện theo tiêu chí mức độ đóng góp của mỗi chuỗi vào việc phân lớp chính xác cho lớp dữ liệu chứa chuỗi đó Chuỗi nào đóng góp nhiều hơn vào việc phân lớp chính xác thì chuỗi đó có thứ hạng cao hơn Sau khi đã sắp xếp tập huấn luyện theo thứ tự như trên, giải thuật lần lượt tìm chuỗi gần nhất với chuỗi mục tiêu trong tập huấn luyện theo thứ tự đó Người dùng có thể yêu cầu dừng giải thuật bất cứ lúc nào và kết quả phân lớp sẽ là lớp của mẫu gần nhất với mẫu mục tiêu đến thời điểm đó
3.3.1 Giải thuật phân lớp
Gọi Database là tập huấn luyện gồm m mẫu Mẫu thứ i của tập huấn luyện này được truy xuất bằng Database.object(i), và nhãn lớp của mẫu thứ i này được truy xuất
Trang 36bằng Database.class_label(i) Hình 3-7 thể hiện giải thuật phân lớp có thời gian tùy
Hình 3-7 Giải thuật phân lớp có thời gian thực thi tùy chọn (nguồn:[7])
Gọi Index là một hoán vị của các số nguyên từ 1 đến m, với m là kích thước của
Database Cuối cùng, gọi O là đối tượng cần được phân lớp sử dụng giải thuật phân
lớp láng giềng gần nhất có thời gian thực thi tùy chọn với Database là tập huấn luyện Tại một thời điểm S, với number_of_classes(Database) S m, giải thuật sẽ bị ngắt
và kết quả phân lớp cho O sẽ được ghi nhận
Trong mười dòng đầu tiên, giải thuật so sánh O với một mẫu trong mỗi lớp của tập huấn luyện và gán nhãn lớp của mẫu gần nhất với O cho O Lưu ý rằng giải thuật
không được phép dừng trong giai đoạn này, tuy nhiên giai đoạn này chỉ chiếm khoảng
Trang 37Cho đến khi bị ngắt hoặc không còn mẫu nào trong tập huấn luyện để so sánh, giải
thuật sẽ so sánh O với mỗi mẫu trong tập huấn luyện theo một thứ tự đã được định nghĩa trước trong hàm Index, cập nhật kết quả phân lớp để phản ánh kết quả tích lũy
được cho đến thời điểm đó
Giải thuật không định nghĩa Index được sắp xếp như thế nào Giải thuật cũng đề nghị distance(Database.object(Index p), O) có thể là độ đo khoảng cách bất kỳ, như khoảng cách Euclid, khoảng cách Manhattan, hay khoảng cách xoắn thời gian động, tùy theo nhu cầu của ứng dụng cũng như đặc điểm của dữ liệu
3.3.2 Sắp xếp tập huấn luyện
Với giải thuật phân lớp có thời gian thực thi tùy chọn như đã trình bày ở mục 3.3.1, có hai cách để cải tiến giải thuật: thay đổi độ đo khoảng cách và thay đổi thứ tự
sắp xếp Index Tuy nhiên, Ueno và các cộng sự [7] chỉ tập trung vào việc phân tích
quá trình sắp xếp tập huấn luyện
Hình 3-8 trình bày giải thuật sắp xếp tập huấn luyện Ý tưởng chính của giải thuật này như sau: giải thuật bắt đầu bằng việc tìm chuỗi xấu nhất trong tập huấn
luyện (dòng 5, 6), và gán nó vào vị trí cuối cùng trong Index (dòng 7) Để đảm bảo
rằng chuỗi này không được xem xét lại một lần nữa, giải thuật thay thế nó trong danh
sách ban đầu bằng giá trị null (dòng 8) Sau đó, giải thuật lặp lại việc tìm chuỗi xấu nhất trong phần còn lại và gán cho chuỗi đó vị trí trống cuối cùng trong Index
Trang 38Giải thuật trên hoàn toàn tổng quát và rõ nghĩa, ngoại trừ việc làm thế nào để xác định chuỗi xấu nhất là chưa được trình bày Đây là một điểm mở của giải thuật, cho phép mỗi người có thể có cách định nghĩa riêng của mình về cách xác định thế nào là chuỗi xấu nhất
Lưu ý rằng, giải thuật này tìm kiếm chuỗi xấu nhất trước thay vì tìm chuỗi tốt nhất trước Điều đó có nghĩa, ta hoàn toàn có thể tìm kiếm theo chiều ngược lại, theo
đó ta tìm chuỗi tốt nhất và đặt nó vào vị trí đầu tiên trong Index, sau đó tìm chuỗi tốt nhất kế tiếp và đặt nó vào vị trí trống tiếp theo Lý do chính cho quyết định chọn cách tìm chuỗi xấu nhất trước là vì việc xác định chuỗi tốt nhất là rất khó trong giai đoạn đầu của giải thuật Rất khó để đánh giá mức độ hữu dụng của một chuỗi riêng lẻ trong giai đoạn đầu của giải thuật tìm chuỗi tốt nhất trước vì ta quan tâm đến những ranh giới mang tính quyết định, được định nghĩa bằng hai (hoặc nhiều hơn) hai chuỗi thuộc các lớp khác nhau
Phần tiếp theo của mục này giới thiệu một số tiêu chí sắp xếp tập huấn luyện
Random và BestDrop là trường hợp xấu nhất và tốt nhất SimpleRank là kỹ thuật sắp
xếp mà Ueno và các cộng sự [7] đã đề xuất:
- Random: Thứ tự sắp xếp được xác định một cách ngẫu nhiên
- BestDrop: Kỹ thuật sắp xếp này tạo một danh sách các mẫu gần nhất, bao
gồm cả các mẫu thuộc cùng lớp (associates) và các mẫu thuộc lớp khác (enemies), và sử dụng một hàm tính điểm có trọng số dựa trên danh sách này
để sắp xếp các mẫu trong tập huấn luyện
- SimpleRank: Ý tưởng chính của kỹ thuật sắp xếp này là gán cho mỗi mẫu
một thứ hạng dựa trên sự đóng góp của nó vào việc phân lớp Thứ hạng
(rank) của mỗi mẫu x được tính bằng công thức:
Trang 39Trong đó, x j là mẫu nhận x là láng giềng gần nhất Ý tưởng của việc sắp xếp
này là tăng thứ hạng cho những mẫu phân lớp chính xác các mẫu khác, và giảm thứ hạng nhiều hơn đối với những mẫu phân lớp sai các mẫu khác
Theo cách định nghĩa rank như trên, tại mỗi bước của giải thuật sắp xếp,
mẫu nào có rank thấp nhất sẽ được gán vào vị trí trống cuối cùng và bị loại khỏi tập huấn luyện đang xét
Nếu hai mẫu có cùng thứ hạng, thứ tự của chúng sẽ được xác định dựa trên
độ ưu tiên Độ ưu tiên (priority) của một mẫu x được xác định bằng công
thức:
Trong đó x j là mẫu nhận x là láng giềng gần nhất và d(x, x j) là khoảng cách
giữa x và x j Ý tưởng chính là nếu một mẫu cách xa láng giềng gần nhất của
nó, nó có thể là nhiễu hoặc đơn giản là một mẫu không điển hình của lớp đó,
và nó nên được loại sớm
3.4 Phát hiện motif cho dữ liệu chuỗi thời gian
Phương pháp tìm kiếm mẩu lặp thường xuyên (motif) do E Keogh và các cộng
sự đưa ra vào năm 2002 [1] cho chuỗi thời gian là một trong những phương pháp thường được sử dụng nhiều nhất Mục đích của phương pháp này là tìm ra những mẩu
dữ liệu thường xuất hiện trong chuỗi thời gian ban đầu, từ đó đưa ra những tóm lược
và phản ánh đặc trưng cho chuỗi thời gian Việc tìm kiếm các chuỗi thời gian con này thường phục vụ cho quá trình gom cụm dữ liệu (clustering), khám phá các luật kết hợp cũng như phân lớp (classification) dữ liệu Các ứng dụng tìm chuỗi con xuất hiện được áp dụng trong các lĩnh vực y khoa, điều khiển tự động, chế tạo người máy…
o Chuỗi con trùng khớp (Match) : Cho một số thực dương R và một chuỗi thời gian
T, một chuỗi con C bắt đầu vị trí p và chuỗi con M bắt đầu từ vị trí q Nếu D(C,M) ≤
Trang 40R thì C khớp (matching) với M
Cách định nghĩa chuỗi con trùng khớp như trên là rõ ràng về mặt trực giác Nhưng cách định nghĩa này phản ánh sự khớp nhau một cách tầm thường Chúng ta sẽ quan tâm như thế nào là khớp tốt nhất (best matches) giữa các chuỗi con Và chúng ta
có hai chuỗi con khớp với chuỗi con hiện có tại hai điểm bên trái và bên phải
Từ sự quan sát Hình 3-10, ta đưa ra định nghĩa khớp tầm thường như sau:
Hình 3-9 Mô phỏng phát hiện motif dữ liêu chuỗi thời gian 3 chuỗi dữ liệu con bên dưới thường xuất hiện trong chuỗi dữ liệu ban đầu ở phía trên
Hình 3-10 Mô phỏng chuỗi con trùng khớp (matching) giữa hai chuỗi con
C và M Chuỗi thời gian T là đường màu đen nhỏ, chuỗi con C có hình màu đen
in đậm và chuỗi M có hình màu xám
Chuỗi con trùng khớp tầm thường (trivial match) : Cho chuỗi thời gian T và