Giải thuật NN_LBKeogh hoạt động như sau:
- Trong vòng lặp for từ dòng 1 đến dòng 9, với mỗi chuỗi dữ liệu, giải thuật
tìm chuỗi có chặn dưới LB_Keogh đến nó nhỏ nhất.
- Vòng lặp for thứ 2 từ dòng 10 đến dòng 12 tính DTW thực của mỗi chuỗi
đến chuỗi có LB_Keogh nhỏ nhất.
- Vòng lặp for thứ 3 từ dòng 13 đến dòng 22 cập nhật lại khoảng cách DTW
nhỏ nhất và chuỗi có DTW nhỏ nhất, nhưng chỉ tính DTW với những cặp có
LB_Keogh nhỏ hơn MinDis tương ứng.
4.1.3.2. Giải thuật huấn luyện
Sau khi tìm được mẫu gần nhất của mỗi mẫu, hệ thống sẽ sắp xếp tập huấn luyện
TrainingSet bằng rank và priority. Nếu tập huấn luyện có K lớp dữ liệu thì tập huấn luyện này được sắp xếp sao cho trong K chuỗi đầu tiên không có cặp chuỗi nào cùng lớp với nhau. K chuỗi này là K chuỗi có thứ hạng cao nhất của mỗi lớp. Từ chuỗi thứ
K+1 trở đi, các chuỗi được sắp xếp theo thứ tự giảm dần của rank. Các chuỗi có rank
bằng nhau sẽ được sắp xếp theo thứ tự giảm dần của priority.
Giải thuật sắp xếp tập huấn luyện dựa trên kết quả các cặp chuỗi gần nhất được trình bày trong Hình 4-3.
Giải thuật này hoạt động như sau:
- Đầu tiên, giải thuật cần tìm các cặp chuỗi láng giềng gần nhất và khoảng
cách giữa chúng. Việc này được thực hiện bằng giải thuật láng giềng gần
nhất NN_LBKeogh. Mảng NN[i] lưu chuỗi gần nhất của mẫu i.
MinDis[i] lưu khoảng cách từ chuỗi thứ i đến chuỗi gần nhất của nó. - Với mỗi chuỗi i, nếu nhãn lớp của i và NN[i] giống nhau, tăng giá trị
- Sắp xếp tập huấn luyện bằng giá trị rank tương ứng sử dụng giải thuật
Simple_Rank. Với những chuỗi có rank bằng nhau thì sắp xếp bằng giá trị priority.
Thứ tự được lưu vào mảng index[], trong đó index[p]là chuỗi thứ p.
Hình 4-3 Giải thuật huấn luyện
4.1.4. Giai đoạn phân lớp
Giai đoạn phân lớp được thực hiện sau khi giai đoạn huấn luyện đã hoàn thành.
thống sẽ cho biết kết quả dự đoán lớp của O dựa trên tập huấn luyện TrainingSet đã được sắp xếp ở giai đoạn huấn luyện.
Giải thuật phân lớp
- Dữ liệu nhập:
o Tập huấn luyện TrainingSet.
o Thứ tự của tập huấn luyện Index.
o Chuỗi mục tiêu O.
o Thời điểm dừng
- Dữ liệu xuất:
o Nhãn lớp cho mẫu O.
1. Algorythm AnytimeClassification(TrainingSet[], Index[],Object O) 2. best_distance = inf; 3. best_match_class = undefined; 4. for p=1 to number_of_class do 5. D = LowerBound(TrainingSet[Index[p]], O); 6. if D < best_distance then 7. D = DTW (TrainingSet[Index[p]], O); 8. if D < best_distance then a. best_distance = D; b. best_match_class = TrainingSet[Index[p]].class_label; 9. end if 10.end if 11.end for 12. p = number_of_class + 1;
13.while (user_has_not_interrupted AND p < index.count) 14. D = LowerBound(TrainingSet[Index[p]], O); 15.if D < best_distance then 16. D = DTW (TrainingSet[Index[p]], O); 17.if D < best_distance then a. best_distance = D; b. best_match_class = TrainingSet[Index[p]].class_label; 18.end if 19.end if 20. p++;
Giai đoạn này được thực hiện bằng giải thuật phân lớp trình bày trong Hình 4-4. Giải thuật này nhận ba thông số đầu vào: Tập huấn luyện TrainingSet, mảng có thứ tự
Index của tập huấn luyện (thứ tự được sắp xếp trong giai đoạn huấn luyện) và chuỗi mục tiêu O. Giải thuật này hoạt động như sau:
- Vòng lặp for đầu tiên, giải thuật thực hiện việc tìm khoảng cách giữa chuỗi
mục tiêu O với chuỗi có thứ hạng cao nhất của mỗi lớp. Lấy nhãn lớp của
chuỗi có khoảng cách đến chuỗi mục tiêu O nhỏ nhất gán cho kết quả phân
lớp và gán khoảng cách đó cho khoảng cách tốt nhất. Trong giai đoạn này giải thuật không được dừng.
- Sau khi kiểm tra hết một chuỗi của mỗi lớp, giải thuật có thể được dừng bất
kỳ lúc nào.
- Với mỗi chuỗi tiếp theo của tập huấn luyện, giải thuật tìm khoảng cách DTW giữa nó với chuỗi mục tiêu. Nếu khoảng cách DTW là nhỏ hơn khoảng cách tốt nhất thì cập nhật lại khoảng cách tốt nhất và kết quả phân lớp.
- Trước khi tìm khoảng cách DTW, giải thuật tính giá trị chặn dưới. Nếu giá
trị chặn dưới nhỏ hơn khoảng cách tốt nhất hiện tại thì mới tính khoảng cách DTW.
4.2. Thực nghiệm
4.2.1. Hệ thống phân lớp dữ liệu chuỗi thời gian
Phần này đưa ra kiến trúc mô hình thực nghiệm của hệ thông phân lớp dữ liệu.
Theo Hình 4-5 với tập dữ liệu chuỗi thời gian ban đầu ta thực hiện huấn luyện
trên tập dữ liệu gốc, dùng chiến lược Simple Rank để sắp thứ tự tập huấn luyện, sau đó phân lớp dữ liệu chuỗi thời gian đầu vào dựa vào tập huấn luyện đã được sắp xếp.
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
Theo Hình 4-6 với tập dữ liệu chuỗi thời gian ban đầu ta, trước tiên ta thực hiện tìm kiếm motif đại diện cho các chuỗi thời gian trong tập huấn luyện , sau đó thực hiện huấn luyện trên tập các motif đại diện, dùng chiến lược Simple Rank để sắp thứ tự tập các motif đại diện, sau đó phân lớp dữ liệu chuỗi thời gian đầu vào dựa vào tập huấn luyện đã được sắp xếp.
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
4.2.2. Cấu hình
Trong luận văn này chúng tôi hiện thực bằng ngôn ngữ C# và chạy trên máy PC Intel® Core™2 Duo Processor T8100 (2.10GHz), 2GB RAM, Window 7.
4.2.3. Tập dữ liệu
Đề tài thực nghiệm trên hai tập dữ liệu sau:
- Tập dữ liệu TwoPat: Tập dữ liệu TwoPat (two patterns) được thiết kế bởi
Guerts (2002) [9] để phục vụ cho mục đích thử nghiêm công trình của tác giả. Tập dữ liệu này cũng đã được một số nhà nghiên cứu sử dụng để đo kết quả. Tập dữ liệu này được định nghĩa bằng hàm toán học cộng thêm một số nhiễu. Tập dữ liệu này gồm bốn lớp: up-up, up-down, down-up và down- down. Tập dữ liệu này gồm 5000 chuỗi, mỗi chuỗi được gán nhãn lớp tương ứng.
- Tập dữ liệu Clustered: Tập dữ liệu này gồm 1000 chuỗi, mỗi chuỗi có chiều
dài 256 giá trị. Dữ liệu trong tập dữ liệu này chưa có nhãn lớp. Đề tài sử dụng phần mềm Cluster của tác giả Võ Lê Quy Nhơn [13] để gom tập dữ liệu này thành 4 nhóm. Phần mềm Cluster này sử dụng khoảng cách Euclid để làm độ đo tương tự giữa các chuỗi.
4.2.4. Thực nghiệm giai đoạn huấn luyện
Tiêu chí để đánh giá giai đoạn huấn luyện là thời gian thực thi của giải thuật có sử dụng thông tin motif với thời gian thực thi của giải thuật không sử dụng thông tin motif. Đề tài đã tiến hành thực nghiệm trên hai tập dữ liệu mẫu và thu được kết quả như sau:
4.2.4.1. Tập dữ liệu TwoPat
Với tập dữ liệu TwoPat, tập huấn luyện bao gồm 1000 mẫu. Ta tiến hành thực nghiệm so sánh thời gian thực thi của giải thuật có sử dụng thông tin motif với thời gian thực thi của giải thuật không sử dụng thông tin motif. Đề tài thực nghiệm mỗi trường hợp 10 lần và lấy trung bình giá trị thời gian chạy. Sau đây là kết quả thực nghiệm thời gian chạy của tập dữ liệu này. Kết quả thời gian chạy này được tính bằng giây.
Bảng 4-1 thể hiện kết quả thực nghiệm thời gian thực thi của giải thuật có sử dụng thông tin motif với thời gian thực thi của giải thuật không sử dụng thông tin motif ứng với các kích thước cửa sổ xoắn R khác nhau khi không sử dụng kỹ thuật chặn dưới.
WindowSize Without Motif With Motif
0% 200.09 33.82 10% 687.81 84.18 20% 1071.71 145.7 30% 1468.00 164.9 40% 1788.22 184.06 50% 2070.79 249.34 60% 2298.72 243.86 70% 2510.68 250.5 80% 2668.15 260.46 90% 2778.43 258.9 100% 2841.3 263.7
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
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
Biểu đồ thể hiện thời gian thực thi của hai giải thuật khi huấn luyện thể hiện trong Hình 4-7. Biểu đồ này cho thấy, thời gian thực thi của giải thuật có sử dụng thông tin Motif thấp hơn so với giải thuật không sử dụng thông tin Motif, với kích thước cửa sổ xoắn càng lớn thì sự khác biệt này càng thể hiện rõ, nguyên nhân là khi sử dụng thông tin motif, giải thuật huấn luyện chỉ làm việc trên motif để tính khoảng cách giữa các thể hiện trong tập huấn luyện, mà mỗi motif thì có kích thước rất nhỏ so với chuỗi dữ liệu thời gian ban đầu, nên quá trình tính toán khoảng cách sẽ đơn giản và tốn ít thời gian hơn rất nhiều.
Bảng 4-2 thể hiện kết quả thực nghiệm thời gian thực thi của giải thuật có sử dụng thông tin motif với thời gian thực thi của giải thuật không sử dụng thông tin motif ứng với các kích thước cửa sổ xoắn R khác nhau khi sử dụng kỹ thuật chặn dưới LB_Keogh.
WindowSize Without Motif With Motif
0% 18.1 5.26 10% 84.59 19.06 20% 555.71 47.06 30% 1137.89 78.22 40% 1633.52 108.72 50% 2030.6 139.14 60% 2394.39 136.78 70% 2590.68 177.28 80% 2708.15 190.62 90% 2788.43 193.34 100% 2881.3 200.26
Bả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
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
Biểu đồ thể hiện thời gian thực thi của hai giải thuật khi huấn luyện thể hiện trong
Hình 4-8. Biểu đồ này cho thấy, thời gian thực thi của giải thuật có sử dụng thông tin Motif thấp hơn so với giải thuật không sử dụng thông tin Motif, với kích thước cửa sổ xoắn càng lớn thì sự khác biệt này càng thể hiện rõ.
4.2.4.2. Tập dữ liệu Clustered
Tập dữ liệu này gồm 1000 chuỗi. Đề tài chọn ngẫu nhiên 600 chuỗi làm tập huấn luyện và 400 chuỗi còn lại làm tập kiểm tra. Đề tài thực nghiệm mỗi trường hợp 10 lần và lấy trung bình giá trị thời gian chạy. Sau đây là kết quả thực nghiệm thời gian chạy của tập dữ liệu này. Kết quả thời gian chạy này được tính bằng giây.
Bảng 4-3 thể hiện kết quả thực nghiệm thời gian thực thi của giải thuật có sử dụng thông tin motif với thời gian thực thi của giải thuật không sử dụng thông tin motif ứng với các kích thước cửa sổ xoắn R khác nhau trên tập dữ liệu Clustered.
WindowSize Without Motif With Motif
0% 10.87 2.58 10% 22.86 3.72 20% 104.85 5.34 30% 156.13 6.57 40% 207.23 7.97 50% 207.23 8.82 60% 255.65 9.95 70% 296.80 11.07 80% 339.45 12.00 90% 374.61 12.61 100% 390.60 13.48
Bả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
Biểu đồ thể hiện thời gian thực thi của hai giải thuật khi huấn luyện thể hiện trong
Hình 4-9. Biểu đồ này cho thấy, với kích thước cửa sổ xoắn càng lớn thì sự khác biệt càng thể hiện rõ, thời gian thực thi của giải thuật có sử dụng thông tin motif thấp hơn so với giải thuật không sử dụng thông tin motif.
4.2.5. Thực nghiệm giai đoạn phân lớp
Để đánh giá độ chính xác phân lớp của giải thuật, chúng ta có một số phương pháp thông dụng dựa trên sự phân vùng ngẫu nhiên trên tập dữ liệu mẫu như: tập ngẫu nhiên (random subsampling), kiểm tra chéo (cross-validation), bẫy dữ liệu
(bootstrap), … Trong luận văn này chúng tôi dùng phương pháp kiểm tra chéo.
Trong phương pháp kiểm tra chéo, tập dữ liệu mẫu ban đầu được chia ra làm k tập
con D1, D2,…, Dk có kích thước bằng nhau, quá trình huấn luyện và kiểm tra được thực
hiện trong k lần, tại lần lặp thứ i, tập con Di sẽ được dùng làm tập kiểm tra, các tập con còn lại sẽ được dùng làm tập huấn luyện. Như vậy, mỗi mẫu trong tập dữ liệu sẽ được dùng để huấn luyện cùng một số lần như nhau và được dùng một lần để kiểm tra. Độ chính xác phân lớp được tính bằng tổng số mẫu được phân lớp chính xác trong
k lần lặp chia cho tổng số mẫu trong tập dữ liệu ban đầu.
4.2.5.1. Tập dữ liệu TwoPat
Dựa vào phương pháp kiểm tra chéo, chúng ta thực hiện đánh giá phương pháp phân lớp chuỗi dữ liệu thời gian có sử dụng thông tin motif trên tập dữ liệu TwoPat. Tập dữ liệu có 5000 mẫu đã được phân lớp sẵn, chúng tôi chia làm 5 tập con riêng biệt: mỗi tập gồm 1000 mẫu, được đặt tên theo thứ tự D1, D2,…, D5. Kết quả số mẫu phân lớp chính xác sau khi thực hiện 5 lần, mỗi lần dùng một tập con để kiểm tra được thể hiện trong Bảng 4-4.
Subset Without Motif With Motif D1 987 974 D2 991 950 D3 972 972 D4 989 961 D5 976 948
Bảng 4-4 Số lượng mẫu phân lớp chính xác trên tập dữ liệu TwoPat
Bảng 4-5 thể hiện chất lượng phân lớp giữa hai 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
Without Motif With Motif
98,30 % 96,10 %
Bả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
Hình 4-10 thể hiện kết quả số mẫu phân lớp của hai giải thuật có sử dụng thông tin motif so với giải thuật không sử dụng thông tin motif.
Dựa vào kết quả Bảng 4-4 và Hình 4-10 ta thấy độ chính xác phân lớp của giải thuật phân lớp có thời gian thực thi tuỳ chọn sử dụng thông tin motif có độ chính xác thấp hơn giải thuật phân lớp có thời gian thực thi tuỳ chọn không sử dụng thông tin motif, tuy nhiên sự khác biệt này không đáng kể và ta có thể xem là cả hai giải thuật có độ chính xác tương đương nhau.
Hình 4-10 kết quả số mẫu phân lớp trên tập dữ liệu TwoPat
4.2.5.2. Tập dữ liệu Clustered
Tập dữ liệu có 1000 mẫu, chúng tôi chia làm 5 tập con riêng biệt: mỗi tập gồm 200 mẫu, được đặt tên theo thứ tự D1, D2,…, D5. Kết quả số mẫu phân lớp chính xác sau khi thực hiện 5 lần, mỗi lần dùng một tập con để kiểm tra được thể hiện trong Bảng 4-6.
Subset Without Motif With Motif
D1 199 186
D2 199 196
D3 195 184
D4 191 189
D5 194 191
Bảng 4-7 thể hiện chất lượng phân lớp giữa hai 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 Clustered
Without Motif With Motif
97,80 % 94,60 %
Bả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
Hình 4-11 thể hiện kết quả số mẫu phân lớp của hai giải thuật có sử dụng thông tin motif so với giải thuật không sử dụng thông tin motif.
Dựa vào kết quả Bảng 4-6 và Hình 4-11 ta thấy độ chính xác phân lớp của giải thuật phân lớp có thời gian thực thi tuỳ chọn sử dụng thông tin motif có độ chính xác thấp hơn giải thuật phân lớp có thời gian thực thi tuỳ chọn không sử dụng thông tin motif, tuy nhiên sự khác biệt này không đáng kể và ta có thể xem là cả hai giải thuật có độ chính xác tương đương nhau.
CHƯƠNG 5: KẾT LUẬN 5.1. Tổng kết
Đề tài này đã trình bày giải thuật phân lớp có thời gian thực thi tùy chọn cho dữ liệu chuỗi thời gian. Đề tài đã giải quyết được các vấn đề cơ bản là xây dựng dựng được giải thuật phân lớp có thời gian thực thi tùy chọn, sử dụng khoảng cách DTW