공부일기/Machine-Learning

이상치 탐지(Anomaly Detection)

pipiiiiii 2024. 8. 6. 00:44

이상치 탐지

데이터에서 예상과 다른 패턴을 보이는 개체는 자료를 찾는 것을 말한다. 

즉, 학습 데이터를 기반으로 기존 데이터들과는 다른 특성을 갖는 데이터를 찾는 모형을 만드는 방법이다. 

 

'이상'이라는 표현은 적용되는 도메인 컨텍스트나 데이터의 종류에 따라 다양하게 불린다. 

 

 

이상치 탐지와 혼동되는 것들

1. 분류(Classification)

분류는 두 범주를 구분할 수 있는 경계면을 찾는 것이고, 이상치 탐지는 다수의 범주를 고려해 이상치가 아닌 데이터들의 sector(부문)를 구분 짓는 것이다. 

 

2. Noise Detection

Noise는 분석 이전 단계에서 불필요한 개체 또는 제거해야 할 성분을 말하는 것으로 이를 조정함으로써 통계 모형 추정에서 이상치에 영향을 줄 수 있다. 또한, Noise Detection은 지금까지 발견되지 않았던 새로운 패턴을 찾아내는 것을 목표로 하며 이상치 탐지와는 달리 novelty는 정상치에 포함된다. 

 

 

이상치 탐지 분류 

학습 시 비정상 샘플의 사용 여부 및 라벨 유무에 따라 아래와 같이 분류할 수 있다. 

  1. 지도 학습 기반 이상 탐지 
    • 주어진 학습 데이터 셋에 정상 샘플과 비정상 샘플의 데이터와 라벨이 모두 존재하는 경우다. 
    • 높은 정확도를 요구하는 경우 주로 사용된다. 
    • 산업 현장에서는 비정상 샘플의 발생 빈도가 현저히 작아 클래스 불균형 문제가 심하다. 
    • 데이터 증강, 손실함수 재설계, 배치 샘플링 등의 기법을 적용한다. 
  2. 반지도 학습(단일 클래스) 기반 이상 탐지
    • 클래스 불균형이 심한 경우 정상 샘플만 이용해서 학습한다. 
    • 정상 샘플들을 둘러싸는 discriminative boundary(차별적 경계)를 설정하고 결계를 최대한 좁혀 밖에 있는 샘플들을 모두 비정상으로 간주한다. 
  3. 비지도학습 기반 이상 탐지
    • 대부분의 데이터가 정상 샘플이라는 가정 하에 라벨 없이 학습시키는 방법론이다. 
    • PCA, Autoencoder를 이용해 차원을 축소하고 복원하는 과정을 통해 비정상 샘플을 검출한다.
    • 정확도가 다소 불안정하다.

 

 

이상치 탐지 기법 

분류 기반 기법

분류기를 주어진 특성 공간(Feature space)에서 학습시킬 수 있다는 가정을 전제로 한다. 

라벨의 개수에 따라 one-class 또는 multi-class로 데이터를 학습시키고 class에 해당하지 않는 개체를 이상치로 처리한다. 

 

분류 기반 기법 장단점은 아래와 같다. 

  • 장점
    • 기존의 여러 강력한 알고리즘들을 이용할 수 있다. 
    • 이미 학습된 모형에 대해 예측만 하면 되기 때문에 테스트 과정이 매우 빠르다.   
  • 단점
    • multi classification 문제에서 각 정상 관측값 종류에 대한 라벨을 구하기 어려울 수 있다. 
    • 신경망 모형의 경우 훈련을 위해 뛰어난 성능의 하드웨어가 필요하다는 점이 문제가 될 수 있다.
    • SVM을 사용할 때 어떠한 커널을 사용해야 할지 결정해야 한다. 
    • 각 관측값에 대한 이상 점수가 필요한 경우에는 라벨만 지정하는 기법들을 활용하기 어렵다. 이를 해결하기 위해 몇 기법은 분류기의 출력에서 확률적인 예측 점수를 얻어낸다.  

 

