Tôi đang cố gắng thực hiện một số phát hiện bất thường giữa chuỗi thời gian # bằng Python và sklearn (nhưng các đề xuất gói khác chắc chắn được chào đón!).
Tôi có một bộ gồm 10 chuỗi thời gian; mỗi chuỗi thời gian bao gồm dữ liệu được thu thập từ giá trị mô-men xoắn của lốp xe (tổng cộng 10 lốp) và các bộ có thể không chứa cùng một số điểm dữ liệu (kích thước cài đặt khác nhau) . Mỗi dữ liệu chuỗi thời gian có khá nhiều chỉ là lốp_id, dấu thời gian và sig_value (giá trị từ tín hiệu hoặc cảm biến). Dữ liệu mẫu cho một chuỗi thời gian trông như thế này:
tire_id timestamp sig_value
tire_1 23:06.1 12.75
tire_1 23:07.5 0
tire_1 23:09.0 -10.5
Bây giờ tôi có 10 người trong số họ, và 2 người trong số họ cư xử kỳ lạ. Tôi hiểu rằng đây là một vấn đề phát hiện bất thường, nhưng hầu hết các bài báo tôi đọc trực tuyến đều phát hiện các điểm bất thường trong cùng một chuỗi thời gian (hay tại một số điểm, giá trị mô-men xoắn không bình thường đối với lốp xe đó).
Để phát hiện 2 lốp xe đang hoạt động bất thường, tôi đã thử sử dụng phương pháp phân cụm, về cơ bản là phân cụm k-nghĩa (vì nó không được giám sát).
Để chuẩn bị dữ liệu để đưa vào cụm k-nghĩa, cho mỗi chuỗi thời gian (còn gọi là cho mỗi lốp xe), tôi đã tính toán:
- 3 bộ trên cùng của tối đa cục bộ và tối thiểu cục bộ liền kề với biên độ (chênh lệch) cao nhất
- Giá trị trung bình của giá trị mô-men xoắn
- Độ lệch chuẩn của giá trị mô-men xoắn
Tôi cũng đặt số cụm là 2, vì vậy, cụm 1 hoặc 2.
Vì vậy, kết quả cuối cùng của tôi (sau khi gán các cụm) trông như sau:
amplitude local maxima local minima sig_value_std \
tire_0 558.50 437.75 -120.75 77.538645
tire_0 532.75 433.75 -99.00 77.538645
tire_0 526.25 438.00 -88.25 77.538645
tire_1 552.50 -116.50 436.00 71.125912
tire_1 542.75 439.25 -103.50 71.125912
sig_value_average cluster
tire_0 12.816990 0
tire_0 12.816990 0
tire_0 12.816990 0
tire_1 11.588038 1
tire_1 11.588038 0
Bây giờ tôi có một câu hỏi phải làm gì với kết quả này ... vì vậy mỗi lốp xe có 3 hàng dữ liệu, vì tôi đã chọn 3 cặp max / min cục bộ hàng đầu với 3 biên độ lớn nhất và điều đó có nghĩa là mỗi hàng có thể được gán cho một cụm, và đôi khi chúng được gán cho các cụm khác nhau cho 1 lốp chẵn. Ngoài ra kích thước cụm thường lớn hơn chỉ 2.
Câu hỏi của tôi là:
- Làm thế nào để phát hiện sự bất thường về "tập hợp chuỗi thời gian" không chỉ các điểm dữ liệu riêng lẻ?
- Là cách tiếp cận của tôi hợp lý / hợp lý? Nếu có, làm thế nào tôi có thể làm sạch kết quả của mình để có được những gì tôi muốn? Và nếu không, tôi có thể làm gì để cải thiện?