현재 자주 쓰이는 time series outlier/anomaly detection methods 정리
아직도 정리되지 않은 용어...Outlier
통상적으로 Outliers라는 말을 사용하지만, 여러 Paper나 Search에서는 아래와 같은 용어들을 Outliers와 같은 의미로 사용하고 있다.
anomalies, discordant obervations, discords, exceptions, aberrations, suprises, peculiarities, contaminants
용어는 달라도, 이 단어들이 뜻하는 바는 다음과 같다고 보면 되겠다.
observations that do not follow the expected behavior
Outlier에도 종류가 있다?!
- 막연히 생각했을때 Outlier라는 개념은 꽤나 간단해 보이지만, 사실 문맥에 따라 Outlier는 여러가지 의미를 지닐 수 있다.
- 이렇게 outlier라는 뜻이 여러 의미를 지니면, 관련 코드나 Paper를 검색할 때 상당히 어려워지는데...ㅠ
- (A Blázquez-García, 2020)에는 아래와 같이 무책임한 문장이 나온다.
The outliers depend on the context
Point outliers
- 이는 기대와 다른 행동을 보이는 "딱 한 점"이다.
- 전체의 맥락에서 고려되면 global, 해당 점 주변의 neighborhood에서만 고려되면 local로 분류된다.
a datum that behaves unusually in a specific time instant
Subsequence outliers
- 각 점의 행동만 보면 point outlier는 아니지만, 연속된 점들의 패턴이 전체 맥락과 다른 경우
consecutive points in the time whose joint behavior is unusual, although each observation individually is not necessarily a point outlier
Outlier time series
- 이는 여러 시계열 패턴을 input으로 했을 때, 다른 패턴을 보이는 시계열 패턴을 말한다.
Entire time series can also be outliers, whose behavior differs from the rest
- 해당 포스팅에서는 Point outliers에 집중할 것임을 밝힌다.
Point outlier detection
- 수식적으로 볼 때, point outlier는 아래와 같이 정의될 수 있다.
- xt is defined as a outlier if
∣xt−x^t∣>τ where τ is a predefined thershold, xt is the observed data point, x^t is its expected value.
Statistical
- constant/piecewise constant
- For x^t : median, MAD,
- For τ : adaptive
ARIMA
Spline
Kernel
Moving average
Gaussian mixture
STL decomposition
Linear regression
Neural nets
CNN
ARIMA (AR)
Extreme value theory
Density-based
Histogramming
HTM(Hierachical Temporal Memory) network
Deep learning based
-LSTM, RNN 기반
LSTM
Prophet
Isolation forest
Local Outlier Factor
One-class SVM
Autoencoders
Robust Covariance Estimator
K-NN
Methods using PyCaret package
Angle-based
Clustering-based
Connectivity-based
Isolation forest
Histogram-based
K-nn
Local Outlier Factor
One-class SVM
PCA, MCD, SOD, SOS, ...
[Refernces]