분류 기반 기법의 대표 알고리즘은 아래와 같다. 

  • Autoencoder(오토인코더)  

    신경망의 구조는 위의 그림과 같다. 
    비지도학습 기반 모델로 입력층(Input layer)과 출력층(Output layer)의 노드 수가 같고, 하나 이상의 은닉층(Hidden layer)으로 구성된 인코더를 통해 입력 데이터를 압축하고, 디코더를 사용해 개체를 복원한다. 복원했을 때 발생하는 복원 오차가 크면 클수록 이상 개체라고 판단한다. 

    one-class, multi-class 문제의 구분 없이 모두 적용할 수 있다. 
  • Bayesian network(베이지안 네트워크)
    Multi-class 문제에 사용된다. 
    나이브 베이지안 네트워크로 테스트 데이터 내 관측값의 각 정상 클래스와 이상에 대한 사후 확률을 추정해 가장 높은 확률에 해당하는 클래스로 지정한다. 이때, 각 클래스의 사전 확률과 조건부 확률은 훈련 데이터를 사용해 추정해야 한다. 만약 확률이 0으로 나오는 경우 Laplace Smoothing으로 0 대신 1 또는 적절한 양수 값을 부여한다.  

  • SVM(서포트 벡터 머신)
    one-class 이상 탐지 문제에서 사용할 수 있다. 
    One Class Support Vector Machine이라고도 불리며, 훈련 데이터를 포함하는 영역을 학습한다. 
    영역 기반 학습 방법은 결정 경계에만 초점을 맞추고 경계의 내외부에서의 분포에는 관심을 가지지 않는다. 따라서 분포에 둔감하고 데이터의 샘플링이 어떻게 이루어졌는지와 무관한 결과를 도출할 수 있다. 일반적으로 Linear Support Vector Machine(선형 지원 벡터 머신)을 이용하지만 영역의 구분이 복잡해지면 RBF(Radial Basis Function)와 같은 커널 함수를 사용하기도 한다. 
    테스트 데이터가 학습된 영역 내에 존재하면 정상, 아니면 이상으로 판단한다. 


  • 결정 규칙(Decision Rule)
    one-class, multi-class 이상 탐지 문제에서 사용할 수 있다. 
    시스템에서 정상 자료를 판단하는 규칙들을 학습하고, 어떤 규칙에도 해당하지 않는 관측값을 이상으로 취급한다. 
    결정 규칙은 범주형 데이터에서 생성되며, 규칙들이 강한 패턴만을 보여주게 하도록 지지도가 일정 수준을 넘지 못하는 규칙은 제거한다. 

 

분할 기반 기법은 데이터를 분할적으로 군집화한 뒤, 각 분할에 대해 그 안에서 각 개체의 k번째로 가까운 이웃과의 거리를 구한다. 거리의 최소, 최댓값을 이용하여 가장 이상한 k개의 개체를 포함하지 않을 만한 군집은 제거하고 나머지에서만 이상값을 찾아낸다.   
 

 

NN 기반 기법


NN(Nearest Neighbor) 기반 기법은 대체로 비지도 학습 또는 준지도 학습을 기반으로 하며, '정상치가 어떤 근방(Neighbor)에 밀집되어 있고, 이상치가 각 근방에서 멀리 떨어져 있다'는 가정을 전제로 한다. 즉, 거리 개념만 잘 정의된다면 자료 형태에 구애받지 않고 사용할 수 있다는 것이다. 그러나 테스트 과정에서 각각 근방을 구해야 해 시간이 오래 걸리고, 관측값 간의 거리 개념이 정의되어야 한다. 

 

거리 개념은 여러 가지 방법으로 정의할 수 있으며 아래와 같다.  

  • 연속형 변수인 경우
    • 일반적으로 유클리드 거리를 사용한다
  • 범주형 변수인 경우
    • 단순 일치 계수가 자주 사용된다. 
  • 다변량 데이터인 경우 
    • 변수에 대한 거리를 결합해야 한다. 

 

NN 기반 기법의 장단점은 아래와 같다.

  • 장점
    • 비지도 학습 기반이며 어떠한 가정도 필요하지 않다. 
    • 이상값이 훈련 데이터에서 가까운 근방을 형성할 확률이 매우 낮아 준지도 기법이 비지도 기법보다 이상값 감지면에서 더 좋은 성능을 보인다.
    • 거리만 잘 정의되어 있다면 데이터의 형태에 구애받지 않는다. 
    • 정상값이 가까운 이웃이 없거나, 이상값이 가까운 이웃이 있는 상황에서 비지도 기법은 이상을 정상으로 탐지할 수 있다.  
  • 단점
    • 테스트 과정에서 각각 근방을 계산해야 하므로 오랜 시간이 소요된다. 
    • 모델 성능이 거리 척도의 영향을 많이 받는다. 
      • 예를 들어 유클리드 거리를 사용할 경우, 각 변수별로 척도의 차이가 존재하기 때문에 결과 왜곡이 발생할 수 있다. 따라서 표준화를 통해 척도의 차이를 해결하고 범주형 변수가 존재할 경우 더미 변수를 생성하는 등 다른 방식으로 문제를 해결해야 한다.   
    • 데이터의 차원이 커질수록 거리를 계산하는 데 있어 어려움이 발생한다. 

 

