Với lượng dữ liệu chuỗi thời gian khổng lồ ấy, vấn đề đặt ra của chúng ta là cần phải thực hiện phân lớp Classification chúng để có thể sử dụng một cách hiệu quả cho các mục đích khác n
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học : PGS TS Dương Tuấn Anh
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 PGS.TS Quản Thành Thơ
2 TS Nguyễn Đức Dũng
3 TS Võ Thị Ngọc Châu
4 PGS.TS Đỗ Phúc
5 PGS TS Lê Trung Quân
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA KH&KTMT
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập – Tự do – Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Ngày, tháng, năm sinh: 27/02/1990 Nơi sinh: Tp.HCM Chuyên ngành: Khoa Học Máy Tính Mãsố: 60.48.01.01
I TÊN ĐỀ TÀI: CẢI TIẾN GIẢI THUẬT 1-NN PHÂN LỚP DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO MỘT KỸ THUẬT NHÁNH VÀ CẬN
II NHIỆM VỤ VÀ NỘI DUNG
- Nghiên cứ u dữ liê ̣u chuỗi thời gian và vấn đề phân lớp dữ liê ̣u chuỗi thời gian
- Nghiên cứ u giải thuâ ̣t k-lân cận gần nhất cho bài toán phân lớp dữ liệu chuỗi thời gian
- Nghiên cứ u lý thuyết kỹ thuâ ̣t nhánh-và-cận để cải tiến tốc độ cho giải thuật
- Nghiên cứ u các độ đo tương tự, từ đó cho ̣n ra đô ̣ đo phù hợp để cải tiến độ chính xác bài toán phân lớp áp du ̣ng giải thuâ ̣t 1-lân cận gần nhất
- Hiện thực hệ thống phân lơ ́ p dữ liê ̣u chuỗi thời gian với giải thuâ ̣t 1-lân cận gần nhất bằng mô ̣t kỹ thuật nhánh-và-cận
- Thử nghiê ̣m hê ̣ thống trên mô ̣t số bô ̣ dữ liê ̣u mẫu được lấy từ trang web “The UCR Time Series Classification Archive”, so sánh các kết quả thu được và rút ra kết luâ ̣n
III NGÀY GIAO NHIỆM VỤ: 17/08/2015
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 05/12/2016
V CÁN BỘ HƯỚNG DẪN: PGS TS Dương Tuấn Anh
Trang 4i
LỜI CẢM ƠN
Trong thời gian thực hiện luận văn, dưới sự hướng dẫn tận tình của các giảng viên trường Đại học Bách Khoa Tp.HCM, tôi đã hoàn thành luận văn tha ̣c sĩ với thời gian như
dự kiến Có được kết quả ấy tôi xin chân thành gởi lời cám ơn đến
- PGS TS Dương Tuấn Anh – Giảng viên khoa Khoa Học Máy Tính, trường Đại Học Bách Khoa Tp.HCM đã tận tình hướng dẫn, giúp đỡ tôi trong suốt quá trình làm luận văn Sự giúp đỡ và hướng dẫn nhiệt tình của thầy đã giúp tôi củng cố kiến thức và hoàn thành tốt luận văn tốt nghiệp Tôi xin chân thành cám ơn thầy
- Quý thầy cô khoa Khoa Học Máy Tính, trường Đại học Bách Khoa Tp.HCM nói riêng và các thầy cô Trường Đại Học Bách Khoa Tp.HCM nói chung đã tận tình giảng dạy và chỉ bảo, giúp tôi trang bị những kiến thức quý báu trong suốt thời gian học tập và nghiên cứu
Dù rất cố gắng và liên tục nâng cao kiến thức, nhưng luận văn này vẫn không thể tránh những thiếu sót và hạn chế Do đó tôi rất mong nhận được sự chỉ dẫn của quý thầy
cô và các bạn để tôi có thể hoàn thiện những sai sót mà mình mắc phải
Trang 5ii
TÓM TẮT LUẬN VĂN
Mô ̣t chuỗi thời thời gian (Time Series) là một chuỗi dữ liệu dạng điểm, được đo
theo từng mốc thời gian liền nhau theo một tần suất nhất định Dữ liê ̣u chuỗi thời gian đã
được ứng dụng trong nhiều ngành nghề, lĩnh vực khác nhau như công nghiê ̣p, sức khỏe,
thời tiết và tài chính Việc phân tích dữ liệu chuỗi thời gian đóng vai trò quan trọng vì nó bao gồm các phương pháp phân tích dữ liê ̣u chuỗi thời gian để trích xuất các số liê ̣u
thống kê có ý nghĩa và các đă ̣c điểm khác của dữ liê ̣u Qua đó ta có thể dự đoán các sự kiê ̣n trước, hoặc thống kê xu hướng dữ liệu hiện tại và đưa ra quyết định tốt hơn phục vụ đời sống con người
Trong những năm gần đây, viê ̣c phân lớp dữ liê ̣u chuỗi thời gian đã hấp dẫn sự
chú ý của nhiều nhà nghiên cứu, nhiều giải thuâ ̣t đã được đề xuất để cải tiến hiê ̣u suất cho
bài toán phân lớp dữ liệu thời gian Trong luâ ̣n văn này, chúng tôi khảo sát một hướng
tiếp cận để cải tiến việc phân lớp dữ liệu chuỗi thời gian sử du ̣ng giải thuâ ̣t 1-lân câ ̣n gần nhất phân lớp dữ liệu chuỗi thời gian dựa trên mô ̣t kỹ thuâ ̣t nhánh-và-cận
Chi phí tính toán của giải thuâ ̣t phân lớp 1-lân câ ̣n gần nhất thường đòi hỏi mô ̣t đô ̣ phức ta ̣p tính toán chi phí cao Phương pháp nhánh-và-cận được thực hiê ̣n để ta ̣o điều kiê ̣n tính toán 1-lân câ ̣n gần nhất nhanh, bằng cách loa ̣i bỏ bớt các phép tính toán không
cần thiết Các kết quả thực nghiê ̣m đã chứng minh sự hiê ̣u quả của giải thuâ ̣t Viê ̣c phân
lớp 1-lân câ ̣n gần nhất áp du ̣ng kỹ thuâ ̣t nhánh-và-cận cho thấy thời gian thực hiê ̣n nhanh hơn viê ̣c phân lớp bằng phương pháp 1-lân câ ̣n gần nhất truyền thống Bên ca ̣nh đó thì
hai độ đo khoảng cách CID, CRD cũng cho ra kết quả phân lớp với đô ̣ chính xác cao hơn
đô ̣ đo Euclid
Trang 6iii
ABSTRACT
A time series is a series of data points listed in time order Most commonly, a time series is a sequence taken at successive equally spaced points in time Time series data have been applied in many different domains such as industries, health, weather and finance Time series data analysis plays an important role because it comprises methods for analyzing time series data in order to extract meaningful statistics and other characteristics of the data, thus helps human predict events, or do some statical reporting and have better decision making
In recent years, time series data classification has attracted the attention of many researchers, many algorithms have been proposed to improve the performance of time series data classification problem In this thesis, we investigated an approach to improve
time series data classification using 1-nearest neighbor through a branch-and-bound
technique
Computation of the 1-neareset neighbor classification generally requires a large
number of expensive distance computations The method of branch-and-bound is
implemented in the present algorithm to facilitate rapid calculation of the 1-nearest
neighbor, by eliminating the necessity of calculating many distances Experimental
results demonstrate the efficiency of the algorithm The 1-nearest neighbor classification using a branch and bound algorithm was faster than traditional 1-nearest neighbor classification Besides that, two distance mesuare CID and CRD also gave the classification results with better accuracy than Euclid
Trang 7iv
LỜ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 là 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
Ngày 05 tháng 12 năm 2016
Đoàn Dũ
Trang 8v
MỤC LỤC
LỜI CẢM ƠN i
TÓM TẮT LUẬN VĂN ii
ABSTRACT iii
LỜI CAM ĐOAN iv
MỤC LỤC v
DANH MỤC HÌNH ẢNH viii
DANH MỤC BẢNG BIỂU x
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 Giới thiệu đề tài 1
1.2 Đô ̣ng cơ nghiên cứu 3
1.3 Ý nghĩa của đề tài 3
1.4 Mục tiêu và nhiệm vu ̣ của đề tài 4
1.5 Những kết quả đa ̣t được 5
1.6 Bố cu ̣c luâ ̣n văn 5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7
2.1 Dữ liệu chuỗi thời gian 7
2.2 Vấn đề phân lớp dữ liệu chuỗi thời gian 7
2.3 Giải thuật k-lân cận gần nhất 10
2.3.1 Giới thiê ̣u giải thuâ ̣t k-lân cận gần nhất 10
2.3.2 Áp du ̣ng giải thuâ ̣t k-lân cận gần nhất vào bài toán phân lớp 11
2.4 Kỹ thuật nhánh-và-cận 13
2.5 Giải thuâ ̣t k-means 14
2.5.1 Giới thiê ̣u về kỹ thuâ ̣t gom cu ̣m 14
2.5.2 Giải thuâ ̣t k-means 15
Trang 9vi
2.6 Các độ đo tương tự 16
2.6.1 Độ đo khoảng cách Euclid 16
2.6.2 Độ đo xoắn thời gian động 17
CHƯƠNG 3: CÁC CÔNG TRÌNH LIÊN QUAN 20
3.1 Kỹ thuật nhánh-và-câ ̣n để tăng tốc giải thuật k-lân cận gần nhất 20
3.1.1 Phân rã tập thiết kế 21
3.1.2 Tìm kiếm cây bằng kỹ thuật nhánh-và-cận 22
3.2 Đô ̣ đo CID cho dữ liệu chuỗi thời gian 26
3.2.1 Một vài bất biến 26
3.2.2 CID cho chuỗi thời gian 28
3.3 Độ đo CRD cho dữ liệu chuỗi thời gian 29
3.3.1 Nguyên lý độ dài mô tả tối thiểu (Minimum Description Length - MDL) 29
3.3.2 Độ đo khoảng cách tỉ lệ nén (Compression Rate Distance - CRD) 32
CHƯƠNG 4: PHƯƠNG PHÁP TIẾP CẬN 36
4.1 Sơ đồ tổng quát của hê ̣ thống 36
4.2 Giải thích sơ đồ trình tự của hê ̣ thống 37
4.2.1 Phân rã tâ ̣p dữ liê ̣u và quy trình tổng quát của hê ̣ thống 37
4.2.2 Phân lớp dữ liê ̣u 1-lân câ ̣n gần nhất áp du ̣ng giải thuâ ̣t nhánh và câ ̣n 40
CHƯƠNG 5: HIỆN THỰC VÀ THỰC NGHIỆM 42
5.1 Môi trường thực nghiê ̣m 42
5.2 Các giải thuâ ̣t và các bô ̣ dữ liê ̣u thực nghiê ̣m 42
5.2.1 Bộ dữ liệu Gun Point 43
5.2.2 Bộ dữ liệu CBF 46
5.2.3 Bộ dữ liệu Trace 47
5.2.4 Bộ dữ liệu Fish 49
5.3 Kết quả thực nghiê ̣m 50
Trang 10vii
5.3.1 Thực nghiê ̣m với bô ̣ dữ liê ̣u 50Words 50
5.3.2 Thực nghiê ̣m với bô ̣ dữ liê ̣u CinC_ECG_torso 51
5.3.3 Thực nghiê ̣m với bô ̣ dữ liê ̣u Face (all) 52
5.3.4 Thực nghiê ̣m với bô ̣ dữ liê ̣u Swedish Leaf 53
5.3.5 Thực nghiê ̣m với bô ̣ dữ liê ̣u MedicalImages 54
5.3.6 Thực nghiê ̣m với bô ̣ dữ liê ̣u ECG5000 55
5.3.7 Thực nghiê ̣m với bô ̣ dữ liê ̣u Yoga 57
5.3.8 Thực nghiê ̣m với bô ̣ dữ liê ̣u Adiac 58
5.3.9 Thực nghiê ̣m với bô ̣ dữ liê ̣u FacesUCR 59
5.3.10 Thực nghiê ̣m với bô ̣ dữ liê ̣u ProximalPhalanxOutlineCorrect 60
5.3.11 Thực nghiê ̣m với bô ̣ dữ liê ̣u DistalPhalanxOutlineCorrect 61
5.3.12 Thực nghiê ̣m với bô ̣ dữ liê ̣u Strawberry 62
5.3.13 Thực nghiê ̣m với bô ̣ dữ liê ̣u Gun Point 63
5.3.14 Thực nghiê ̣m với bô ̣ dữ liê ̣u CBF 65
5.3.15 Thực nghiê ̣m với bô ̣ dữ liê ̣u Trace 66
5.3.16 Thực nghiê ̣m với bô ̣ dữ liê ̣u Fish 67
5.4 Bảng tóm tắt các thông số sử dụng và tóm tắt các kết quả thực nghiệm 68
5.4.1 Bảng tóm tắt các thông số 68
5.4.2 Bảng tóm tắt kết quả thực nghiệm 69
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 76
6.1 Những kết luâ ̣n của luâ ̣n văn 76
6.2 Hướng phát triển 77
TÀI LIỆU THAM KHẢO 78 PHỤ LỤC A A1 BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH - VIỆT A1
Trang 11viii
DANH MỤC HÌNH ẢNH
Hình 1.1 Dữ liệu chuỗi thời gian của công ty chứng khoán Đường Biên Hòa 1
Hình 2.1 Ví dụ bài toán phân lớp 8
Hình 2.2 Hệ thống phân lớp tổng quát 9
Hình 2.3 Phân lớp với k-lân cận gần nhất với trường hợp chọn k quá lớn 11
Hình 2.4 Phân lớp sử dụng 1-lân cận gần nhất 12
Hình 2.5 Phân lớp sử dụng 2-lân cận gần nhất 12
Hình 2.6 Phân lớp sử dụng 3-lân cận gần nhất 13
Hình 2.7 Biên độ hai chuỗi thời gian áp dụng độ đo Euclid 17
Hình 2.8 Biên độ hai chuỗi thời gian áp dụng độ đo xoắn thời gian động 18
Hình 3.1 Kết quả phân rã tập mẫu với l = 3 21
Hình 3.2 Minh họa cho Luật 1 23
Hình 3.3 Minh họa cho Luật 2 23
Hình 3.4 Mô hình giải thuật tìm kiếm áp dụng phương pháp nhánh-và-cận 25
Hình 3.5 Dữ liệu của hai chuỗi thời gian tương đồng nhau 27
Hình 3.6 Độ đo khoảng cách chưa được chuẩn hóa 27
Hình 3.7 Hai chuỗi thời gian thể hiện hành vi của loài côn trùng 28
Hình 3.8 Mã giả Matlab cho giải thuâ ̣t tính đô ̣ đo CID 29
Hình 3.9 Dữ liệu của ba chuỗi thời gian Q, C, R 32
Hình 3.10 Mã giã cho giải thuâ ̣t tính đô ̣ đo CRD 35
Hình 4.1 Mô hình thực hiê ̣n của hê ̣ thống 36
Hình 4.2 Vi ̣ trí nhãn lớp trong tâ ̣p tin CBF_TRAIN 37
Hình 4.3 Vi ̣ trí dữ liê ̣u chuỗi thời gian của tâ ̣p tin CBF_TRAIN 38
Hình 4.4 Lưu đồ thực hiê ̣n giải thuâ ̣t 1-NN phân lớp dựa vào nhánh-và-câ ̣n 40
Hình 5.1 Vài ảnh rời trích từ video Gun-Draw: theo dõi hành vi của tay phải và chuyển thành một chuỗi cử động 45
Trang 12ix
Hình 5.2 Dạng chuỗi thời gian thuộc lớp Point (phía trên) và dạng chuỗi thời gian thuộc lớp Gun-Draw (phía dưới) 46 Hình 5.3 Ba đường cong biểu diễn ba lớp hàm Cylinder, Bell và Funnel 47 Hình 5.4 Bốn nhóm đường cong biểu thị cho bốn lớp trong bộ dữ liệu Trace 48 Hình 5.5 Phía trên là hình chụp của một con cá Từ hình dạng đường biên của cá, một chuỗi thời gian đơn biến được tạo ra ở phía dưới 49
Trang 13x
DANH MỤC BẢNG BIỂU
Bảng 5.1 Thông tin các bô ̣ dữ liê ̣u 44
Bảng 5.2 Kết quả phân lớp bô ̣ dữ liê ̣u 50Words 50
Bảng 5.3 Kết quả phân lớp bô ̣ dữ liê ̣u CinC_ECG_torso 51
Bảng 5.4 Kết quả phân lớp bô ̣ dữ liê ̣u Face (all) 52
Bảng 5.5 Kết quả phân lớp bô ̣ dữ liê ̣u Swedish Leaf 53
Bảng 5.6 Kết quả phân lớp bô ̣ dữ liê ̣u MedicalImages 54
Bảng 5.7 Kết quả phân lớp bô ̣ dữ liê ̣u ECG5000 56
Bảng 5.8 Kết quả phân lớp bô ̣ dữ liê ̣u Yoga 57
Bảng 5.9 Kết quả phân lớp bô ̣ dữ liê ̣u Adiac 58
Bảng 5.10 Kết quả phân lớp bô ̣ dữ liê ̣u FacesUCR 59
Bảng 5.11 Kết quả phân lớp bô ̣ dữ liê ̣u ProximalPhalanxOutlineCorrect 60
Bảng 5.12 Kết quả phân lớp bô ̣ dữ liê ̣u DistalPhalanxOutlineCorrect 61
Bảng 5.13 Kết quả phân lớp bô ̣ dữ liê ̣u Strawberry 62
Bảng 5.14 Kết quả phân lớp bô ̣ dữ liê ̣u Gun Point 64
Bảng 5.15 Kết quả phân lớp bô ̣ dữ liê ̣u CBF 65
Bảng 5.16 Kết quả phân lớp bô ̣ dữ liê ̣u Trace 66
Bảng 5.17 Kết quả phân lớp bô ̣ dữ liê ̣u 67
Bảng 5.18 Bảng tóm tắt thông số 69
Bảng 5.19 Bảng so sánh tỉ lệ lỗi phân lớp 1-NN truyền thống qua ba độ đo 70
Bảng 5.20 Bảng so sánh tỉ lệ lỗi phân lớp 1-NN áp dụng kỹ thuật nhánh-và-cận qua ba độ đo 71
Bảng 5.21 Bảng so sánh thời gian phân lớp trước và sau khi áp dụng kỹ thuật nhánh-và-cận (Euclid) 72
Bảng 5.22 Bảng so sánh thời gian phân lớp trước và sau khi áp dụng kỹ thuật nhánh-và-cận (CID) 73
Trang 14xi
Bảng 5.23 Bảng so sánh thời gian phân lớp trước và sau khi áp dụng kỹ thuật cận (CRD) 74
Trang 15nhánh-và-1
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu đề tài
Ngày nay, cùng với sự phát triển của xã hội, các loại thiết bị ghi nhận dữ liệu cũng được phát minh ngày càng tốt và có thể ghi nhận được nhiều thông tin hơn trong cùng một khoảng thời gian ngắn như máy đo cảm biến (Sensors) Điều này đã dẫn đến sự
bùng nổ của dữ liệu chuỗi thời gian (Time Series Data) Chúng tồn tại dưới nhiều lĩnh
vực khác nhau trong cuộc sống như: kinh tế, y học, giáo dục, môi trường, thiên văn… và dưới nhiều dạng khác nhau như: số liệu, hình ảnh, âm thanh, đoạn phim…
Chuỗi thời gian (Time Series) là một tập hợp dữ liệu các trị số đo được dưới dạng chuỗi các số thực theo từng khoảng thời gian cách đều nhau Trong nghiên cứu dữ liệu chuỗi thời gian, người ta thường quan tâm đến một đoạn gồm nhiều giá trị được đo liên tục chứ không quan tâm đến giá trị tại từng thời điểm cụ thể Do đó, chuỗi thời gian có
thể được xem là dữ liệu nhiều chiều, với mỗi chiều là một giá trị quan sát được tại một thời điểm cụ thể Số chiều có thể có độ dài lên đến từ vài chục như giá trị chứng khoán của một công ty trong một tháng hoặc vài trăm triệu như giá trị điện tim của một bệnh nhân
Hình 1.1 Dữ liệu chuỗi thời gian của công ty chứng khoán Đường Biên Hòa
Trang 162
Hình 1.1 là một ví dụ về dữ liệu chuỗi thời gian đo chỉ số giá chứng khoán của công
ty cổ phần Đường Biên Hòa (BHS: HOSE) với khoảng thời gian quan sát 6 tháng (từ tháng 07 năm 2015 đến tháng 12/2015) với giá trị cao nhất là 22.3 (x 1000 VNĐ), và giá trị thấp nhất là 12.9 (x 1000 VNĐ)
Với lượng dữ liệu chuỗi thời gian khổng lồ ấy, vấn đề đặt ra của chúng ta là cần phải thực hiện phân lớp (Classification) chúng để có thể sử dụng một cách hiệu quả cho các
mục đích khác nhau như: nghiên cứu, phân tích dữ liệu, dự báo…
Phân lớp dữ liệu chuỗi thời gian là việc xây dựng một bộ phân lớp (Classifier) dựa
trên các chuỗi thời gian đã được phân lớp để xác đi ̣nh nhãn lớp cho các dữ liê ̣u chuỗi thời gian chưa đươ ̣c phân lớp Trong lĩnh vực khai phá dữ liê ̣u [6] thì vấn đề phân lớp là vấn
đề quan tro ̣ng và phổ biến Một số giải thuật phân lớp truyền thống để thực hiện bài toán
phân lớp như: phân lớp với k-lân cận gần nhất (k-Nearest Neighbor), phân lớp với mạng nơ-ron (Neural Network), phân lớp với cây quyết định (Decision Tree)…
Từ những giải thuâ ̣t truyền thống này thì các nhà nghiên cứu đã có nhiều công trình nghiên cứu liên quan đến quá trình phân lớp dữ liê ̣u Trong các phương pháp để phân lớp
dữ liệu thì phương pháp phân lớp với k-lân cận gần nhất là phương pháp tốt nhất, phù
hợp nhất và thường được sử du ̣ng nhất đối với công tác phân lớp dữ liê ̣u chuỗi thời gian[12] Tuy nhiên, việc thực hiện phân lớp bằng giải thuật k-lân cận gần nhất có nhược điểm là chi phí tính toán cao và tốn bộ nhớ để lưu trữ tập huấn luyện (Training Set) lớn vì thế chúng ta cần giảm chi phí tính toán khoảng cách khi tìm k-lân cận gần nhất
Đây cũng là hướng nghiên cứu chính của đề tài Đề tài tập trung vào việc cải tiến giải
thuật 1-lân cận gần nhất (1-Nearest Neighbor) để phân lớp dữ liệu chuỗi thời gian dựa vào một kỹ thuật nhánh-và-cận được đề xuất bởi Fukunaga và Narendrea vào năm 1975
[5] để tăng tốc, kết hợp với một độ đo tương tự thích hợp để tăng độ chính xác
(Accuracy) cho bài toán phân lớp
Trang 173
1.2 Đô ̣ng cơ nghiên cứu
Mă ̣c dù Fukunaga và Narendrea đã đề xuất phương pháp cải tiến giải thuâ ̣t 1-lân cận gần nhất (1-Nearest Neighbor) để phân lớp dữ liệu dựa vào một kỹ thuật nhánh-và-cận
Tuy nhiên, công trình này mới chỉ được thực nghiê ̣m với bô ̣ dữ liê ̣u bình thường, mà
chưa thực nghiê ̣m thử trên bô ̣ dữ liê ̣u chuỗi thời gian
Vì vâ ̣y, chúng tôi quyết đi ̣nh nghiên cứu phương pháp này và kiểm tra nó với dữ liê ̣u chuỗi thời gian để kiểm tra xem phương pháp này có thể áp du ̣ng hiê ̣u quả cho dữ liê ̣u chuỗi thời gian hay không
1.3 Ý nghi ̃a của đề tài
Giải quyết nhược điểm chi phí tính toán cao khi thực hiê ̣n phân lớp dữ liê ̣u chuỗi thời gian bằng giải thuật k-lân cận gần nhất
Lựa cho ̣n phương pháp gom cu ̣m k-means để phân rã tâ ̣p dữ liê ̣u cũng giúp thời gian
phân rã tâ ̣p dữ liê ̣u nhanh hơn so với các phương pháp gom cu ̣m khác
Bên ca ̣nh đó, khảo sát các đô ̣ đo khác nhau như: đô ̣ đo Euclid, đô ̣ đo khoảng cách bất biê ́n độ phức tạp (Complexity-Invariant Distance - CID), và đô ̣ đo khoảng cách tỉ lê ̣ nén (Compression Rate Distance – CRD) để so sánh đô ̣ chính xác của giải thuâ ̣t, từ đó tìm ra
đô ̣ đo phù hợp nhất theo nhu cầu của người sử du ̣ng Vì cả ba đô ̣ đo này đều có đô ̣ phức
ta ̣p tuyến tính nên sẽ không làm tăng thêm quá nhiều chi phí cho quá trình phân rã tâ ̣p dữ liê ̣u
Với các phương pháp trên, thời gian thực hiê ̣n mô ̣t bài toán phân lớp bằng giải thuâ ̣t
k-lân cận gần nhất trong thực tế được cải thiê ̣n nhanh hơn, nhưng không làm giảm đi đô ̣ chính xác của bài toán Vì nếu không nhìn ở khía cạnh khác, không nhìn ở độ đo khác thì
giá trị gọi là tối thiểu (min) Cụ thể, với độ đo Euclid thì cho dù ta nhìn ở khía cạnh vét
cạn hay cấu trúc gì đi nữa thì đều cho kết quả min ra đúng với vét cạn
Thông qua thực nghiệm vớ i nhiều bộ dữ liệu khác nhau, luâ ̣n văn sẽ chứng minh tính
hiê ̣u quả của viê ̣c cải tiến giải thuâ ̣t 1-NN phân lớp dữ liê ̣u chuỗi thời gian dựa vào mô ̣t
Trang 184
kỹ thuâ ̣t nhánh-và-cận so với giải thuâ ̣t 1-NN truyền thống Ngoài ra, luâ ̣n văn còn so
sánh tính hiệu quả của các độ đo khoảng cách, từ đó rút ra các kết luận liên quan làm cơ
sở cho người dùng sử dụng các độ đo khoảng cách một cách linh hoạt tùy tình huống và lĩnh vực cụ thể
1.4 Mục tiêu và nhiê ̣m vu ̣ của đề tài
Mu ̣c tiêu chính của đề tài là nghiên cứu phương pháp cải tiến giải thuật 1-lân cận gần nhất (1-Nearest Neighbor) để phân lớp dữ liệu chuỗi thời gian dựa vào một kỹ thuật nhánh-và-cận được đề xuất bởi Fukunaga và Narendrea đề xuất vào năm 1975 [5] và
thực nghiê ̣m trên bô ̣ dữ liê ̣u chuỗi thời gian để kiểm tra sự hiê ̣u quả của nó Ngoài ra,
đề tài cũng tiến hành thử nghiê ̣m cải tiến đô ̣ chính xác cho giải thuâ ̣t bằng cách áp
du ̣ng các đô ̣ đo mới như đô ̣ đo CID, đô ̣ đo CRD bên ca ̣nh đô ̣ đo Euclid đã được các
tác giả thực hiê ̣n trong nghiên cứu của mình
Các công viê ̣c được thực hiê ̣n trong đề tài gồm có
- Nghiên cứu dữ liệu chuỗi thời gian và vấn đề phân lớp dữ liệu chuỗi thời gian
- Nghiên cứu giải thuật 1-lân cận gần nhất, áp dụng để phân lớp dữ liệu chuỗi thời gian
- Nghiên cứu phân lớp chuỗi thời gian dựa vào một kỹ thuật nhánh-và-cận để
cải tiến tốc độ giải thuật
- Nghiên cứ u giải thuâ ̣t gom cu ̣m k-means để phân rã tâ ̣p dữ liê ̣u chuỗi thời gian
thành mô ̣t tâ ̣p phân rã rời ra ̣c có cấu trúc da ̣ng cây để phu ̣c vu ̣ cho viê ̣c áp du ̣ng
kỹ thuật nhánh-và-cận khi phân lơ ́ p bằng giải thuật 1-lân cận gần nhất
- Nghiên cứu các độ đo tương tự cho các chuỗi thời gian, lựa chọn độ đo phù
hợp và áp dụng nó vào việc cải tiến độ chính xác cho giải thuật
Trang 195
1.5 Như ̃ng kết quả đa ̣t đươ ̣c
Đã xây dựng thành công giải thuâ ̣t 1-lân câ ̣n gần nhất phân lớp dữ liê ̣u chuỗi thời gian dư ̣a trên kỹ thuâ ̣t nhánh-và-cận áp du ̣ng các đô ̣ đo Euclid, CID và CRD
Kết quả sau khi thực nghiê ̣m cho thấy, khi thực hiê ̣n phân lớp dữ liê ̣u chuỗi thời gian thì giải thuâ ̣t 1-lân câ ̣n gần nhất áp du ̣ng kỹ thuâ ̣t nhánh-và-cận cho ra thời gian phân lớp nhanh hơn giải thuâ ̣t 1-lân câ ̣n gần nhất truyền thống mà không làm giảm đi đô ̣ chính xác
phân lớp với các thông số được cho ̣n phù hợp tương ứng cho từng bô ̣ dữ liê ̣u
Ngoài ra, khi kiểm tra kết quả của giải thuâ ̣t 1-lân câ ̣n gần nhất áp du ̣ng kỹ thuâ ̣t nhánh-và-cận giữa ba đô ̣ đo thu được kết quả: độ đo CID và độ đo CRD có kết quả phân lớp chính xác hơn độ đo Euclid mă ̣c dù thời gian có lâu hơn mô ̣t ít Giữa hai đô ̣ đo CID và CRD thì thời gian thực hiê ̣n phân lớp của đô ̣ đo CRD thường lâu hơn đô ̣ đo CID; đô ̣
đo CRD thường cho ra kết quả phân lớp chính xác hơn đô ̣ đo CID
Tóm la ̣i, thực nghiê ̣m đã cho ra được các kết quả khá tốt theo mong đợi đó là
- Giải thuâ ̣t phân lớp 1-lân câ ̣n gần nhất áp du ̣ng kỹ thuâ ̣t nhánh-và-cận cho thời gian phân lớp nhanh hơn hẳn giải thuâ ̣t phân lớp 1-lân câ ̣n gần nhất truyền
thống, đă ̣c biê ̣t đúng với các bô ̣ dữ liê ̣u chuỗi thời gian có tâ ̣p huấn luyê ̣n và
tâ ̣p thử có kích thước lớn
- Việc áp du ̣ng đô ̣ đo CID và đô ̣ đo CRD đã cho ra kết quả phân lớp chính xác hơn đô ̣ đo Euclid mă ̣c dù thời gian phân lớp lâu hơn so với đô ̣ đo Euclid
1.6 Bố cu ̣c luâ ̣n văn
Luâ ̣n văn được bố cu ̣c theo các nô ̣i dung chính trong từng chương như sau
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
Chương này giới thiệu tổng quan về đề tài, đô ̣ng cơ nghiên cứu, ý nghĩa của đề tài, mục tiêu, nhiệm vu ̣ của đề tài, những kết quả đa ̣t được và bố cu ̣c tổng thể của luâ ̣n văn
Trang 206
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương này trình bày các nội dung lý thuyết liên quan đến đề tài như: dữ liệu chuỗi thời gian, vấn đề phân lớp dữ liệu chuỗi thời gian, giải thuật k-lân cận gần nhất,
kỹ thuật nhánh-và-cận, ca ́ch thực hiê ̣n phân rã bô ̣ dữ liê ̣u mẫu dùng giải thuâ ̣t means va ̀ các độ đo tương tự phổ biến hiện nay
k-CHƯƠNG 3: CÁC CÔNG TRÌNH LIÊN QUAN
Chương này sẽ trình bày tổng quan về các công trình liên quan đến đề tài Đồng thời, chương này sẽ nêu ra các đánh giá ưu, khuyết điểm của các công trình
CHƯƠNG 4: PHƯƠNG PHÁP TIẾP CẬN
Chương này giới thiê ̣u hướng tiếp câ ̣n của luâ ̣n văn
CHƯƠNG 5: HIỆN THỰC VÀ THỰC NGHIỆM
Chương này sẽ trình bày phương pháp hiê ̣n thực bài toán phân lớp dữ liê ̣u chuỗi thời gian bằng giải thuâ ̣t 1-lân cận gần nhất Đồng thời, trình bày hiê ̣u quả cải tiến trước và sau khi áp du ̣ng kỹ thuâ ̣t nhánh-và-cận vào bài toán thông qua viê ̣c thực
nghiê ̣m và so sánh kết quả trên mô ̣t số bô ̣ dữ liê ̣u khác nhau
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Chương này trình bày các kết luâ ̣n quan tro ̣ng và hướng phát triển của luâ ̣n văn
PHẦN TÀI LIỆU THAM KHẢO
PHẦN PHỤ LỤC
Trang 217
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương này sẽ trình bày các định nghĩa về chuỗi thời gian, vấn đề phân lớp dữ liệu chuỗi thời gian, giải thuật k-lân cận gần nhất, kỹ thuật nhánh-và-cận, cách thực hiê ̣n phân
rã bô ̣ dữ liê ̣u mẫu dùng giải thuật k-means và hai độ đo tương tự phổ biến
2.1 Dữ liệu chuỗi thời gian
Một chuỗi thời gian (Time Series) là một tập hợp dữ liệu các trị số đo được dưới dạng
chuỗi các số thực, mỗi trị số biểu diễn một giá trị đo tại những thời điểm cách đều nhau
Trong nghiên cứu, một chuỗi thời gian có thể được xem là một tập hợp dữ liệu trong không gian hai chiều, được biểu diễn với bộ giá trị (T, V) Với T là mốc thời điểm quan sát được giá trị, V là giá trị quan sát tương ứng Vì khoảng thời gian quan sát là bằng nhau nên có thể không cần quan tâm đến mốc thời điểm T này Khi đó, chuỗi thời gian là
dữ liệu n chiều và được ký hiệu là X = {x 1, x 2, x 3, …, x n }, trong đó x i là các giá trị số thực
quan sát tại thời điểm thứ i (i chạy từ 1 đến n)
2.2 Vấn đề phân lớp dữ liệu chuỗi thời gian
Phân lớp (Classification) [6] dữ liệu chuỗi thời gian là dạng phân tích dữ liệu nhằm
rút trích các mô hình mô tả các lớp dữ liệu hoặc dự đoán xu hướng dữ liệu từ các mô hình
đó Ví dụ, phân lớp dữ liệu chứng khoán dựa vào sự biến thiên giá của các cổ phiếu, phân
tích dữ liệu điện tâm đồ của các bệnh nhân để xác định bệnh nhân ấy là bình thường hay
có bệnh Quá trình này gồm hai bước chính là huấn luyện (Training) và phân lớp (Classification)
- Huấn luyện hay còn gọi là bước học, ở bước này ta tiến hành xây dựng bộ phân lớp (Classifier) bằng việc phân tích tập huấn luyện Tập huấn luyện (Training Set) là tập các chuỗi thời gian đã được phân lớp (Labeled Time
Series)
Trang 228
- Phân lớp: thực hiện gắn nhãn lớp cho các chuỗi thời gian chưa được phân lớp (Unlabeled Time Series) dựa vào bộ phân lớp đã được xây dựng ở trên
Hình 2.1 [4] cho ta một ví dụ về bài toán phân lớp, với một tập huấn luyện trong đó
đã chứa các mẫu được phân thành các lớp A và B, nhiệm vụ của ta là phải xác định được
lớp cho mẫu mới này và liệu lớp đó có thực sự phù hợp với mẫu mới này hay không?
Hình 2.1 Ví dụ bài toán phân lớp
Trong lĩnh vực khai phá dữ liệu, phân lớp là một kỹ thuật rất phổ biến và quan trọng,
nó thường là bước cuối cùng trong một tiến trình chung, liên quan đến việc sắp các đối tượng vào các lớp riêng biệt tương ứng Hình 2.2 [1] cho ta thấy các thành phần tổng quát của một hệ thống phân lớp
Vấn đề của bài toán phân lớp dữ liệu chuỗi thời gian dựa va ̀o phương pháp k-lân câ ̣n gần nhất là việc đánh giá khoảng cách của hai chuỗi thời gian Trong trường hợp hai đối
tượng này hoàn toàn giống nhau thì khoảng cách này sẽ là 0 và ngược lại chúng càng khác nhau khi khoảng cách giữa chúng càng lớn Để có thể tính toán và so sánh độ tương
tự giữa các chuỗi thời gian với nhau thì các khoảng cách này được biểu diễn thành các số
thực
Trang 239
Hình 2.2 Hệ thống phân lớp tổng quát
Mặc dù có khá nhiều công trình nghiên cứu về bài toán phân lớp dữ liệu thông
thường, hầu hết các giải thuật kinh điển trong hai lĩnh vực học máy và khai phá dữ liệu đã
không làm việc tốt với dữ liệu chuỗi thời gian do những tính chất đặc biệt của loại dữ liệu
này
Ba tính chất của dữ liệu chuỗi thời gian gồm có: tính chất đầu tiên là số chiều nhiều,
tính chất thứ hai là mối tương quan cao giữa các điểm dữ liệu trên chuỗi thời gian và tính
chất thứ ba là dữ liệu có thể có nhiễu Chính ba tính chất này đã khiến cho việc phân tích
và khai phá dữ liệu trên loại dữ liệu này trở nên khó khăn và đầy thách thức
Việc phân lớp dữ liệu chuỗi thời gian có thể được thực hiện dựa trên các giải thuật phân lớp truyền thống khá phổ biến như: phân lớp với k-lân cận gần nhất (k-Nearest Neighbor), phân lớp với máy véc-tơ hỗ trợ (Support Vector Machine), phân lớp với cây quyết định (Decision Tree), phân lớp với mạng nơ-ron (Neural Network)…
Đề tài này sẽ chọn phương pháp phân lớp với giải thuật k-lân cận gần nhất là phương pháp phù hợp nhất hiện nay để phân lớp dữ liệu chuỗi thời gian nhưng để phù hợp với mức độ luận văn, đề tài sẽ chọn k = 1, nghĩa là phân lớp với giải thuật 1-lân cận gần nhất
Cách đánh giá chất lượng phân lớp: ta sẽ đánh giá chất lượng phân lớp dựa trên độ chính xác(Accuracy) hoă ̣c tỉ lệ lỗi (Error_Rate) phân lớp
Hai tiêu chí này được xác đi ̣nh bằng công thức bên dưới
Trang 24n i i
c
tc Accuracy
1 1
Với c i la ̀ số phần tử thuô ̣c lớp i trong tâ ̣p dữ liê ̣u
tc i là số phần tử thực sự được phân lớp vào lớp i trong tâ ̣p dữ liê ̣u
Tỉ lệ lỗi (Error_Rate) phân lớp được xác đi ̣nh bằng công thức
Error_Rate = 1 - Accuracy
2.3 Giải thuật k-lân cận gần nhất
2.3.1 Giớ i thiê ̣u giải thuâ ̣t k-lân cận gần nhất
Giải thuật k-lân cận gần nhất (k-Nearest Neighbor) được sử dụng rất phổ biến trong lĩnh vực khai phá dữ liệu nói chung và trong bài toán phân lớp nói riêng Đây là
phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần nhất giữa đối tượng
cần gán nhãn lớp và tất cả các đối tượng khác trong tập huấn luyện
Với giải thuật k-lân cận gần nhất thì một đối tượng sẽ được phân lớp dựa vào k lân cận của nó, trong đó k là số nguyên dương được chọn khi thực hiện thuật toán
Việc chọn giá trị k rất quan trọng vì nếu chúng ta chọn k quá nhỏ thì kết quả sẽ dễ
bị ảnh hưởng bởi nhiễu, còn nếu chọn k quá lớn thì nhiều phần tử lân cận chọn được có
thể đến từ các lớp khác
Hình 2.3 [4] bên dưới sẽ giải thích rõ hơn về tính chính xác của giải thuật Khi
chọn k quá lớn thì sau khi phân lớp, đối tượng cần phân lớp sẽ được xếp vào lớp “-”, nhưng thực tế nếu chọn k phù hợp hơn, ta thấy đối tượng cần phân lớp xếp vào lớp “+” sẽ
chính xác hơn
Trang 2511
Hình 2.3 Phân lớp với k-lân cận gần nhất với trường hợp chọn k quá lớn
2.3.2 Áp dụng giải thuâ ̣t k-lân cận gần nhất vào bài toán phân lớp
Các bước tiến hành phân lớp với giải thuật k-lân cận gần nhất
- Xác định tham số k, chính là số lân cận gần nhất
- Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối tượng trong
tập huấn luyện
- Sắp xếp các kết quả tính khoảng cách đã được thực hiện theo thứ tự tăng dần
và xác định k-lân cận gần nhất với đối tượng cần phân lớp
- Lấy tất cả các lớp của k-lân cận gần nhất đã được xác định ở bước trên
- Cuối cùng, tổng hợp các lớp đó lại và chọn ra lớp có số lượng nhiều nhất, đây chính là lớp mà đối tượng cần phân lớp ban đầu thuộc về
Hình 2.4 [4] là ví dụ sử dụng giải thuật 1-lân cận gần nhất Nhìn vào hình ta dễ dàng xác định được đối tượng x thuộc về lớp “-”
Hình 2.5 [4] là ví dụ sử dụng giải thuật 2-lân cận gần nhất Lúc này, nhìn vào hình
ta không thể xác định được đối tượng x thuộc về lớp “-” hay lớp “+”
Hình 2.6 [4] là ví dụ sử dụng giải thuật 3-lân cận gần nhất Nhìn vào hình ta dễ dàng xác định được đối tượng x thuộc về lớp “+”
Trang 2612
Hình 2.4 Phân lớp sử dụng 1-lân cận gần nhất
Hình 2.5 Phân lớp sử dụng 2-lân cận gần nhất
Đề tài này sẽ sử dụng phương pháp phân lớp với 1-lân cận gần nhất Tuy nhiên, khi thực hiện phân lớp với 1-lân cận gần nhất, vấn đề thường xảy ra là độ phức tạp tính toán của thuật toán thường lớn Vì thế, đề tài sẽ áp dụng thêm một kỹ thuật nhánh-và-cận
để quá trình tính toán lân cận gần nhất được thực hiện nhanh hơn Ngoài ra, đề tài còn xem xét áp dụng hai độ đo khoảng cách mới là độ đo khoảng cách bất biến độ phức tạp
(CID), độ đo khoảng cách tỉ lệ nén (CRD) để cải tiến độ chính xác cho bài toán phân lớp
Trang 27Việc này có thể thực hiện bằng phương pháp liệt kê tuần tự và tìm kiếm quay lui (Back
Tracking Search)
Mô hình của thuật toán quay lui là tìm kiếm trên một cây không gian trạng thái (State Space Tree) hay cây tìm kiếm (Search Tree) Các nút ở mức đầu trong cây diễn tả
những lựa chọn được làm ứng với thành phần đầu tiên của lời giải và tương tự cho các
mức kế tiếp Giả sử mỗi nút trên cây không gian trạng thái có trung bình a nút con và chiều dài của lối đi lời giải là N thì số nút trên cây sẽ tỉ lệ với a N Khi đó việc duyệt hết tất
cả số nút để tìm kiếm kết quả tối ưu sẽ là một quá trình tốn rất nhiều thời gian Vì vậy, nếu như trong quá trình tìm lời giải phát hiện ra hướng đi hiện tại không phải là hướng đi
Trang 28- Nếu tại bước này, việc kiểm tra cho thấy phương án hiện tại đã cho ra kết quả kém hơn phương án tối ưu hiện có thì bỏ qua hướng đang xét này, quay trở lại bước liền trước để xét nhánh tiếp theo
Để có thể áp du ̣ng được kỹ thuật nhánh-và-cận cho tập dữ liê ̣u huấn luyê ̣n
(Training set), ta cần phải tiến hành phân rã tâ ̣p dữ liê ̣u theo cấu trúc cây như đã trình bày
ở trên Để thực hiê ̣n viê ̣c này, đề tài sẽ áp du ̣ng mô ̣t kỹ thuâ ̣t phân cu ̣m cho tâ ̣p dữ liê ̣u, cu ̣ thể là sẽ áp du ̣ng phương pháp gom cu ̣m được sử du ̣ng phổ biến hiê ̣n nay là giải k-means vì viê ̣c gom cu ̣m bằng phương pháp này tốn chi phí khá tốt là O(nkt), với n là số đối tượng, k là số cụm, t là số lần lặp
2.5 Gia ̉ i thuâ ̣t k-means
2.5.1 Giơ ́ i thiê ̣u về kỹ thuâ ̣t gom cu ̣m
Gom cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp các phương pháp học không giám sát (Unsupervised Learning) Về bản chất, gom cụm là các
qui trình tìm cách nhóm các đối tượng đã cho vào các cu ̣m, sao cho các đối tượng trong cùng mô ̣t cụm tương tự nhau hơn so với các đối tượng ở cụm khác
Kỹ thuật gom cụm có thể áp dụng trong rất nhiều lĩnh vực như
Trang 2915
- Marketing: Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn
- Thư viện: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…
- Bảo hiểm, tài chính: phân nhóm các đối tượng sử dụng bảo hiểm và các dịch
vụ tài chính, dự đoán xu hướng của khách hàng…
- Một ứng du ̣ng khác chính là áp du ̣ng vào giai đoa ̣n tiền xử lý cho các bài toán phân lớp Cu ̣ thể, trong luâ ̣n văn này là áp du ̣ng để phân rã các nhóm dữ liê ̣u
trước khi thực hiê ̣n phân lớp bằng phương pháp k-lân câ ̣n gần nhất áp du ̣ng kỹ thuật nhánh-và-cận
2.5.2 Gia ̉ i thuâ ̣t k-means
k-means là gia ̉i thuâ ̣t rất quan trọng và được sử dụng phổ biến trong kỹ thuật gom cụm Tư tưởng chính của thuật toán k-means là tìm cách phân nhóm các đối tượng đã cho vào k cụm (k là số các cụm được xác đinh trước, 0 < k ≤ N, N: số lượng đối tượng trong
tâ ̣p dữ liê ̣u mẫu) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm cu ̣m
là nhỏ nhất
Giải thuâ ̣t k-means thực hiện qua các bước chính sau:
- Bướ c 1: Chọn ngẫu nhiên k tâm cho k cụm Mỗi cụm được đại diện bằng các
tâm của cụm
- Bướ c 2: Tính khoảng cách giữa các đối tượng trong tâ ̣p dữ liê ̣u mẫu đến k tâm
- Bướ c 3: Nhóm các đối tượng vào cu ̣m gần nhất theo kết quả tính khoảng cách trên
- Bướ c 4: Xác định lại tâm mới cho các cu ̣m, tâm mới này là điểm trung bình của các đối tượng vừa được thêm vào ở Bước 3
Trang 30đo xoắn thời gian động (Dynamic Time Warping)
2.6.1 Độ đo khoảng cách Euclid
Phương pháp này tính toán trực tiếp trên hai chuỗi thời gian có đô ̣ dài bằng nhau Giả sử ta có hai chuỗi thơ ̀ i gian X = {x 1, x 2, x 3, …, x n } và Y = {y 1, y 2, y 3 …, y n} là hai
điểm trong không gian Euclid n chiều
Đô ̣ đo tương tự giữa hai chuỗi thời gian X và Y được đi ̣nh nghĩa như là khoảng cách Euclid giữa hai điểm trong không gian R n cho bởi công thức
X D
1
2)(
),(
Hình 2.7 cho ta một ví dụ về biên độ của hai chuỗi thời gian áp dụng độ đo khoảng
cách Euclid
Trang 3117
Hình 2.7 Biên độ hai chuỗi thời gian áp dụng độ đo Euclid
Ưu điểm của độ đo khoảng cách Euclid là dễ hiểu, dễ tính toán, dễ cài đặt, và dễ
mở rộng cho nhiều bài toán khai phá dữ liệu chuỗi thời gian nói chung, cũng như cho bài toán phân lớp dữ liệu chuỗi thời gian nói riêng Tuy nhiên, độ đo này có nhược điểm là
nhạy cảm với nhiễu, và khá cứng nhắc, nó không thích hợp với dữ liệu có biên độ dao động khác nhau
2.6.2 Độ đo xoắn thời gian động
Độ đo xoắn thời gian động (Dynamic Time Warping - DTW) [3] cũng tương tự như độ đo khoảng cách Euclid, là một độ đo khoảng cách được sử dụng phổ biến trong các bài toán phân lớp và gom cụm chuỗi thời gian Để độ đo khoảng cách được chính xác hơn, một vài ràng buộc tổng quát được đề nghị cho độ đo DTW ví dụ như ràng buộc là
Sakoe-Chiba band[11], F Itakura[7]
Điểm khác biệt giữa độ đo khoảng cách Euclid và độ đo xoắn thời gian động là nếu như độ đo khoảng cách Euclid chỉ có thể tính khoảng cách giữa hai chuỗi thời gian
có độ dài bằng nhau bằng cách tính khoảng cách từng cặp điểm với nhau (điểm i của chuỗi thứ nhất so với điểm i của chuỗi thứ hai) thì độ đo xoắn thời gian động có thể đo được khoảng cách giữa hai chuỗi thời gian có độ dài khác nhau hay có biên độ dao động
[8] khác nhau, nghĩa là một điểm của chuỗi này có thể ánh xạ với nhiều điểm của chuỗi kia nên có thể áp dụng tính khoảng cách cho các chuỗi có độ dài hoặc biên độ dao động
Trang 3218
khác nhau Hình 2.8 cho ta một ví dụ về biên độ của hai chuỗi thời gian áp dụng độ đo xoắn thời gian động
Hình 2.8 Biên độ hai chuỗi thời gian áp dụng độ đo xoắn thời gian động
Ưu điểm của phương pháp này là cho kết quả chính xác hơn so với độ đo khoảng cách Euclid và cho phép nhận dạng các mẫu có hình dạng giống nhau nhưng chiều dài
hình dạng về mặt thời gian khác nhau Tuy nhiên, phương pháp này cũng có nhược điểm
là thời gian chạy rất lâu, độ phức tạp (O(m*n)) cao hơn độ phức tạp khi đo bằng khoảng cách Euclid (O(n)) với n là chiều dài chuỗi thời gian, m là chiều dài cửa sổ xoắn Vì thế
nó khó có thể áp dụng cho các bài toán với chuỗi thời gian có kích thước lớn và các bài toán cần cải tiến tốc độ tính toán
Việc xác định khoảng cách giữa đối tượng chuỗi thời gian cần gán nhãn lớp và các đối tượng chuỗi thời gian trong tập huấn luyện được xác định bằng các độ đo tương tự như độ đo Euclid, độ đo xoắn thời gian động (Dynamic Time Warping)… Thông thường
độ đo xoắn thời gian động được sử dụng để tính khoảng cách giữa các đối tượng chuỗi thời gian khi thực hiện phân lớp bằng giải thuật k-lân cận gần nhất
Tuy nhiên, độ đo xoắn thời gian động gây ra độ phức tạp tính toán cao và không phù hợp trong bài toán cải tiến giải thuật phân lớp với k-lân cận gần nhất Vì thế, trong đề
tài này chúng ta cần tìm hiểu các độ đo khác có độ chính xác cao hơn và thời gian thực
Trang 3319
hiê ̣n nhanh hơn để đưa ra lựa chọn phù hợp Cu ̣ thể, ngoài độ đo Euclid, ta sẽ áp du ̣ng thêm hai đô ̣ đo khác là đô ̣ đo CID (Complexity-Invariant Distance) và đô ̣ đo CRD (Compression Rate Distance) vi ̀ cả hai đô ̣ đo này đều cải tiến từ đô ̣ đo Euclid và có đô ̣ phức ta ̣p tuyến tính O(n), và tất nhiên vì dựa trên đô ̣ đo Euclid nên cả hai đô ̣ đo chỉ có thể áp du ̣ng cho dữ liê ̣u chuỗi thời gian có chiều dài n bằng nhau
Trang 3420
CHƯƠNG 3: CÁC CÔNG TRÌNH LIÊN QUAN
Chương này sẽ trình bày ba công trình liên quan đến đề tài Công trình đầu tiên sẽ
trình bày về việc áp dụng một kỹ thuật nhánh-và-cận áp dụng cho bài toán tính k-lân cận gần nhất Đây là hướng đi chính của đề tài Công trình thứ hai sẽ trình bày về độ đo CID (Complexity-Invariant Distance) cho chuỗi thời gian Công trình thứ ba sẽ trình bày về
độ đo CRD (Compression Rate Distance) cho chuỗi thời gian
3.1 Kỹ thuâ ̣t nhánh-và-câ ̣n để tăng tốc giải thuật k-lân cận gần nhất
Công trình này do Fukunaga và Narendrea đề xuất vào năm 1975 trong tạp chí IEEE Transactions on computers [5]
Phương pháp tiếp cận k-lân cận gần nhất được biết đến như là một kỹ thuật không tham số (Nonparametric Technique) mạnh mẽ cho bài toán ước lượng mật độ phân bố (Density Estimation) và bài toán phân lớp Tuy nhiên, việc tìm k-lân cận gần nhất của một mẫu thử (Test Sample) trong N mẫu thiết kế (Design Samples) là một quá trình tốn nhiều chi phí, đặc biệt với N càng lớn
Trong bài báo này, các tác giả đã đề xuất áp dụng một kỹ thuật nhánh-và-cận để giảm thiểu số phép tính toán khoảng cách khi tìm k-lân cận gần nhất Các kết quả thực nghiệm
của nghiên cứu này trên các bộ dữ liệu khác nhau cho thấy được sự hiệu quả của giải thuật này Thông thường, trung bình có khoảng 61 phép tính khoảng cách được thực hiện
khi tìm lân cận gần nhất của một mẫu thử trong 1000 mẫu thiết kế
Giả sử, ta có một tập các mẫu thiết kế n chiều (n-dimensional) gồm N mẫu {X 1 ,….,X N } Việc tính toán k-lân cận gần nhất cho một mẫu thử X trong các mẫu {X 1 ,….,X N} được đo bằng một hàm khoảng cách xấp xỉ Để đơn giản hơn, Fukunaga và
Narendrea đã chọn k = 1 (1-lân cận gần nhất) để phân tích giải thuật tìm kiếm này
Phương pháp được đề xuất gồm có hai giai đoạn chính
Trang 3521
- Ở giai đoạn đầu tiên sẽ tiến hành xây dựng một cấu trúc cây bằng cách: phân rã
mẫu thiết kế thành các tập con rời rạc một cách phân cấp
- Ở giai đoạn hai, cấu trúc cây được phân rã phía trên sẽ được tìm kiếm bằng
giải thuật nhánh-và-cận
3.1.1 Phân rã tập thiết kế
Tiến hành chia tập mẫu thiết kế thành l tập con, mỗi tập con lại tiếp tục được chia thành l tập con khác và tiếp tục chia giống vậy cho đến hết tập mẫu hoặc thỏa mãn mô ̣t yêu cầu nào đó của người dùng
Hình 3.1 Kết quả phân rã tập mẫu với l = 3
Trang 3622
Hình 3.1 cho ta một cấu trúc cây sau khi tiến hành phân rã với l = 3 Mỗi nút p đại
diện cho một nhóm các mẫu Trong đó
- S p : tập các mẫu tại nút p
- N p : số lượng các mẫu tại nút p
- M p : trung bình (mean) mẫu của S p
- r p = max d(X i , M p ) là khoảng cách xa nhất từ M p đến một mẫu X i thuộc tập S p
Ta có thể phân rã các tập mẫu bằng bất kỳ công nghệ gom cụm (Clustering), ví dụ như giải thuật k-means, BIRCH, cây chỉ mục… Kết quả phân rã không cần quan tâm các
cụm có ý nghĩa hay không Chi phí tính toán mới là tiêu chí chính trong việc xem xét hiệu quả của việc chọn phương pháp gom cụm Trong phạm vi luận văn này sẽ tiến hành
thực nghiê ̣m bằng giải thuâ ̣t k-means, vì luận văn muốn bám sát đề xuất của các tác giả
và giải thuâ ̣t này chỉ tốn chi phí O(nkt) (với n là số đối tượng, k là số cụm, t là số lần lặp)
Hướng phát triển trong tương lai của luận văn là sẽ thực nghiệm việc phân rã các tập mẫu
bằng các giải thuật khác như BIRCH, cây chỉ mục…
3.1.2 Tìm kiếm cây bằng kỹ thuật nhánh-và-cận
Sau khi thực hiện xong việc phân rã ở giai đoạn một, và các thông số M p , r p , N p và
S p đã được đánh giá Tại mỗi nút p, có thể được kiểm tra xem X có thể có lân cận gần nhất trong tập S p hay không bằng hai luật dưới đây
Luật 1: Sẽ không có X iꜪ S p có thể là lân cận gần nhất với X, nếu
Trang 3723
Khi d(X, M p ) được tính thì nó sẽ tối thiểu hóa B trong giai đoạn khởi tạo của giải
thuật
Hình 3.2 cho ta thấy được trường hợp minh ho ̣a cho Luâ ̣t 1
Hình 3.2 Minh họa cho Luật 1
Luật 2: X i không thể là lân cận gần nhất với X, nếu
B + d(X i , M p ) < d(X, M p ) với X i∈ S p
Trong đó, d(X i , M p ) đã có từ việc tính toán r p trong quá trình phân rã ở bước trên Các giá trị khoảng cách này được lưu trữ chỉ cho các nút tại mức thấp nhất (nú t lá) của
cây với chỉ những giá trị số thực N
Hình 3.3 cho ta thấy được trường hợp minh ho ̣a cho Luâ ̣t 2
Hình 3.3 Minh họa cho Luật 2
Bây giờ, chúng ta có thể áp dụng phương pháp nhánh-và-cận như là một giải thuật
tìm kiếm cây hiệu quả để thực hiện tìm kiếm cây ở Hình 3.1, thực hiện kiểm tra các nút trên cây bằng hai luật trên Giải thuật gồm sáu bước chính dưới đây
Trang 3824
- Bước 0: Khởi tạo B = ∞ (co ́ thể cải tiến bằng B = min [B, d(X, M p ) + r p]),
CURRENT LEVEL L = 1, CURRENT NODE = 0
- Bước 1: Phân rã nút hiện tại (CURRENT NODE) Đặt tất cả các nút kế cận
trực tiếp của CURRENT NODE vào ACTIVE LIST tại CURRENT LEVEL
Tính và lưu các giá trị khoảng cách d(X, M p) cho các nút này
- Bước 2: Áp dụng Luật 1 Duyệt các nút p trong ACTIVE LIST tại CURRENT LEVEL, kiểm tra nếu thỏa Luật 1 thì tiến hành xóa p ra khỏi ACTIVE LIST tại
CURRENT LEVEL
- Bước 3: Quay lui (Back Tracking)
o Nếu không còn nút nào trong ACTIVE LIST tại CURRENT LEVEL,
tiến hành quay lui về mức trước đó (Previous Level) (gán L = L – 1) Nếu L = 0 thì dừng giải thuật Ngược lại, quay lại thực hiện Bước 2
o Nếu còn tồn tại nút trong ACTIVE LIST tại CURRENT LEVEL, thực hiện tiếp Bước 4
- Bước 4: Chọn nút p gần nhất bằng cách chọn nút có giá trị d(X, M p) nhỏ nhất trong tất cả các nút có trong ACTIVE LIST tại CURRENT LEVEL, và gọi nó
là CURRENT NODE Xóa p ra khỏi ACTIVE LIST tại CURRENT LEVEL
Nếu CURRENT LEVEL là nú t ở mức cuối cùng, thực hiện Bước 5 Ngược lại,
gán L = L + 1 và thực hiện tiếp Bước 1
- Bước 5: Áp dụng Luật 2 Duyệt các nút X i trong CURRENT NODE p Nếu thỏa Luật 2 (nghĩa là không có lân cận gần nhất với X) thì không cần tính khoảng cách d(X, X i ) Ngược lại, thì tính d(X, X i), sau đó kiểm tra tiếp Nếu
d(X, X i ) < B, gán lân cận gần nhất hiện tại là i (CURRENT NN = i) và gán B = d(X, X i ) Sau khi duyệt và kiểm tra hết tất cả các nút X i thì quay lại thực hiện Bước 2
Trang 3925
Sau khi giải thuật thực hiện đến điều kiện dừng thì lân cận gần nhất chính là
CURRENT NN và khoảng cách của nó với đến X là B Hình 3.4 cho ta thấy được mô
hình của giải thuật tìm kiếm này
Hình 3.4 Mô hình giải thuật tìm kiếm áp dụng phương pháp nhánh-và-cận
Ghi nhâ ̣n chung: đô ̣ nha ̣y của giải thuâ ̣t đối với số mức (levels) và số nhánh ta ̣i mỗi nút đã được điều tra ở thực nghiê ̣m phân phối Gauss (Gaussian Distribution) Kết quả cho thấy rằng các yếu tố chi phối ảnh hưởng đến sự hiê ̣u
Trang 4026
quả của giải thuâ ̣t là số lượng phần tử trung bình trong các cu ̣m ở mức cuối (nú t lá) và tổng số nút trên cây Nếu có càng nhiều mẫu (samples) (hơn 60) trong mỗi cu ̣m ở mức cuối thì sẽ có ít nút hơn nhưng đòi hỏi chi phí tính toán cao hơn Và ngược la ̣i nếu có càng ít mẫu (samples) trong các nút lá thì sẽ có nhiều nút hơn nhưng sẽ đòi hỏi chi phí tính toán thấp hơn
3.2 Đô ̣ đo CID cho dữ liệu chuỗi thời gian
Công trình này do Batista và các cộng sự đề xuất vào năm 2014 trong tạp chí Data Mining and Knowledge Discovery [2]
Trong công trình này, các tác giả đã giới thiệu độ đo khoảng cách bất biến độ phức tạp (Complexity-Invariant Distance - CID) cho chuỗi thời gian, và cho thấy rằng nó thường cho ra các cải thiện đáng kể độ chính xác trong bài toán phân lớp Độ đo CID là
độ đo khoảng cách đơn giản, không có tham số (parameter-free) và hầu như không làm tăng đáng kể độ phức tạp thời gian
Độ đo khoảng cách Euclid là một độ đo đơn giản Tuy nhiên, có nhiều miền dữ liệu bị
biến dạng vì một lý do nào đó Điều này phải được loại bỏ trước khi áp dụng độ đo
khoảng cách Euclid hoặc phải dùng độ đo khác mạnh mẽ hơn
3.2.1 Một vài bất biến
Bất biến biên độ (Amplitude Invariance): nếu chúng ta thử so sánh hai chuỗi
thời gian được đo trên hai phạm vi khác nhau ví dụ đo nhiệt độ bằng độ Celcius và độ Fahrenheit, hai chuỗi thời gian này sẽ không thể khớp với nhau được ngay cả khi chúng
có hình dạng tương tự nhau Vì thế, để đo độ tương tự cơ bản thật sự của chúng thì đầu tiên chúng ta phải làm cho chúng có biên độ giống nhau Hình 3.5 cho ta thấy ví dụ độ đo khoảng cách Euclid đã được chuẩn hóa