4.1.1. Đặt vấn đề
Hệ thống phân lớp dữ liệu chuỗi thời gian được xây dựng nhằm mục đích: “Dựa trên một tập huấn luyện, dự đoán lớp cho mẫu mục tiêu O”.
4.1.2. Hướng giải quyết vấn đề
Các nghiên cứu trước đây đã đề xuất nhiều giải thuật phân lớp cho dữ liệu chuỗi thời gian. Nhưng nhiều công trình đã chứng tỏ rằng giải thuật phân lớp k-Nearest- Neighbor cho kết quả chính xác hơn các giải thuật học “chăm chỉ” khác như giải thuật học Bayes hay cây quyết định. Kỹ thuật phân lớp dựa trên cây chỉ mục thì có hạn chế là phải tốn thời gian ít nhất là O(log2m) để tìm được mẫu láng giềng gần nhất của O, tuy nhiên độ phức tạp O(log2m) này thường đi kèm với một hệ số rất lớn (phụ thuộc vào số chiều của dữ liệu).
Vì vậy, đề tài này sẽ sử dụng giải thuật phân lớp láng giềng gần nhất với thời gian thực thi tùy chọn sử dụng thông tin motif. Hệ thống phải trải qua hai giai đoạn: giai đoạn huấn luyện và giai đoạn phân lớp.
Giai đoạn huấn luyện sẽ thực hiện việc sắp xếp tập huấn luyện này bằng chiến lược Simple Rank dựa trên motif của các thể hiện trong tập huấn luyện.
Tiêu chí sắp xếp cũng dựa trên công thức rank và priority được đề xuất bởi Ueno và các cộng sự [7].
( ) = ( ) =
− (4. 1)
Trong đó xj là mẫu nhận x là mẫu láng giềng gần nhất. Nếu có nhiều mẫu có cùng thứ hạng, thứ tự của chúng sẽ được xác định bằng độ ưu tiên với công thức:
( ) =
, (4. 2)
Trong đó xj là mẫu nhận x là láng giềng gần nhất và d(x, xj) là khoảng cách giữa x
và xj.
Rank của một chuỗi x phản ánh tính chất các chuỗi lân cận gần nhất của x thuộc cùng lớp với nó. Còn priority của một chuỗi x phản ánh mật độ xuất hiện của các chuỗi xung quanh x. Nếu các chuỗi xuất hiện càng dày đặc quanh x thì priority của x càng cao.
Ý tưởng chính của tiêu chí sắp xếp này là chuỗi nào mang nhiều đặc trưng của lớp nó thuộc sẽ được kiểm tra trước.
Ví dụ: ta có tập huấn luyện với 3 lớp. Tập huấn luyện được sắp xếp bằng
SimpleRank có thứ tự như trong Hình 4-1
Object A1 B1 C1 A2 A3 A4 C2 C3 B2 C4 B3
Rank 10 5 7 9 8 7 6 5 4 3 2
Vì độ đo khoảng cách Euclid không tốt trong trường hợp hai mẫu có hình dạng giống nhau nhưng lệch nhau về mặt thời gian, nên đề tài này sẽ sử dụng độ đo khoảng cách xoắn thời gian động.
Bước sắp xếp cần phải tìm được mẫu láng giềng gần nhất của mỗi mẫu (leaving- one-out 1-Nearest-Neighbor). Để cải thiện thời gian thực thi cho bước này, đề tài sử dụng kỹ thuật tính chặn dưới LB_Keogh trong việc tính khoảng cách.
Trong bước phân lớp, để tính khoảng các DTW giữa mẫu cần phân lớp O với các
mẫu trong tập huấn luyện, đề tài cũng sẽ sử dụng kỹ thuật tính chặn dưới nói trên.
4.1.3. Giai đoạn huấn luyện
Việc phân lớp được thực hiện dựa trên một tập huấn luyện mà người dùng cung cấp cho hệ thống. Giai đoạn huấn luyện sẽ thực hiện việc sắp xếp tập huấn luyện này bằng chiến lược Simple Rank sử dụng thông tin motif.
Gọi tập huấn luyện là TrainingSet gồm m mẫu dữ liệu. Tập huấn luyện này gồm K
lớp dữ liệu. Hệ thống trước tiên cần tìm motif đại diện của mỗi mẫu huấn luyện bằng cách sử dụng giải thuât tìm kiếm motif dựa vào điểm cực trị quan trọng, sau đó hệ thống thực hiện sắp xếp các mẫu dữ liệu dựa vào các motif đại diện thay vì dựa trên các mẫu dữ liệu gốc.
Để thực hiện được việc sắp xếp này, hệ thống phải tìm được mẫu láng giềng gần nhất của mỗi mẫu (Leave-one-out 1-Nearest-Neighbor). Đề tài áp dụng kỹ thuật tính chặn dưới LB_Keogh, vì vậy cần có giải thuật tìm mẫu láng giềng gần nhất của mỗi mẫu kỹ thuật tính chặn dưới.
4.1.3.1. Giải thuật NN_LBKeogh
Giải thuật tìm mẫu láng giềng gần nhất ứng với kỹ thuật tính chặn dưới
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