NN 기반 기법의 대표 알고리즘은 아래와 같다. 

  •  K-NN 기반
    이상 점수를 K번째로 가까운 개체와의 거리로 정의하는 방법이다. 
    일반적으로 이상 점수의 경곗값을 설정하지만, 이상 점수를 기준으로 정렬시킨 뒤 이상 점수가 가장 큰 m개를 이상값으로 보는 방법도 존재한다. 이때 m을 결정하는 것은 분석가의 영역이다. 

    연속형 변수의 경우 기본적인 방법에서 아래와 같은 방향으로 확장할 수도 있다. 
    - 이상 점수의 정의를 바꾸는 방향
    - 연속형이 아닌 데이터 처리를 위해 다른 거리 척도를 도입하는 방향 
    - 가까운 객체를 얻기 위해 데이터의 수의 제곱 시간이 소용되는 기본 기법의 계산 효율을 늘리는 방향 
    - 가장 가까운 k개 관측값과의 거리 합을 이상 점수로 부여하는 방법
    - 한 관측값에서 일정 거리 이내에 있는 개체의 수를 세는 방법 

    범주형 변수의 경우 아래와 같이 다룰 수 있다.  
    - HOT라 불리는 초그래프(Hypergraph) 기반 기법은 범주형 값들을 초그래프로 모형화한 뒤 그 그래프에서 연결 관계를 통해 거리를 계산한다. 

    연속형, 범주형 변수가 모두 포함되어 있는 경우 아래와 같은 거리 척도도 제안되었다. 
    - 범주형, 연속형에 대한 거리를 따로 구한 후 더하는 방식이다. 이때, 범주형 변수에 대해서는 두 관측값이 일치하는 값의 개수를, 연속형 변수에 대해서는 종속성을 찾기 위해 공분산 행렬을 이용한다. 

    효율성 개선을 위해 아래와 같이 다양한 변형 방법도 제시되었다. 
    - 이상값이 될 수 없는 관측값을 무시하는 방법
    - 가장 이상값이 될 만한 개체에만 집중해 탐색 공간을 축소하는 방법 

    개체에 대해 가까운 이웃을 구했으면 알고리즘은 지금까지 찾아낸 이상값의 이상 점수 중 최소를 경곗값으로 정한다.   
  • 상대 밀도 기반(DBSCAN)
    밀도 기반 기법은 각 관측값 근방의 밀도를 추정해 근방의 밀도가 낮은 관측값은 이상값이라 판단한다. 
    그러나 이러한 기법은 밀도가 상이한 클러스터들이 존재할 때 문제가 발생한다. 기존의 밀도 기반 방법론들은 '밀도'라는 개념을 정의하기 위해, 특정 window size 및 최소 개수 등을 이용했으나 클러스터별 밀도가 상의한 경우 기존의 방법론처럼 밀도에 대한 절대적인 기준을 지정할 수 없어진다. 이러한 문제를 통해 local의 상대적인 밀도를 비교하여 outlier를 정하는 LOF(Local Outlier Factor) 기법이 등장했다.     
    가장 가까운 k개의 점들이 local density의 평균과 자기 자신의 local density 밀도의 비율로 정의된다.  

    < Local Outlier Factor >

    위 그림에서 O1이 이상치인 것은 알 수 있지만 O2가 이상치일까?
    LOF는 O2도 이상치로 분류한다. 밀집 지역에서 밀도가 급격하게 감소되기 때문이다. 즉, LOF는 데이터가 가지는 상대적인 밀도를 고려한 이상치 탐지 기법이다.  

    LOF의 장점은 밀집된 클러스터에서 조금만 떨어져 있어도 이상치로 탐지해 준다는 점이다. 그러나, 이상치라고 판단하는 기준을 어디에 잡아야 할지 정해줘야 한다는 단점이 있다. 
    특히, 차원이 낮은 데이터에서는 시각적인 도움을 통해 어느 정도 보완할 수 있지만 차원이 커지게 되면 판단하기 어려워져 도메인 지식을 이용한 Threshold(한계점) 결정이 중요하다. 

 

 

