파이썬을 이용한 시계열 이상 탐지 client1 metric1

여러 시계열 데이터 세트에서 이상 감지를 구현해야합니다. 나는 전에 이것을 한 적이 없으며 조언을 기대하고있었습니다. 나는 파이썬에 매우 익숙하므로 솔루션을 구현하는 것을 선호합니다 (대부분의 코드는 내 작업의 다른 부분에 대한 파이썬입니다).

데이터 설명 : 지난 2 년 정도 전에 수집 된 월별 시계열 데이터입니다 (즉, 24-36 시간 만). 기본적으로 여러 클라이언트에 대해 매월 모니터링되는 몇 가지 메트릭이 있습니다.

time_period    client    metric    score
01-2013        client1   metric1   100
02-2013        client1   metric1   119
01-2013        client2   metric1   50
02-2013        client2   metric2   500
...

내가 생각하는 것은 다음과 같습니다. 데이터를 데이터 프레임 (팬더)으로 가져온 다음 각 고객 / 메트릭 쌍에 대한 6 개월 평균 롤링을 계산하십시오. 현재 기간의 값이 6 개월 평균을 기준으로 일부 임계 값을 초과하면 플래그를 올리십시오. 문제는 다소 단순 해 보입니다. 나는 탄탄한 접근 방식을 취하고 싶습니다.

이 아이디어를 조금이라도 살려주는 조언은 크게 감사하겠습니다. 나는 그 질문이 약간 추상적이라는 것을 알고 있으며, 그것에 대해 사과드립니다.



답변

통계 차트 제어 와 비슷한 접근 방식 이 제어 차트 등이 여기에 유용 할 것이라고 생각합니다.


답변

Pandas 표준 편차 함수를 사용하는 표준 편차에서 베이지안 방법 및 클러스터링, SVM, 가우시안 프로세스, 신경망과 같은 많은 머신 러닝 방법에 이르기까지 이상 탐지에 대한 옵션이 많이 있습니다.

이 자습서를 살펴보십시오 :
https://www.datascience.com/blog/python-anomaly-detection

베이지안 관점에서 나는 페이스 북 선지자를 추천한다. 시계열 전문가가 아니어도 매우 진보 된 결과를 제공합니다. 월, 일 등의 작업에 대한 옵션이 있으며 “불확실성 간격”은 예외에 도움이됩니다.

마지막으로, 이상 탐지를 위해 신경망 (LSTM)을 사용하는 것에 관한 Uber 블로그를 추천합니다.
https://eng.uber.com/neural-networks/


답변

데이터 세트가 정규 분포를 따른다고 가정 할 경우이 분포의 Quantile을 추정하여 95 %, 80 % 등 Quantile이 아닌지 확인할 수 있습니다. 나는 파이썬 라이브러리에 익숙하지 않지만 이미 빌드 된 함수가 있다고 확신합니다.