Khoa học dữ liệu
Bài 7 - Phát hiện bất
thường
1
BÀI TOÁN PHÁT HIỆN
BẤT THƯỜNG
Anomaly detection
2
BÀI TOÁN PHÁT HIỆN BẤT THƯỜNG
▰ Dữ liệu bất thường
▻ Tách biệt khỏi các dữ liệu khác
▰ Nguyên nhân
▻ Lỗi nhập liệu, đo đạc
▻ Bản chất của quá trình sinh dữ liệu
▰ Ứng dụng phát hiện bất thường
▻ Phát hiện hành vi xấu
▻ Marketting
▻ Phân tích y tế / y dược
3
BÀI TỐN PHÁT HIỆN BẤT THƯỜNG
▰ Bài tốn: Cho n điểm dữ liệu, tìm k điểm
bất thường nhất
▰ Cần định nghĩa "bất thường":
▻ VD: Phần dư trong mơ hình hồi quy lớn
▰ Các hướng tiếp cận:
▻ Dựa vào thống kê
▻ Dựa vào khoảng cách
▻ Dựa vào mật độ
Chiều cao và Cân nặng
4
PHÁT HIỆN BẤT THƯỜNG BẰNG THỐNG KÊ
▰ Dữ liệu: Các dữ liệu (x1, x2, ..., xn)
▰ Giả sử dữ liệu theo phân bố chuẩn
▻ Tính kỳ vọng và phương sai
▻ Tính thống kê (z-score) Ti
▻ Bất thường: T < -2 hoặc T > +2
▻ Độ tin cậy: 95%
5
PHÁT HIỆN BẤT THƯỜNG BẰNG THỐNG KÊ
Chiều cao và Cân nặng
▰ Đưa dữ liệu về phân bố chuẩn
▰ Ví dụ: sử dụng mơ hình hồi quy
a. Xác định (huấn luyện) mơ hình hồi quy
b. Tính tốn các phần dư (residuals) của dữ liệu
c. Các phần dư theo phân bố chuẩn
i. nếu mơ hình hồi quy đúng
d. Tính kì vọng, phương sai của ri
e. Tính thống kê Ti của các mẫu dữ liệu ri
6
PHÁT HIỆN BẤT THƯỜNG BẰNG THỐNG KÊ
Chiều cao và Cân nặng
▰ Ưu điểm
a. Nhanh, tính tốn đơn giản
b. Có cơ sở lý thuyết xác suất thống kê
▰ Nhược điểm
a. Thường chỉ kiểm tra các đặc trưng đơn lẻ (1 cột của bảng)
b. Khơng phải lúc nào cũng có phân bố của dữ liệu
7
PHÁT HIỆN BẤT THƯỜNG BẰNG KHOẢNG CÁCH
▰ Dữ liệu: Các dữ liệu (x1, x2, ..., xn)
▰ Cho p ∈ [0,1] và Dmin > 0
▻ xi bất thường
Có nhiều hơn p x n điểm có khoảng cách tới xi lớn hơn Dmin
▻ Hay: xi có q ít điểm "lân cận"
Có ít hơn M = (1-p) x n điểm trong khoảng cách Dmin
8
PHÁT HIỆN BẤT THƯỜNG BẰNG KHOẢNG CÁCH
▰ Tăng tốc độ tính tốn
▻ Sử dụng các cấu trúc tìm kiếm khơng gian
▻ Cây k-d (k-d tree), cây bóng (ball tree)
▻ Tìm các điểm gần xi (khoảng cách nhỏ hơn Dmin)
▻ Nếu có ít nhất M điểm thì "bình thường"
9
PHÁT HIỆN BẤT THƯỜNG BẰNG MẬT ĐỘ
▰ Dữ liệu: Các dữ liệu (x1, x2, ..., xn)
▰ Xây dựng mơ hình xác suất của dữ liệu
▻ Ước lượng mật độ
▻ Ví dụ: mơ hình Gaussian, mơ hình
trộn Gaussian, 1-class SVM
▰ Bất thường: xi có mật độ thấp
10
MƠ HÌNH GAUSSIAN
from sklearn.mixture
import
GaussianMixture
▰ Dữ liệu: Các dữ liệu (x1, x2, ..., xn)
▰ Xây dựng mơ hình xác suất của dữ liệu
▰ Sử dụng tập kiểm thử để xác định
ngưỡng xác suất
11
2
PHÁT HIỆN BẤT THƯỜNG
TRÊN CHUỖI THỜI GIAN
Anomaly detection in time series
12
CHUỖI THỜI GIAN
▰ Dữ liệu: Các dữ liệu (x1, x2, ..., xt, ..., xT)
▰ Tại thời điểm t, chỉ có dữ liệu (x1, x2, ..., xt)
▰ Ứng dụng
▻ Dự đoán: giá cả, thời tiết, lượng tiêu thụ
▻ Bất thường: hành vi xấu, tấn công mạng
13
PHÂN TÍCH CHUỖI THỜI GIAN: ĐỒ THỊ
▰ Sử dụng đồ thị
▻ Vẽ một hoặc nhiều chuỗi
thời gian
▻ Quan sát xu hướng
▻ Quan sát các thời điểm cần
khảo sát kỹ
14
PHÂN TÍCH CHUỖI THỜI GIAN: MƠ HÌNH DỰ ĐỐN
▰ Xây dựng mơ hình dự đốn
▻ Tín hiệu xt từ các tín hiệu
trước đó (nếu bình thường)
▻ xt = f(x1, ..., xt-1)
▻ xt = f(xt-h, ..., xt-1) (h: cửa sổ)
▰ Bất thường: xt lệch xa khỏi f(xt-h, ..., xt-1)
15
PHÂN TÍCH CHUỖI THỜI GIAN: MƠ HÌNH DỰ ĐỐN
▰ Mơ hình tuyến tính
▻ Trung bình chuyển động
▻ Hồi quy tuyến tính
16
GIÁ TRỊ TRUNG BÌNH
▰ Dự đốn tín hiệu tiếp theo bằng giá trị trung
bình của các tín hiệu trước đó
▰ Phần dư
▰ Kiểm tra
17
GIÁ TRỊ TRUNG BÌNH
▰ Lựa chọn ngưỡng q cao
▻ Khơng phát hiện được bất thường
▰ Lựa chọn ngưỡng quá thấp
▻ Dễ “báo động giả”
18
GIÁ TRỊ TRUNG BÌNH
▰ Lựa chọn ngưỡng q cao
▻ Khơng phát hiện được bất thường
▰ Lựa chọn ngưỡng quá thấp
▻ Dễ “báo động giả”
19
GIÁ TRỊ TRUNG BÌNH VÀ PHƯƠNG SAI
▰ Có thể tính tốn “trực tuyến”
▻ Khơng cần lưu trữ các giá trị phía
trước
20
PHÁT HIỆN BẤT THƯỜNG BẰNG Z-Score
▰ Tính giá trị trung bình
▰ Tính giá trị phương sai
▰ Tính giá trị trung bình chuyển động
▰ Tính Z-score
21
PHÁT HIỆN BẤT THƯỜNG BẰNG Z-Score
▰ Tính Z-score
▰ Bất thường |Tt| > 2
▰ Độ tin cậy 95%
22
PHÁT HIỆN BẤT THƯỜNG QUA PHÂN CỤM
▰ Cắt các chuỗi tín hiệu bình thường thành các đoạn
▻ Cửa sổ có độ dài cố định bằng h
▰ Sử dụng k-means phân cụm
▰ Một tín hiệu bất kì
▻ Tách thành nhiều đoạn độ dài h
▻ Chuyển các đoạn thành tâm cụm gần nhất
23
PHÁT HIỆN BẤT THƯỜNG QUA PHÂN CỤM
▰ Một chuỗi tín hiệu bất kì
▻ Tách thành nhiều đoạn độ dài h
▻ Khơi phục lại bằng tâm cụm gần nhất
▰ Tính trung bình bình phương sai số giữa chuỗi tín hiệu gốc
và chuỗi tín hiệu khơi phục
▻ Bất thường: sai số lớn
24