군집화 기반 기법

비슷한 관측값들을 군집으로 형성하여 탐색적 자료 분석과 시각화를 위해 사용된다. 

군집화와 이상치 탐지는 다른 것으로 보이지만, 지금까지 많은 군집화 기반 이상치 탐지 기법이 개발되었다.  

이 분야의 기법들은 근본 가정에 따라 세 종류로 나뉜다.

 

근본 가정에 따른 군집화 기반 이상 탐지 기법

  1. '정상치가 하나 또는 몇 개의 군집에 모여있고, 이상치는 군집에 속하지 않는다'는 가정인 경우이다. 
    이 가정을 바탕으로 한 기법은 모든 개체를 군집에 넣지 않아도 되는 DBSCAN, ROCK, SNN 군집화 등의 알고리즘을 활용한다. 
    그러나 이 기법들은 군집을 찾아내는 것이 주목적이므로 이상 탐지에 최적화되어 있지는 않다. 

  2. '군집의 중심 중 가장 가까운 것과 거리가 짧으면 정상값, 길면 이상값'이라고 가정한 경우이다.
    먼저 군집화를 하고 관측값이 포함된 군집의 중심과 관측값 사이 거리를 이상 점수로 놓는 것이 기본 과정이다.
    이 가정을 바탕으로 한 기법은 Self-Organizing map(SOM), k-Means Clustering, EM algorithm 등이 존재하며, 훈련 데이터를 군집화하고 테스트 데이터를 군집과 비교해 이상 점수를 얻는 방식으로 준지도 학습 방법이 될 수 있다. 
    그러나 이 기법들은 이상값들이 군집을 이룰 때 성능이 떨어진다.  


  3. '정상값은 크거나 조밀한 군집에, 이상값은 작거나 희소한 군집에 속한다'라고 가정한 경우다.
    관측값이 속한 군집의 크기나 밀도가 이상 여부를 판단하는 기준이 된다. FindCBLOF(Find Clustering-Based Local Outlier Factor)에서는 관측값이 속한 군집의 크기 및 관측값과 그 군집의 중심 사이의 거리를 반영하는 방법이다. 

 

이렇게 여러 군집화 기반 이상 탐지 기법이 있는데, 이런 이상 탐지 기법은 한 쌍의 관측치들 간의 거리 계산이 필요하다. 
거리 계산이 필요하다는 점에서 NN 기반 이상 탐지 기법과도 유사하지만 군집화 기반 이상 탐지 기법이 자신이 속한 군집과 관련하여 각 관측치를 평가하는 반면, NN 기반 이상 탐지 기법은 가까이 존재하는 로컬 이웃에 대해 각 관측치를 분석한다는 차이점이 있다. 

 

군집화 기반 기법의 장단점은 아래와 같다.

  • 장점
    • 비지도 학습 방법이다.
    • 적당한 군집화와 알고리즘만 있다면 복잡한 자료도 다룰 수 있다. 
    • 테스트 과정이 빠르다.  
  • 단점
    • 모델 성능은 군집화 알고리즘이 정상 관측값의 군집을 얼마나 잘 잡아내는지에 달렸다. 
    • 대부분의 알고리즘 목적은 군집화이다. 이상 탐지를 위해 개발된 알고리즘이 아니다. 
    • 이상값이 군집을 이루는 경우 극도로 취약해지는 기법들이 존재한다. 
    • 다수의 군집화 알고리즘이 모든 관측값의 군집을 지정하기 때문에 이상값이 큰 군집에 들어가 정상값으로 판단될 수 있다.  

 

 

통계적 기법

근본적 원칙은 '이상치가 가정된 확률 분포에서 생성되지 않아 부분 또는 완전히 동떨어졌다고 여겨지는 관측값'이다. 또한, '이상치는 확률 분포에서 낮은 영역에서 나타난다'라고 가정한다. 

 

