MACHINE LEARNING/Artificial Neural Network

TSC / Time series classification 시계열 분류 정리

24_bean 2023. 3. 10. 21:44

정의 (Definition)

 

Time Series Classification (TSC) : 시간의 흐름에 따라 측정된 데이터를 분류하는 문제를 다루는 기술.

 

시계열 데이터(Time Series)는 시간에 따라 값이 변화하는 데이터를 일컫는 말이다.

일정한 시간 간격으로 샘플링된 데이터를 말한다. 가령, 주식 시장에서 주식 가격을 일정한 간격으로 측정한 데이터나, 센서에서 측정한 온도나 진동 데이터 등이 시계열 데이터의 예시로 볼 수 있다.

 

이때 시간은 일정한 간격으로 측정될 수도 있고, 불규칙적인 간격으로 측정될 수도 있다.

 

시계열 데이터(Time Series)는 일반적으로 다음과 같은 특징을 갖는다.

 

 

  • 시간에 따라 측정된 값이 변화한다.
  • 값의 변화는 시간적인 관계에 따라서 발생한다.
  • 일반적으로 이전 시간에 측정된 값이 다음 시간에 측정된 값에 영향을 준다.
  • 시계열 데이터의 길이는 고정되어 있지 않을 수 있다.

 

 

시계열 데이터는 분석 목적에 따라 전처리가 필요할 수도 있다.

전처리의 예시로는 Outlier detection(이상치 처리), data scaling 등이 있을 수 있다.

 

시계열 데이터는 다양한 분석 기법이 적용될 수 있는데, 대표적인 예로 Pattern analysis, Time Series Prediction, Clustering, Classification 등이 있다.

 

또한, 딥러닝 기법이 적용될 수도 있는데 RNN(Recurrent Neural Network)나 CNN(Convolutional Neural Network) 모델 등을 활용하여 시계열 예측, 분류, 패턴 파악등의 task를 수행할 수 있다.

 


전처리 (Preprocessing)

 

시계열 데이터를 처리하기 위해 사용되는 유용한 전처리 기법들은 다음과 같다.

 

  • 데이터 정규화(Normalization)
    • 데이터의 값 범위(scale)가 큰 경우 모델의 학습에 부정적인 영향을 줄 수 있다. 이를 방지하기 위해 데이터의 값을 특정 범위로 조정하는 방법입니다. 대표적인 방법으로는 Min-Max Scaling이 있다.

 

  •  이동 평균(Moving Average)
    • 시계열 데이터의 노이즈를 제거하거나 주기성을 파악하기 위해 사용할 수 있는 방법이다. 이동 평균은 이전 시점에서 일정 개수의 데이터의 평균값을 구하여 현재 시점의 값을 대체하는 방법이다.

 

  • 차분 (Differencing)
    • 시계열 데이터에서 차분은 이전 시점과의 차이를 구하여 시계열 데이터의 추세(Trend)나 주기성(Cycle)을 파악하는 방법이다. 차분을 통해 추세나 주기성을 제거하거나 분석에 활용할 수 있다.

 

  • 푸리에 변환(Fourier Transform)
    • 시계열 데이터에서 주기성을 분석할 때 활용할 수 있는 방법이다. 푸리에 변환은 시계열 데이터를 주파수 영역으로 변환하여 주파수 영역에서의 주기성을 파악하는 방법이다.

 

  • Wavelet 변환 (Wavelet Transform)
    • 시계열 데이터에서 시간과 주파수를 동시에 분석할 때 활용할 수 있는 방법이다. Wavelet 변환은 시계열 데이터를 시간과 주파수 영역으로 분해하여 분석하는 방법이다.

 

  • LSTM (Long Short-Term Memory)
    • 계열 데이터에서 RNN(Recurrent Neural Network) 기반의 모델 중에서도 LSTM은 시계열 데이터의 장기 의존성(Long-Term Dependency)을 학습할 수 있는 모델이다. LSTM은 데이터 전처리 없이도 다양한 패턴을 학습할 수 있는 모델이다.

 

 

위와 같은 전처리 기법을 활용하여 시계열 데이터의 특징을 추출하고 모델 학습에 활용할 수 있다.

 

Time Series Transformation Reference: : https://otexts.com/fpp2/transformations.html

 

3.2 Transformations and adjustments | Forecasting: Principles and Practice (2nd ed)

2nd edition

otexts.com

 


모델

기존의 머신러닝 모델로도 충분히 학습이 가능하고 간단한 task의 경우 유의미한 결과 도출이 가능하다.

 

하지만 딥러닝이 대부분 가장 좋은 성능을 내놓기 때문에 이를 위주로 설명하면 참고할 모델은 다음과 같다.

 

  • CNN (Convolutional Neural Network)
    • image classification에서 매우 좋은 성능을 보이는 모델이다. CNN을 활용하여 시계열 데이터를 이미지 형태로 변환하면 시계열 데이터의 Local pattern을 찾아내는 등 특징을 추출하여 분류하는 데 좋은 성능을 보인다.

 

 

 

  • LSTM (Long Short Term Memory)
    • LSTM은 시계열 데이터의 장기 의존성(Long-Term Dependency)을 학습할 수 있는 모델입니다. LSTM은 다양한 패턴을 학습할 수 있어 시계열 데이터 분류에 활용됩니다.
    • CNN에 비해 Long Term Pattern 파악에 용이하다.

 

 

 

  • Time Series Transformer (TST)
    • Transformer 모델을 시계열 데이터 분류 문제에 적용한 모델이다.
    • TST는 시계열 데이터를 여러 개의 패턴으로 분할하고 각 패턴을 Transformer block(scaled dot-product attention units)으로 처리한다.
    • UCI time series dataset에서 좋은 성능을 보인다.

  • Temporal Fusion Transformer (TFT)
    • TST와 마찬가지로 Transformer 모델을 적용한 모델로 예측(Prediction)에 활용된다.
    • TFT는 시계열 데이터의 다양한 특징(주기성, 추세 등)을 고려하여 예측한다.

 

 

  • Deep Transformer-based Encoder Decoder network (DT-ED)
    • DT-ED 또한 Transformer 모델이 적용된 예시이다.
    • DT-ED는 시계열 데이터를 Encoder-Decoder 구조로 처리한다.
    • 기존의 Auto-Encoder와 유사하다
      • Encoder : 입력 데이터의 특징을 추출
      • Decoder : 추출된 특징을 바탕으로 다음 값 예측

 


특징

 

시계열 데이터(Time Series Data)는 데이터셋에 따라 모델 성능이 크게 달라질 수 있다.

 

시계열 데이터의 대표적인 특징은 다음과 같다.

 

  • 길이 (Length)
    • 시계열 데이터의 길이가 길수록, 모델이 학습하기 어려워진다.
    • 데이터셋의 길이에 따라 모델의 구조를 조절해야한다.

 

  • 주기성 (Seasonality)
    • 시계열 데이터에는 주기성(Cycle)이나 계절성(Seasonality)이 포함되어 있는 경우가 많다.
    • 모델이 주기성이나 계절성을 고려할 수 있도록 구성해야 한다.

 

  • 추세 (Trend)

 

  • 이상치 (Outlier)

 

  • 주기 (Cycle)
    • 예시 : 일일 데이터 = 일주일, 월별 데이터=1년, 5년 등..
    • 주기에 따라 모델 구조를 조절해야 한다.

 

즉, 데이터셋의 형태에 따라 모델의 구조(Architecture)나 하이퍼파라미터(Hyperparameter)를 조절해야한다.

 

또한 데이터셋에 대한 선행적인 분석과 전처리 과정을 거쳐야 한다.