Bài viết Các độ đo khoảng cách trên chuỗi dữ liệu thời gian ứng dụng trong phân tích và quản trị dữ liệu thông minh (Distance measures for Time series data in Smart Data Analytics and Management) giới thiệu một số phương pháp xác định độ đo khoảng cách thường áp dụng trong việc xác định khoảng cách khác biệt giữa các điểm dữ liệu trong chuỗi dữ liệu theo thời gian. Đây là một vấn đề quan trọng trong việc xây dựng mô hình các bài toán về quản trị dữ liệu thông minh và phân tích dữ liệu thông minh trên các chuỗi dữ liệu theo thời gian (Time Series Data). Mời các bạn cùng tham khảo!
CÁC ĐỘ ĐO KHOẢNG CÁCH TRÊN CHUỖI DỮ LIỆU THỜI GIAN ỨNG DỤNG TRONG PHÂN TÍCH VÀ QUẢN TRỊ DỰ LIỆU THÔNG MINH (Distance measures for Time series data in Smart Data Analytics and Management) VÕ XUÂN THỂ Khoa Công nghệ Thơng tin Trường Đại học Tài – Marketing Email: vxthe@ufm.edu.vn Tóm tắt: Bài viết giới thiệu số phương pháp xác định độ đo khoảng cách thường áp dụng việc xác định khoảng cách khác biệt điểm liệu chuỗi liệu theo thời gian Đây vần đề quan trọng việc xây dựng mơ hình tốn quản trị liệu thơng minh phân tích liệu thông minh chuỗi liệu theo thời gian (Time Series Data) Có nhiều tốn liệu thông minh chuỗi liệu thời gian áp dụng thực tiễn thuộc nhiều lĩnh vực khác nhau, như: kinh tế, xã hội, khoa học – kỹ thuật Đây tốn góp phần vào Cách mạng công nghiệp lần thứ tảng BigData Mỗi độ đo khoảng cách có tính hiệu định cho toán Data Base theo dự án (Projetc) thực tiễn, việc lựa chọn độ đo khoảng cách hợp lý cho toán cần thiết, mục tiêu giới thiệu viết Một số độ đo thông dụng thường áo dụng chuỗi liệu theo thời gian, như: độ đo Hamming, độ đo tựa (tương tự) Cosin, độ đo Minkowski , độ đo Manhattan, độ đo Euclidean độ đo Chebyshev giới thiệu viết đặc biệt độ đo Euclidean Từ khóa: Chuỗi liệu thời gian – Time series data, độ đo khoảng cách - Distance Measures, Phân tích liệu thông minh – Smart Data analytics, Quản trị liệu thông tin – Smart Data Management GIỚI THIỆU CHUNG Cuộc cách mạng công nghiệp lần thứ mang lại nhiều kết thách thức lớn cho ngành khoa học máy tính nói chung lĩnh vực khai phá liệu nói riêng, đặc biệt liệu có yếu tố thời gian như: tỷ giá ngoại tệ, giá vàng, số chứng khoán, dự báo thời tiết, thiên văn học, đo mực nước, điện tâm đồ,… Hướng nghiên cứu lĩnh vực khai phá liệu học máy nhiều giới khoa học quan tâm Một khai phá liệu phổ biến khai phá liệu chuỗi thời gian thu hút quan tâm nhiều nhà nghiên cứu giới Có nhiều dạng tốn khai phá liệu chuỗi thời gian như: Gom cụm, Lập mục, Phân lớp, Phát Motif, Phát bất thường, .được áp dụng nhiều lĩnh 350 vực như: chứng khốn - tài – ngân hàng, y học, thiên văn học, địa chất, côn trùng học … Các lĩnh vực nghiên cứu y học hay tài chính, ngân hàng, … thường yêu cầu độ xác cao Việc lựa chọn độ đo khoảng cách hợp lý cho tốn nêu cần thiết, liệu chuỗi thời gian có đặc tính đặc thù riêng (tùy theo dự án: project thực hiện) nên độ đo khoảng cách thường ảnh hưởng nhiều đến kết khai phá liệu Cho nên việc xác định độ đo khoảng cách liệu chuỗi thời gian đóng vai trị quan trọng toán khai phá liệu chuỗi thời gian Bài viết nhằm giới thiệu tổng quan mang tính học thuật độ đo khoảng cách thường áp dụng chuỗi liệu thời gian các tốn phân tích quản trị liệu thông minh Đối tượng tham khảo viết gồm: giảng viên đại học, người học, nhà nghiên cứu thuộc chuyên ngành Khoa học liệu Khoa học máy tính nói chung GIỚI THIỆU VỀ CHUỖI DỮ LIỆU THỜI GIAN 2.1 Chuỗi thời gian (Time Series Data: TSD) Chuỗi thời gian T = t1, t2, … tn tập theo thứ tự biến giá trị thực có chiều dài n Ví dụ chuỗi thời gian là: lưu lượng mưa hàng năm miền nam Việt Nam, kết điện tâm đồ (như Hình 11) [19], thời tiết… Hình 11 Minh họa chuỗi liệu thời gian Điện tâm đồ ECG Có nhiều khái niệm TSD (theo nhiều góc độ khác nhau), khái niệm tổng hợp biên tập tác giải viết 351 2.2 Chuỗi Cho chuỗi Ti,m chuỗi thời gian T = (t1, t2…, tn), tập hợp liên tục giá trị T có độ dài m, vị trí i Ti,m = (ti,ti+1,…,ti+m-1) với 1≤ i ≤ n-m+1 [1] 2.3 Cửa sổ trượt (Sliding Window) Cho liệu chuỗi thời gian T có chiều dài n, để xác định chuỗi có chiều dài m, ta dùng cửa sổ trượt có kích thước m trượt qua điểm từ trái sang phải chuỗi T để xác định chuỗi Q Hình 12 Hình 12 Minh họa cửa sổ trượt chuỗi liệu thời gian 2.4 So trùng mẫu Cho số thực R (gọi phạm vi người dùng định nghĩa) liệu chuỗi thời gian T chứa chuỗi C bắt đầu vị trí p chuỗi M bắt đầu vị trí q, hàm tính khoảng cách từ C đến M ký hiệu D(C, M) ≤ R (ta dùng công thức tính khoảng cách euclid để tính tốn khoảng cách chuỗi con) [1] ta nói chuỗi M khớp với chuỗi C, Hình 13 Hình 13 Minh họa So trùng mẫu chuỗi C chuỗi M trích từ chuỗi liệu thời gian T 2.4.1 So trùng tầm thường Cho số thực dương R chuỗi thời gian T Một chuỗi Ci T bắt đầu vị trí i chuỗi Cj T bắt đầu vị trí j, DIST(Ci , Cj) ≤ R Cj gọi chuỗi tương tự Ci Các chuỗi tương tự với chuỗi Ci chuỗi bắt đầu 352 vị trí lệch hay hai điểm bên trái hay bên phải so với vị trí bắt đầu chuỗi Ci Có nghĩa chuỗi lệch khoảng so với chuỗi cũ hai chuỗi có chung đoạn giá trị Các trường hợp gọi so trùng tầm thường, Hình 14 [1] Hình 14 So trùng tầm thường chuỗi chuỗi liệu thời gian T 2.4.2 So trùng không tầm thường Cho chuỗi thời gian T có chiều dài n, chuỗi C M có chiều dài m chuỗi chuỗi thời gian T Chuỗi C bắt đầu vị trí p, chuỗi M bắt đầu vị trí q Ta nói chuỗi M chuỗi C so trùng không tầm thường |p-q| ≥ m [1] Đối với toán khoa học liệu liệu chuỗi thời gian, như: tốn tìm kiếm tương tự, gom cụm, phân loại liệu thời gian liệu chuỗi thời gian dãy số thực T=t1, t2,…tn Đối với toán đòi hỏi phải định nghĩa độ đo tương tự cặp chuỗi thời gian với Cho chuỗi thời gian Q C Ta cần tính độ đo tương tự Dist(Q, C) hai chuỗi thời gian Để tính tốn xác độ đo cần thỏa số tính chất sau: - Dist(Q,C) = Q = C - Dist(Q,C) = Dist(C,Q) - Dist(Q,C) ≥ với Q, C - Dist(Q,C) < Dist(Q, Z) + D(C, Z) Có nhiều độ đo khoảng cách khác biệt chuỗi điểm liệu thường áp dụng chuỗi liệu thời gian ban đầu giới thiệu phần 353 GIỚI THIỆU VỀ CÁC ĐỘ ĐO KHOẢNG CÁCH Sau viết giới thiệu số giá trị độ đo khoảng cách khác biệt chuỗi điểm liệu thường áp dụng chuỗi liệu thời gian tốn phân tích và quản trị liệu thông minh: + Độ đo khoảng cách khác biệt d chuỗi giữ vai trò quan trọng toán liệu + Độ đo khoảng cách d phải xác định trước qn suốt q trình tốn + Các hàm tính độ đo khoảng cách áp dụng cho tốn với thuộc tính đầu vào xi thơng thường số thực 3.1 Độ đo khoảng cách Hamming Thường áp dụng tốn có xi chuỗi liệu thời gian nhị phân 𝑛 𝐷𝑖𝑠𝑡(𝑥, 𝑧) = ∑ 𝑑𝑖𝑓𝑓𝑒𝑟𝑒𝑛𝑐𝑒(𝑥𝑖 , 𝑧𝑖 ) 𝑖=1 Trong xi zi giá trị nhi phân: difference (= 1, xi zi khác nhau; = xi zi giống nhau) 3.2 Độ đo khoảng cách tựa (tương tự) Cosin Còn gọi Cosine Similarity Distance Function [22] Thường áp dụng cho tốn có liệu chuỗi liệu thời gian dạng văn : xi trọng số TF||IDF từ khóa thứ i Term Trequency – Inverse Document Frequency ∑𝑛𝑖=1 𝑥𝑖 𝑧𝑖 𝑥 𝑧 𝐷𝑖𝑠𝑡(𝑥, 𝑧) = = ‖𝑥‖‖𝑧‖ √∑𝑛𝑖=1 𝑥𝑖 √∑𝑛𝑖=1 𝑧𝑖 3.3 Độ đo khoảng cách Minkowski Dùng gàm Minkowski (-norm) Nếu p =2 Euclidean (thường dùng) Hầu hết cơng trình nghiên cứu liệu chuỗi thời gian dựa độ đo Minkowski để tính khoảng cách (hay mức độ tương tự) hai chuỗi Cơng thức tính khoảng cách Minkowski định nghĩa sau: 𝑝 𝐷𝑖𝑠𝑡(𝑄, 𝐶) = √∑𝑛𝑖=1(𝑞𝑖 − 𝑐𝑖 )𝑝 ) 354 với qi ∈ Q, ci ∈ C, i = 1, …, n Khi p = ta có khoảng cách Manhattan Khi p = ta có khoảng cách Euclid Khi p = ∞ ta có khoảng cách Max Ở cơng thức giá trị p chọn bất kỳ, thông thường nghiên cứu chuỗi liệu thời gian thường sử dụng độ đo Euclid đơn giản, dễ thực khoảng cách hình học khơng gian đa chiều với độ xác chấp nhận Ưu điểm: + Tính toán nhanh, đơn giản + Sử dụng nhiều toán khai phá liệu chuỗi thời gian khác gom cụm, phân lớp, phát bất thường liệu chuỗi thời gian + Độ đo Minkowski thỏa mãn bất đẳng thức tam giác nên hỗ trợ việc lập mục liệu, giảm thời gian phát bất thường liệu chuỗi thời Nhược điểm: + Nhạy cảm với nhiễu + Các chuỗi thời gian có độ dài + Đối với liệu có đường khác thuật tốn chưa xử lý tốt (Hình 5) + Khơng thích hợp liệu có biên độ dao động khác (Hình 6) Hình 15 Chuỗi liệu thời gian có đường khác biệt Hình 16 Chuỗi liệu thời gian có biên độ dao động khác Để khắc phục số nhược điểm độ đo ta sử dụng phương pháp chuẩn hóa liệu (Data normalization) Hai phương pháp chuẩn hóa liệu sử dụng là: ❖ Chuẩn hóa trung bình Zero [1]: Chuỗi Q biến đổi thành chuỗi Q’ theo công thức Q’[i] = 𝑄[𝑖]− 𝑚𝑒𝑎𝑛(𝑄) 𝑣𝑎𝑟(𝑄) 355 Với mean(Q) giá trị trung bình var(Q) độ lệch chuẩn Q Trong trường hợp giá trị lớn nhỏ tập liệu hay có giá trị cá biệt phương pháp áp dụng ❖ Chuẩn hóa Min-Max [1]: Chuỗi Q biến đổi thành chuỗi Q’ theo công thức 𝑄’[𝑖] = 𝑄[𝑖]−𝑀𝑖𝑛𝑜𝑙𝑑 𝑀𝑎𝑥𝑜𝑙𝑑 −𝑀𝑖𝑛𝑜𝑙𝑑 (𝑀𝑎𝑥𝑛𝑒𝑤 − 𝑀𝑖𝑛𝑛𝑒𝑤 ) + 𝑀𝑖𝑛𝑛𝑒𝑤 Với Minold Maxold giá trị nhỏ lớn chuỗi Q ban đầu Minnew Maxnew giá trị nhỏ lớn chuỗi Q’ chuỗi sau chuẩn hóa Chuẩn hóa Min-Max đảm bảo mối quan hệ giá trị liệu ban đầu phương pháp gặp phải lỗi giới hạn giá trị ban đầu vào tương lai nằm đoạn giá trị [Min – Max] ban đầu 3.4 Độ đo khoảng cách Manhattan Dùng hàm Manhattan (=1): 𝐷𝑖𝑠𝑡 (𝑥, 𝑧) = ∑𝑛𝑖=1|𝑥𝑖 − 𝑧𝑖 | Là trường hợp biệt độ đo khoảng cách Minkowski với p =1 3.5 Độ đo khoảng cách Euclidean Dùng Hàm Euclidean (=2): 𝐷𝑖𝑠𝑡(𝑥, 𝑧) = √∑𝑛𝑖=1(𝑥𝑖 − 𝑧𝑖 )2 Cũng trường hợp biệt độ đo khoảng cách Minkowski với p =2 Đây độ đo khoảng cách phổ biết áp dụng toán khoa học liệu, đặc biệt toán chuỗi liệu thời gian 3.6 Độ đo khoảng cách Chebyshev Dùng hàm Chebyshev (=) : 𝐷𝑖𝑠𝑡 (𝑥, 𝑧) = log 𝑝→ (∑𝑛𝑖=1|𝑥𝑖 − 𝑧𝑖 |𝑝 )𝑝 = 𝑚𝑎𝑥𝑖 |𝑥𝑖 − 𝑧𝑖 | 3.7 Độ đo khoảng cách xoắn thời gian động DTW: Dynamic Time Warping Khi hai đường biểu diễn hai mẫu liệu thời gian cần so sánh khơng giống hồn tồn hình dạng biển đổi giống việc sử dụng khoảng cách so sánh cặp điểm 1-1 để tìm độ tương tự hai mẫu khơng phù hợp Theo độ đo Euclidean ta thấy điểm chuỗi chời gian ánh xạ với điểm chuỗi thời gian bên hay chuỗi cần tính khoảng cách phải có độ dài Để 356 khắc phục nhược điểm đó, điểm ánh xạ với nhiều điểm ánh xạ không thẳng hàng Phương pháp gọi xoắn thời gian động (Dynamic Time Warping – DTW) đề xuất Bernt Clifford năm 1994, Hình 17 [1] Hình 17 Hình minh họa DTW: Dynamic Time Warping: độ đo khoảng cách "xoắn thời gian động" độ đo Euclidean Cách tính: Xây dựng ma trận: Dm x n với m = |X| n= |Y| Khi đó, Dij = d(xi , yj ) Sau xây dựng ma trận D , ta tìm đường từ ô (0,0) đến ô (m,n) thỏa mãn ràng buộc sau: - Không qua trái hay xuống Đường phải liên tục Ô (i,j) thuộc đường phải thỏa |i - j| Mỗi loại có 50 bơng hoa đo với liệu thông tin: Chiều dài, chiều rộng đài hoa (sepal), Chiều dài, chiều rộng cánh hoa (petal) Tức là, “mẫu” liệu tập vector chiều 5.1.2 Cài đặt ứng dụng tính độ đo khoảng cách chuỗi liệu thời gian 5.1.2.1 Mô tả chung hệ thống + Tách Bộ liệu Iris gồm 150 “mẫu” [|D| =150] liệu ta chia thành phần: Training Set Test Set + Nhiệm vụ toán kNN: dựa vào Training Set để dự đoán “mẫu” Test Set tương ứng với loại hoa nào? + Kết dự đoán đối chiếu với loại hoa thật “mẫu” test set để đánh giá hiệu KNN 5.1.2.2 Cài đặt mã lệnh + Khai báo thư viện (Iris flower dataset có sẵn thư viện scikit-learn: http://scikitlearn.org/) # -*- coding: utf-8 -*""" Created on Mon Nov 23 03:58:20 2020 @author: VOXUAN """ 359 # NẠP CÁC TẬP THƯ VIỆN import numpy as np import matplotlib.pyplot as plt from sklearn import neighbors, datasets from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score + Nạp thị liệu mẫu # TẢI HIỂN THỊ SỐ LƯỢNG TẬP DỮ LIỆU IRIS CÓ SẴN TRONG SKLEARN iris = datasets.load_iris() iris_X = iris.data iris_y = iris.target print(u'Số lượng LỚP c phân chia = %d' %len(np.unique(iris_y))) print(u'Số lượng MẪU liệu = %d' %len(iris_y)) + Các lớp gán nhãn 0, 1, # GÁN NHÃN CHO LỚP ẢNH TRONG TẬP IRIS X0 = iris_X[iris_y == 0,:] X1 = iris_X[iris_y == 1,:] X2 = iris_X[iris_y == 2,:] print(u'\nCác MẪU thuộc LOP gồm:\n', X0[:5,:]) print(u'\nCác MẪU thuộc LOP gồm:\n', X1[:5,:]) print(u'\nCác MẪU thuộc LOP gồm:\n', X2[:5,:]) KẾT QUẢ IN RA -Number of classes: Number of data points: 150 Samples [[ 5.1 [ 4.9 [ 4.7 [ 4.6 [ from 3.5 3.2 3.1 3.6 class 0: 1.4 0.2] 1.4 0.2] 1.3 0.2] 1.5 0.2] 1.4 0.2]] Samples [[ [ 6.4 [ 6.9 [ 5.5 [ 6.5 Samples [[ 6.3 [ 5.8 [ 7.1 [ 6.3 [ 6.5 from 3.2 3.2 3.1 2.3 2.8 from 3.3 2.7 2.9 class 1: 4.7 1.4] 4.5 1.5] 4.9 1.5] 1.3] 4.6 1.5]] class 2: 2.5] 5.1 1.9] 5.9 2.1] 5.6 1.8] 5.8 2.2]] 5.1.2.3 Tách: Training Set Và Test Sets + Giả sử dùng 50 MẪU liệu Test Set, 100 MẪU lại Training Set + Scikit-learn có hàm cho phép lựa chọn ngẫu nhiên: # TÁCH TẬP TRAINING SET : 100 MẪU & TẬP TEST SET CÓ 50 MẪU X_train, X_test, y_train, y_test = train_test_split(iris_X, iris_y, test_size = 50) print(u'\nSố lượng MẪU thuộc tập Training Set: ', len(y_train)) print(u'\nSo61 lượng Mẫu thuộc tập Test Set: ', len(y_test)) 360 KẾT QUẢ Training size: 100 Test size : 50 5.1.2.4 Phân lớp theo KNN “mẫu” Test Sets + Xét trường hợp k = 1, tức với MẪU Test data, xét MẪU Training data gần lấy label MẪU để dự đốn cho MẪU test # DÙNG kNN PHÂN LỚP CHO CÁC MẪU TRONG TẬP TEST # tự định nghĩa trọng số def myweight(distance): sigma2 = 0.5 return np.exp(-distance**2/sigma2) cf = neighbors.KNeighborsClassifier(n_neighbors=10, p=2, weights=myweight) # Euclide #cf = neighbors.KNeighborsClassifier(n_neighbors=10, p=2, weights='distance') # p = độ đo p = độ đo Euclide cf.fit(X_train, y_train) y_result = cf.predict(X_test) #in Kết print(u'KẾT QUẢ PHÂN LỚP CÁC MẪU HOA IRIS TRONG BỘ TEST:\n') print(u'Theo phân lớp 1NN có kết : \n') print(y_result) print(u'\nKết (ground truth)của MẪU TEST :\n') print(y_test) 5.1.2.5 Đánh giá độ xác (Evaluation Method) + Độ xác giải thuật kNN Classifier = SUM(số MẪU test data đoán đúng) / SUM(số lượng MẪU tập Test data) + Trong Scikit-learn: dùng hàm accuracy_score để tính # đánh giá tỷ lệ (đoán phân lớp kNN) print(u'Tỷ lệ đoán phân lớp 1NN tập Test Iris: %.2f %%' %(100*accuracy_score(y_test, y_result))) Với 1NN dùng độ đo khoảng cách Euclide p=2: kết 94% Có thể thực nghiệm với k = 10 (major voting): kết 96% 5.1.2.6 Đánh trọng số NN + Những MẪU “gần” có trọng số cao (càng thân cận tin tưởng) + Đơn giản lấy nghịch đảo khoảng cách Chú ý: Trường hợp test data trùng với MẪU training data, tức khoảng cách 0, ta lấy label MẪU training data) + Trong Scikit-learn: tham số weights = 'distance' (mặc định weights = 'uniform': tất NN có trọng số nhau) clf = neighbors.KNeighborsClassifier(n_neighbors = 10, p = 2, weights = 'distance') clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print("Accuracy of 1NN: %.2f %%" %(100*accuracy_score(y_test, y_pred))) 361 ==========KẾT QUẢ ================= Accuracy of 10NN (1/distance weights): 100.00 % Với 10NN dùng độ đo khoảng cách Euclide p=2, dùng trọng số “khoảng cách” kết 98% + Cũng đánh trọng số NN theo tùy chọn 𝑤𝑖 = 𝑒𝑥𝑝 ( −‖𝑥 − 𝑥𝑖 ‖22 2 ) Trong x test data, xi MẪU NB(x), wi trọng số “MẪU” NN (ứng với MẪU liệu test x), σ số dương Hàm thỏa mãn điều kiện: điểm gần x trọng số cao (max=1) def myweight(distances): sigma2 = # we can change this number return np.exp(-distances**2/sigma2) clf = neighbors.KNeighborsClassifier(n_neighbors = 10, p = 2, weights = myweight) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print("Accuracy of 1NN: %.2f %%" %(100*accuracy_score(y_test, y_pred))) ============KẾT QUẢ============= Accuracy of 10NN (customized weights): 100.00 % 5.1.2.7 Full Codes # -*- coding: utf-8 -*""" Created on Mon Nov 23 03:58:20 2020 @author: VOXUAN """ # NẠP CÁC TẬP THƯ VIỆN import numpy as np import matplotlib.pyplot as plt from sklearn import neighbors, datasets from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # TẢI HIỂN THỊ SỐ LƯỢNG TẬP DỮ LIỆU IRIS CÓ SẴN TRONG SKLEARN iris = datasets.load_iris() iris_X = iris.data iris_y = iris.target print(u'Số lượng LỚP c phân chia = %d' %len(np.unique(iris_y))) print(u'Số lượng MẪU liệu = %d' %len(iris_y)) # GÁN NHÃN CHO LỚP ẢNH TRONG TẬP IRIS X0 = iris_X[iris_y == 0,:] X1 = iris_X[iris_y == 1,:] X2 = iris_X[iris_y == 2,:] print(u'\nCác MẪU thuộc LOP gồm:\n', X0[:5,:]) print(u'\nCác MẪU thuộc LOP gồm:\n', X1[:5,:]) 362 print(u'\nCác MẪU thuộc LOP gồm:\n', X2[:5,:]) # TÁCH TẬP TRAINING SET : 100 MẪU & TẬP TEST SET CÓ 50 MẪU X_train, X_test, y_train, y_test = train_test_split(iris_X, iris_y, test_size = 50) print(u'\nSố lượng MẪU thuộc tập Training Set: ', len(y_train)) print(u'\nSo61 lượng Mẫu thuộc tập Test Set: ', len(y_test)) # DÙNG kNN PHÂN LỚP CHO CÁC MẪU TRONG TẬP TEST # tự định nghĩa trọng số def myweight(distance): sigma2 = 0.5 return np.exp(-distance**2/sigma2) cf = neighbors.KNeighborsClassifier(n_neighbors=10, p=2, weights=myweight) # Euclide #cf = neighbors.KNeighborsClassifier(n_neighbors=10, p=2, weights='distance') # p = độ đo p = độ đo Euclide cf.fit(X_train, y_train) y_result = cf.predict(X_test) #in Kết print(u'KẾT QUẢ PHÂN LỚP CÁC MẪU HOA IRIS TRONG BỘ TEST:\n') print(u'Theo phân lớp 1NN có kết : \n') print(y_result) print(u'\nKết (ground truth)của MẪU TEST :\n') print(y_test) # đánh giá tỷ lệ (đoán phân lớp kNN) print(u'Tỷ lệ đoán phân lớp 1NN tập Test Iris: %.2f %%' %(100*accuracy_score(y_test, y_result))) KẾT LUẬN Với tốn phục vục việc phân tích quản lý dự liệu thông minh thông thường phải xử lý chuỗi liệu thời gian Và vậy, việc xác định độ đo khoảng cách phù hợp cho trường hợp số liệu cụ thể toán theo dự án (Project) xây dựng mơ hình khai phá liệu thực tiễn quan – doanh nghiệp định đáng kế cho tính hiệu tốn dự án Có nhiều phương pháp xác định độ đo khoảng cách khác biệt chuỗi điểm liệu chuỗi liệu thời gian, như: khoảng cách Hamming, khoảng cách tựa (tương tự) Cosin, khoảng cách Minkowski, khoảng cách Manhattan, khoảng cách Euclidean, khoảng cách Chebyshev, khoảng cách xoắn thời gian động (DTW: Dynamic Time Warping) Mỗi phương pháp có ưu điểm riêng nhược điểm nên có phù hợp với tốn project khơng phù hợp với toán project khác ngược lại Việc tìm hiểu nghiên cứu độ đo khoảng cách liệu chuỗi thời gian góp phần cải tiến tính hiệu tốn khoa học liệu mở nhiều hướng ứng dụng thực tiễn quan – doanh nghiệp 363 DANH MỤC MỘT SỐ TỪ VIẾT TẮT dùng viết Tiếng Việt: CMCN 4.0: Cách mạng công nghiệp lần thứ Tiếng Anh: DTW: Dynamic Time Warping: Độ đo khoảng cách xoắn thời gian động SQL: Structured Query Language: Ngơn ngữ vấn tin có cấu trúc 10 TSD: Time Series Data: Chuỗi liệu thời gian TÀI LIỆU THAM KHẢO: [12] Nguyễn Thành Sơn (2021), Đề tài nghiên cứu khoa học cấp trường trọng điểm: Dự báo chuỗi thời gian sử dụng phương pháp kết hợp mạng nơ-ron nhân tạo so trùng mẫu độ đo xoắn thời gian động, T2020-16TD, Trường Đại học Sư phạm Kỹ thuật Tp.HCM [13] Nguyễn Văn Thành (2021), luận văn thạc sỹ: Phát bất thường chuỗi thời gian dựa vào ma trận khoảng cách, 1981308, Trường Đại học Sư phạm Kỹ thuật Tp.HCM [14] B Liu, L Jianqiang and C Cheng, "Efficient Motif Discovery for LargeScale Time Series in Healthcare," IEEE Transactions on Industrial Informatics, vol 11, no 3, pp 583 590, 2015 [15] C M Yeh, Y Zhu and H D Anh, "Matrix Profile I: All pairs similarity joins for Time Series," IEEICDM, 2016 [16] Cheboli, “Anomaly Detection of Time Series”, Master Thesis, 2010 [17] E Keogh, E., Lin, J and Fu, (2005), “A HOT SAX: Efficiently Finding the Most Unusual Time Series Subsequence”, In: Proc of 5th IEEE Int Conf on Data Mining (ICDM), pp 226-233 [18] E Keogh and S Kasetty, "On the need for time series data mining benchmark: A surevey and empirical demonstration," in In the 8th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, p 23 – 26, 2002 [19] F Chuah, M.C Fu., “ECG anomaly detection via time series annalysis”, Lecturer notes in computer science, pp 123-135 [20] E Keogh, C A Ratanamahatana, “Exact indexing of dynamic time warping”, Knowledge and Information Systems (2004), Knowledge and Information Systems (2004) [21] Hansheng Ren cộng sự, “Time-Series Anomaly Detection Service at Microsoft”, in KDD ’19, August 4–8, 2019, Anchorage, AK, USA, 2019 364 Websites [22] https://cmry.github.io/notes/euclidean-v-cosine [23] Keogh Eamonn, http://www.cs.ucr.edu/~eamonn/discords/ 01.Jul.2020 [24] UCR, "The UCR Matrix Profile Page," [Online] Available: https://www.cs.ucr.edu/~eamonn/MatrixProfile.html 01.Jul.2020 [25] Tập liệu thực tế 01.Mar.2021 https://github.com/numenta/NAB/tree/master/data 365 ... biệt chuỗi điểm liệu thường áp dụng chuỗi liệu thời gian tốn phân tích và quản trị liệu thông minh: + Độ đo khoảng cách khác biệt d chuỗi giữ vai trị quan trọng tốn liệu + Độ đo khoảng cách d... Hamming, khoảng cách tựa (tương tự) Cosin, khoảng cách Minkowski, khoảng cách Manhattan, khoảng cách Euclidean, khoảng cách Chebyshev, khoảng cách xoắn thời gian động (DTW: Dynamic Time Warping)... nhiều độ đo khoảng cách khác biệt chuỗi điểm liệu thường áp dụng chuỗi liệu thời gian ban đầu giới thiệu phần 353 GIỚI THIỆU VỀ CÁC ĐỘ ĐO KHOẢNG CÁCH Sau viết giới thiệu số giá trị độ đo khoảng cách