통계적 기법은 주어진 데이터로 모델링을 수행한 후 통계적 추론을 통해 새로운 관측값이 그 모형을 따르는지 판단하는데, 검정 통계량을 바탕으로 학습된 모형으로부터 생성되었을 확률이 낮은 관측값을 이상치로 본다. 이때 분포의 형태를 미리 알고 있다고 가정하고 모수를 추정하는 모수적 기법과 분포에 대한 가정이 없는 비모수적 기법을 모두 적용할 수 있다.

  • 모수적 기법
    분포의 종류에 따라 나뉜다. 
    • 정규분포 기반
      데이터가 정규분포를 따른다는 것을 가정하고, 모수는 최대가능도 추정량(MLE)을 사용한다. 
      관측값과 추정된 평균 사이의 거리가 이상 점수가 되고, 이상 점수의 경계를 정하고 이상값 여부를 판단한다. 

    • 회귀모형 기반
      시계열 데이터에 대해 널리 연구되었다. 
      기본적인 원리는 데이터에 회귀 모형을 적합한 후 그 모형에 대한 테스트 관측값의 잔차로 이상 점수를 산출한다. 
      잔차란 회귀 모형으로 설명되지 않는 부분을 뜻한다. 

    • 혼합 모수적 모형 기반
      데이터에 모수적 분포들을 혼합한 모형을 이용한다. 
      이때, 두 부분으로 나눌 수 있는데 하나는 정상값과 이상값에서 서로 다른 분포를 부여하는 방법이고, 다른 하나는 정상값에만 혼합 분포를 주는 방법이다. 
      첫 번째 방식은 테스트 과정에서 관측값이 정상값 분포와 이상값 분포 중 어디에 속하는지를 결정하고, 두 번째 방식은 정상값의 혼합 모형을 구하고 어떠한 모형도 따르지 않는 관측값을 이상값으로 판단한다. 

  • 비모수적 기법
    모델의 구조를 사전에 결정하지 않고 데이터를 통해 구한다. 
    모수적 방법보다는 일반적으로 가정이 적다는 것이 특징이다. 
    • 히스토그램 기반
      히스토그램은 정상 데이터의 분포를 살피는 가장 간단한 기법이라고 할 수 있다. 특히, 침입 탐지 및 사기 탐지와 같이 프로필이 데이터의 행동적 속성을 제한하는 분야에서 유용하다고 알려져 있다. 

      훈련 데이터로 히스토그램을 생성한 뒤 테스트 관측값이 유의미한 구간에 포함되면 정상, 아니면 이상으로 판단하는 방법으로 이때 관측값이 포함되는 구간의 빈도를 바탕으로 이상 점수를 구하기도 한다. 

      여기서 중요한 점은 구간의 폭을 적절하게 결정하는 것이다. 
      폭이 너무 작으면 정상값이 빈 구간에 들어가 이상으로 판단되어  False Alarm Rate(거짓 경보율)가 높아지고, 너무 크면 이상값도 의미 있는 구간에 포함되어 False Negative Rate(거짓 부정률)가 높아다. 

      데이터가 다변량이면 각 변수에 대한 히스토그램으로 이상 점수를 구한 뒤 합산하여 총 이상 점수를 구하는 방법이 일반적이다.  

    • 커널 함수 기반 
      커널 함수를 이용한 Parzen window 방법이 존재한다. 
      커널 함수 기반 기법은 모수적 기법과 매우 유사하고, 유일한 차이는 사용하는 밀도 함수 추정 기법에 있다.    

 

통계적 기법의 장단점은 아래와 같다. 

  • 장점
    • 분포에 대한 가정이 맞다면 통계적으로 적합한 모델을 확보할 수 있다. 
    • 이상 점수를 구하는 과정에서 신뢰 구간과 같이 의사 결정에 도움이 될 추가 정보를 얻는다. 
    • 분포 추정이 이상값에 대해 Robust(건장하다)하면 비지도 학습이 가능하다. 
  • 단점
    • 데이터가 특정 분포를 따른다는 가정이 성립하지 않을 때가 많고 고차원일 때 더욱 심해질 수 있다.
    • 적절한 가설 검정 통계량을 결정하는 일이 까다롭고 분포가 복잡하다면 가설을 세우기 어렵다. 
    • 히스토그램으로는 변수 사이의 교호작용을 확인할 수 있다.
      • 어떤 관측값이든 두 변수에서 전체 데이터에 대해 흔한 값을 가지더라도, 조합을 하게 되면 매우 드문 값을 보일 경우 히스토그램 기반 기법은 감지하지 못한다. 

 

스펙트럴 기법

최근 다양하게 적용되고 있는 기법이다. 변수들의 조합으로 자료의 변동을 대부분 설명하도록 자료를 근사한다. 

