Phát hiện bất thường trên dữ liệu chuỗi thời gian trên tập dữ liệu ứng viên trong

Một phần của tài liệu Phát hiện bất thường trên dữ liệu chuỗi thời gian bằng giải thuật disk aware (Trang 53 - 57)

5. Ý nghĩa thực tiễn của đề tài

3.7 Phát hiện bất thường trên dữ liệu chuỗi thời gian trên tập dữ liệu ứng viên trong

thuật toán cải tiến

3.7.1 Lựa chọn ứng viên bất thường

Tập dữ liệu Time Series đầu vào sẽ được phân đoạn thành các chuỗi con có chiều dài bằng nhau định trước (Sliding Window) sau đó thực hiện chuẩn hóa (Z – score hoặc Min – Max).

Thực hiện thu giảm số chiều cho chuỗi dữ liệu thời gian sử dụng phương pháp xấp xỉ gộp từng đoạn (PAA - tùy chọn). Sau đó tiến hành rời rạc hóa dữ liệu chuỗi thời gian, mỗi giá trị thực (giá trị trung bình của từng đoạn nếu thực hiện giảm số chiều) sẽ được ánh xạ thành một kí tự tương ứng (áp dụng giải thuật SAX, iSAX).

Dữ liệu đầu vào lúc này là các chuỗi con, mỗi chuỗi con là một dãy kí tự alphabet được lưu trong một phần tử của danh sách, chỉ số phần tử là vị trí của chuỗi con được cắt ra từ chuỗi dữ liệu thời gian ban đầu.

Hình 3.13 Cửa sổ trượt window tách ra các chuỗi con Ci, chuỗi này được chuyển đổi thành chuỗi kí tự Ci, sau đó được đặt trong ma trận S. Lưu ý rằng chỉ số dòng của ma

Hình 3.14 Ma trận lưu chỉ số các ứng viên

- Khởi tạo chuỗi con đầu tiên C1làm ứng viên (chuyển vị trí của chuỗi C1 từ số sang kí tự và thêm vào phần tử thứ nhất của danh sách).

- Với i = 2 (Xét ứng viên thứ 2) và so sánh chuỗi này với chuỗi có vị trí là kí tự đầu tiên ở phần tử thứ nhất của danh sách. Nếu chuỗi con đang xét bằng với chuỗi này thì thêm (nối chuỗi) chỉ số của chuỗi này (sau khi biến thành kí tự) vào tiếp phần tử thứ nhất của danh sách rồi kết thúc, ngược lại thêm chỉ số ứng viên này vào phần tử thứ hai (phần tử mới) của danh sách rồi kết thúc.

- Với i = 3 (Xét ứng viên thứ 3) và so sánh với chuỗi có vị trí là kí tự đầu tiên ở phần tử thứ nhất của danh sách. Nếu chuỗi đang xét bằng với chuỗi này thì thêm tiếp chỉ số ứng viên này vào phần tử thứ nhất của danh sách rồi kết thúc, nếu không bằng thì tiếp tục so sánh với chuỗi có vị trí là kí tự đầu tiên ở phần tử thứ hai của danh sách, nếu bằng thì thêm (nối chuỗi) chỉ số ứng viên này vào phần tử thứ hai của danh sách rồi kết thúc, nếu không thêm chỉ số ứng viên này vào phần tử thứ ba (phần tử mới) của danh sách rồi kết thúc.

- Với i = k (Xét ứng viên thứ k) và so sánh với chuỗi có vị trí là kí tự đầu tiên của các phần tử từ phần tử thứ nhất đến phần tử thứ j của danh sách. Nếu chuỗi này bằng với chuỗi có vị trí là kí tự đầu tiên ở phần tử nào của danh sách thì thêm vị trí (k) của chuỗi đang xét vào phần tử đó rồi kết thúc, nếu tất cả không bằng thì thêm chỉ số ứng viên đó vào phần tử mới (phần tử j+1) của danh sách rồi kết thúc.

1 1|3|5|8|16 2 2|4|15|20|22 58 101|110|200… …201|300 … 985 350|351… …800|985

- Cứ tiếp tục như thế cho đến hết chuỗi đầu vào ta sẽ được danh sách lưu vị trí của các ứng viên.

- Bây giờ ta sẽ đếm số ứng viên trên từng phần tử của danh sách (mỗi phần tử sẽ chứa các chỉ số của những ứng viên giống nhau) và thuật toán sẽ ưu tiên chọn phần tử có ít ứng viên nhất (độ dài ngắn nhất) là phần tử chứa các ứng viên bất thường nhất, nếu có nhiều phần tử có cùng độ dài ngắn nhất thì tập ứng viên là tất cả các ứng viên trên các phần tử đó. Sau bước này ta sẽ có được một tập các ứng viên có khả năng là bất thường nhất để tiếp tục cho giai đoạn hai, giai đoạn làm tinh của thuật toán của Yankov và cộng sự.

- Khi cải tiến thì chúng tôi có nhận xét như sau:

+ Khi so sánh ta chỉ so sánh với chuỗi có vị trí là ký tự đầu tiên ở từng phần tử từ phần tử thứ nhất đến phần tử thứ j của danh sách chứ không so sánh với tất cả những ứng viên có vị trí khác nhau nhưng nằm trong cùng một phần tử của danh sách (vì các ứng viên trong cùng một phần tử của danh sách là giống nhau).

+ Khi so sánh nếu ứng đang xét bằng với vị trí ứng viên ở phần tử nào thì đưa chỉ số của ứng viên đó vào tiếp phần tử đó rồi kết thúc ngược lại đưa chỉ số ứng viên đó vào phần tử mới tiếp theo rồi kết thúc.

3.7.2 Làm tinh các ứng viên

- Bước này tương tự như của Yankov và cộng sự [3]

Algorithm 1 Discord Refinement Phase

Procedure [C, C.dist] = DC_Refinement (S, C, r)

In: S: disk resident dataset of time series

C: discord candidates set r: discord defining range

Out: C: list of discords

C.dist: list of NN distances to the discords 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: for j = 1 to | C | do C.distj = ∞ end for for SiS do for CiC do ifSi = Cj then continue end if d = EarlyAbandon (Si, Cj, C.distj) if (d < r) then C = C\Cj C.dist = C.dist\C.distj else C.distj = min(C.distj, d) end if end for end for

CHƯƠNG 4 ĐÁNH GIÁ BẰNG THỰC NGHIỆM

Một phần của tài liệu Phát hiện bất thường trên dữ liệu chuỗi thời gian bằng giải thuật disk aware (Trang 53 - 57)

Tải bản đầy đủ (PDF)

(57 trang)