Python에서 tsmoothie를 사용하여 시간 시퀀스에서 예외 값 탐지

1603 단어 python

이상치는 무엇입니까?


그룹 값은 대부분의 다른 데이터 지점에서 멀리 떨어진 데이터 지점이다.
이 시간 서열의 예에서 블루테이프 이외의 모든 점은 이상값으로 볼 수 있다.

어떻게 시간 시퀀스 중의 이상 값 목록을 얻습니까?


이곳에서 우리는 tsmoothie라는 라이브러리를 사용할 것이다.
이것은 벡터화 방식으로 시간 서열의 매끄러움과 이상 값을 측정하는 데 사용되는python 라이브러리입니다.
그림의 시간 순서에 따르면 우리는 4개의 이상 값을 볼 수 있으며 다음과 같은 방법으로 그것들을 얻을 수 있다.


import numpy as np
from tsmoothie.utils_func import sim_randomwalk
from tsmoothie.smoother import LowessSmoother

data = df['value'].values.reshape(1, -1)

# operate smoothing
smoother = LowessSmoother(smooth_fraction=0.1, iterations=1)
smoother.smooth(data)

# generate intervals
low, up = smoother.get_intervals('prediction_interval')

points = smoother.data[0]
up_points = up[0]
low_points = low[0]

for i in range(len(points)-1, 0, -1):
    current_point = points[i]
    current_up = up_points[i]
    current_low = low_points[i]
    if current_point > current_up or current_point < current_low:
        print(f'found an outlier value: {current_point}')
데이터 프레임 df에'value'라는 열이 있음을 감안하십시오.
따라서 우리는 코드를 실행한 후에 다음과 같은 출력을 얻었다.

좋은 웹페이지 즐겨찾기