데이터를 더 낮은 차원의 부분 공간(Subspace)으로 보내면(Embed), 그 공간에서는 정상과 이상이 확연히 구분된다는 가정을 전제로 한다. 

 

주로 사용하는 기법이 주성분 분석(PCA)이다.
데이터를 저 차원 공간으로 사영시켰을 때, 데이터의 상관구조를 만족하는 정상개체는 사영값이 낮고, 상관구조를 벗어난 이상개체는 높은 값을 보이게 되는 방식으로 고차원 데이터 처리에 적합하다. 

 

 

시계열 데이터 이상치 탐지

시계열 데이터에서의 이상 유형은 contextual anomalies(문맥적 이상 현상)가 자주 발견된다. 그래서 이상 탐지는 전후 사례와 문맥을 같이 고려해야 한다. 

 

 

시계열 데이터 이상의 유형

  • Ponit Anomalies
    첫 번째 그림에 해당되며 개별적인 데이터 instance(사례)가 다른 데이터의 범주와 많이 벗어나는 경우다. 
  • Contextual Anomalies 
    두 번째 그림에 해당되며 instance(사례) 그 자체로는 다른 데이터의 값의 범주에서 벗어나지 않지만 특정한 context(문맥)에서 변칙적으로 여겨지는 경우다. 

  • Collective Anomalies
    세 번째 그림에 해당되며 데이터 집합이 전체 데이터 집합과 비교하여 다른 유형인 경우다.

 

 

시계열 데이터 이상치 탐색 기법

STL Decomposition

Loess(Local regression)에 기반한 Seasonal-trend decomposition(계절별 추세 분해)이다. 

 

Loess(Local regression)이란 변동성이 존재하는 시계열을 평활화하기 위해 일반적으로 사용하는 방법 중 하나로 전체 데이터 중의 국소 부분에 최소자승회귀를 적용하는 비모수적 방법을 통해 수치 벡터들을 평활하기에 적합한 방법이다. 

STL Decomposition은 시계열 데이터를 3개의 파트인 seasonal(계절적), trend(추세), residue(잔류물)로 분해할 수 있다. 

간단하고 robust 하며 다양한 상황에 적용이 가능하다. 또한, 모든 이상치들을 직관적으로 해석이 가능하고  Additive outliers(첨가적 이상치)를 탐지하는 데 좋다. 다만, 데이터의 특성이 급격히 변할 때 잘 작동하지 않는다. 

 

 

SH-ESD

Seasonal Hybrid ESD(Extreme Studentized Deviate)의 줄임말로 STL을 사용해 seasonality(계절성)과 trend(추세)의 영향을 제거한 후 MAD, Grubb's test 등을 사용한다. 

  • MAD(Median Absoulte Deviation)
    관측값에서 중앙값을 뺀 값들의 중앙값으로 표본분산보다 이상치에 덜 영향을 받는 분산 측정 방법이다. 

  • Grubb's test(ESD test)
    데이터 세트 안에 하나의 이상치 유무를 판별하는 데 사용된다. 
    실시하기 위한 선행 조건으로 데이터 세트는 정규 분포 곡선이어야 하며 최소 7개의 데이터가 있어야 한다. 
    즉, 정규 분포를 따르는 데이터에서 하나의 이상치를 발견할 수 있는 검정 방법인 것이다. 

  • Generalized ESD(Maximum normed residual test 또는 Extreme studentized deviate test)
    조금 길에 풀어쓰면 “Generalized Extreme Studentized Deviate Test”으로 하나의 이상치를 찾는 방법이다. 
    원래 명칭은 Grubbs’ test for outliers이다. 

    Generalized ESD는 여러 개의 이상치를 가정한 검정 방법으로 정규성을 가정하고 있기 때문에 정규성 테스트를 먼저 해야 하고, 계절성을 고려하지 않아 STL을 먼저 수행한 후 사용 가능하다. 

ARIMA(Auto-regressive Integrated Moving Average)

AR(Auto-regressive)과 MA(Moving Average)을 합친 것으로 시계열 데이터의 정상성(Stationary)을 가정한다. 

 

위의 말을 좀 더 쉽게 이해하기 위해 단어별 설명을 하자면 아래와 같다. 

  • AR이란 자기 회귀 모델로 과거 시점의 자기 자신의 데이터가 현시점의 자기 자신에게 영향을 미치는 모델이다. 
  • MR이란 이동 평균 모델이라고 불리며, 트렌드 즉, 추세가 변하는 상황에 적합한 모델로 예측 오차를 이용해 미래를 예측하는 것이다. 
  • 정상성이란 평균, 분산이 시간에 따라 일정한 성질을 말하는 것으로 시계열 데이터의 특성이 시간의 흐름에 따라 변화하지 않는 것을 의미한다. 

ARIMA는 차분한 데이터에 AR과 MA를 합친 것인데, 차분이라는 개념을 통해 non-stationary(비정상적)한 상황에서 좀 더 나은 예측을 하는 것이 목표다. 여기서 차분이란 현재 상태에서 바로 이전 상태를 빼주는 것을 의미하여, 차분을 거친 결과들이 whitening(미백)되는 효과를 가져온다. 

 

ARIMA는 과거의 point들을 통해, 다음 point의 예측에 white noise라고 불리는 확률 변수를 더해 예측을 생성한다. 이렇게 예측된 point들은 다시 다음 point 예측에 auto-regressice 하게 이용된다. 그리고 Signal의 adjusted series(조정된 시리즈)를 만들어 original series와 비교해 이상치를 탐지한다. Signal은 차분 후에도 정상성을 유지해야 한다. 

 

 

Exponential Smoothing

ARIMA와 유사하게 Trend, Level, Seasonality를 활용하지만, 최근의 결괏값에 더 큰 가중치를 준다거나 줄일 수 있다. 

 

Exponential Smoothing 모델 종류는 아래와 같다. 

  • Single Exponential Smoothing 모델
    단순하게 Trend, Level만 참조하는 모델이다. 

  • Holt-Winters 모델
    Trend, Level, Seasonality를 같이 고려하는 모델이다.
    Brutlag 알고리즘으로 신뢰구간을 계산하여 정상치와 이상치를 구별할 수 있다.
    • Brutlag 알고리즘은 Holt-Winters 모델의 추가 기능으로 실제 관측치를 상한대와 하한대의 두 가지 한계를 포함하는 대역 내에 배치한다. 그리고 관측치가 정상치인지 이상치인지를 판별하는 알고리즘이다. 

      Brutlag 알고리즘의 장점은 계절성, 추세 및 과거 데이터 수준을 고려해 관측치가 이상치인지 아닌지를 판별하며, 비즈니스 분석가가 대역폭의 크기를 결정하도록 해 변동이 발생할 수 있는 부분을 시각적 허용 영역으로 제공한다.  

 

 

Classification and Regression Trees(CART)

가장 널리 사용되는 의사결정나무 알고리즘으로 머신러닝 기법 중 가장 robust 하고 효과적인 기법 중 하나다. 

실제 데이터 그래프와 예측 그래프의 편차가 큰 부분을 이상치로 판단한다. 또한 많은 특성 변수들을 학습해 더욱 정교한 모델을 얻을 수 있다. 

 

 

LSTM 기반 이상탐지

시계열 데이터의 과거값들을 이용해 한 단계 바로 뒤의 값들을 예측할 수 있도록 모델을 학습하고 오차 벡터를 계산해 다변량 가우스 분포를 오차 벡터에 적합시킨다. 예측값과 실제값의 오차가 가우스 분포의 끝 부분에 위치해 있다면 이상치로 판단하는 방식이다. 

 

이때, 분포 내 예측과 오차에 대한 희소한 양을 표시하기 위해 마할라노비스 거리를 사용한다. 

 

 

LSTM-Autoencoder

Autoencoder는 비정상 데이터가 거의 없거나, 존재하지 않는 상황에서도 적용시킬 수 있는데, 기존의 Autoencoder는 시간적 특성을 담을 수 없으므로 LSTM 층을 이용해 Autoencoder를 구성한다.  

 

이상치 데이터가 모델에 입력되면 복원 에라가 굉장히 높게 나온다. 그럼에도 산출한 에러를 그대로 사용하면 정상적인 경우 에러값이 급격하게 증가하는 경우가 발생하기 때문에 EWMA(Exponentially Weighted Moving Average, 지수가동이동평균)를 사용해 smoothing 후 사용해야 한다.   

 

 

 

이상치 탐지 코드 공부

https://github.com/DIB-PP/Machine-Learning

 

GitHub - DIB-PP/Machine-Learning

Contribute to DIB-PP/Machine-Learning development by creating an account on GitHub.

github.com

 

 

 

 

 

 

참고 자료