시계열 데이터 증강 - 주파수 영역 (Time Domain)
시계열 데이터에서 가장 간단하게 접근할 수 있는 데이터 증강 방법입니다. 여기서는 원래의 시계열 데이터에 가우시안 노이즈, 스파이크, 계단형 추세, 경사형 추세와 같은 복잡한 노이즈 패턴을 추가합니다. 그리고 이러한 변환을 통해 데이터를 보다 다양화할 수 있습니다.
Time domain 의 가장 직관적인 방법이기 떄문에 많이 사용됩니다. 6가지 기법에 대해서 설명 하겠습니다.
1. Window cropping : 불필요한 부분 다듬기
Cropping 은 사진·삽화의 불필요한 부분을 다듬는 다는 의미입니다. 시계열 원본 데이터에서 Random 하게 연속적인 일부분을 잘라내어 여러 개의 데이터로 만드는 방법으로 이미지 데이터를 랜덤하게 잘라내어 증강하는 방법과 유사합니다.
Window cropping과 TS2Vec 알고리즘
Window cropping은 시계열 데이터에서 작은 부분을 잘라내어 사용하는 데이터 증강 및 전처리 기법입니다. TS2Vec 알고리즘은 시계열 데이터의 특징을 자동으로 학습하는 표현 학습 기법으로, 시계열 데이터에서 의미 있는 패턴을 추출하여 벡터 형태로 변환합니다. Window cropping은 TS2Vec 알고리즘과 함께 사용될 수 있으며, TS2Vec이 학습 과정에서 다양한 크기와 위치의 윈도우를 통해 데이터의 로컬 및 글로벌 패턴을 더 잘 이해하고 표현할 수 있도록 돕습니다.
2. WIndow warping : 뒤틀기
Warping 은 다른 모양으로 비틀거나 구부린다는 의미입니다. WIndow warping 은 랜덤한 범위의 시간 동안의 값들을 압축하거나 확장하여 모양이 뒤틀어지게 만듭니다. 선택된 구간의 데이터 포인트들을 압축하거나 확장하여 원래의 시간 축에 비해 빠르거나 느린 속도로 표현합니다. 결과적으로, 이 구간의 데이터 포인트들이 시간 축에 따라 늘어나거나 줄어들면서 모양이 변형되어 마치 '뒤틀린' 형태를 띠게 됩니다. 이러한 변형을 통해 데이터의 다양성을 증가시키고, 시계열 모델이 다양한 시간적 변화에 대응할 수 있도록 돕습니다.
Window warping과 Dynamic Time Warping(DWT)의 차이점
Window warping과 Dynamic Time Warping(DWT)은 유사하다고 생각할 수 있지만 다른 점이 있습니다.
Window warping은 시계열 데이터의 특정 구간을 선택하여 그 구간을 압축하거나 확장함으로써 데이터의 시간 축을 변형하는 방법입니다. 반면, Dynamic Time Warping은 두 시계열 데이터 간의 유사도를 측정하여, 시계열 간의 패턴이 일치하도록 시간 축을 비틀어 매칭하는 방법입니다. DTW는 주로 두 시계열 간의 최적의 정렬을 찾는 데 사용되며, 시계열의 길이가 서로 다를 때 유용합니다.
Window warping 으로 확장을 하는 경우에 데이터 불균형 문제를 해결하기 위한 업샘플링을 할 수 있습니다. 이 기법을 통해 특정 클래스의 시계열 데이터가 부족할 때, 기존의 시계열 데이터를 변형시켜 새로운 합성 시계열 샘플을 생성함으로써 해당 클래스의 데이터 양을 인위적으로 늘릴 수 있습니다. 이러한 방식으로 데이터셋 내의 각 클래스 간의 균형을 맞추고, 모델이 소수 클래스를 더 잘 인식하고 예측할 수 있도록 돕습니다.
업샘플링이란?
특정 클래스의 데이터가 다른 클래스에 비해 적은 경우, 적은 클래스의 데이터 양을 인위적으로 늘려, 클래스 간의 균형을 맞추는 과정입니다. 적은 클래스의 기존 데이터를 복제하거나, 데이터 증강 기법을 통해 새로운 데이터를 생성함으로써 수행될 수 있습니다. 업샘플링을 통해 모델이 소수 클래스를 더 잘 학습하고, 전체적으로 균형 잡힌 예측을 수행할 수 있게 됩니다.
3. Flipping : 뒤집기
Flip 은 홱 뒤집다, 공중제비 라는 의미입니다. Flipping 특정 지점이나 기준선을 기준으로 데이터를 뒤집는 기법입니다. 이상치 탐지 및 분류 문제에서 위 아래 대칭이 있다고 가정하면 레이블이 동일한 데이터가 만들어집니다. 특히, 데이터셋에 상하 대칭이라는 가정이 유효할 때 이 기법을 사용하면, 기존 데이터의 레이블을 유지하면서 데이터의 양을 늘릴 수 있습니다. 이는 모델이 대칭성을 가진 이상치를 더 잘 인식하고 분류하는 데 도움을 줄 수 있습니다. 그러나 모든 데이터셋에 이런 가정이 적용되는 것은 아니므로, flipping을 사용하기 전에 해당 데이터셋의 특성을 충분히 고려해야 합니다.
시계열 데이터를 반대로 뒤집어 새로운 시퀀스를 생성할 수 있습니다 예를 들어, 데이터가 상승하는 추세라면, 이를 뒤집어 하강 추세의 데이터셋을 만들 수 있습니다. 이 기법은 데이터의 방향성이 대칭적이라고 가정할 때 사용하며, 레이블은 그대로 유지됩니다.
4. Noise injection : 노이즈 주입
Noise injection은 데이터에 약간의 노이즈나 이상치를 추가하는 데이터 증강 기법으로, 기존 클래스를 변경하지 않으면서 데이터의 다양성을 높입니다. 이 기법에는 Spike, Step-like trend, Slope-like trend 세 가지 주요 유형이 있습니다:
Spike: 갑작스러운 값의 증가나 감소를 데이터에 추가하는 것으로, 짧은 기간 동안의 변동성을 모방합니다.
Step-like trend: 데이터에 계단 형태의 변화를 추가하여, 일정 기간 동안 값이 일정한 수준으로 뛰어오르거나 떨어지는 경향을 나타냅니다.
Slope-like trend: 점진적인 상승 또는 하강 경향을 데이터에 추가하여, 시간이 지남에 따라 변화하는 추세를 나타내는 경사를 모방합니다.
5. Label expansion : 레이블 확장
Label Expansion은 시계열 데이터에서 이상치 주변의 연관 데이터 포인트들에도 레이블을 확장하는 기법입니다. 이 방법은 이상치가 단순히 발견된 특정 지점에만 국한되지 않고, 그 이전과 이후의 데이터도 중요하다고 봅니다. 이상치 발견 시점 뿐만 아니라, 이상 현상이 시작되고 끝나는 시점까지 포함하여 더 넓은 데이터 범위를 이상으로 판단합니다. 이는 이상 현상의 전체적인 맥락을 파악하고, 보다 정확한 이상치 탐지를 가능하게 하는 기법입니다. Label Expansion은 이상 현상의 전체적인 맥락을 파악하고, 보다 정확한 이상치 탐지를 가능하게 합니다.
6. Perturbation(&Ensemble) : 교란(&앙상블)
Perturbation "교란"은 데이터에 작은 변화를 주어 다양성을 증가시키는 것을 의미하며, Ensemble "앙상블"은 여러 모델 또는 데이터셋을 결합하여 보다 강건한 결과를 도출하는 기법을 말합니다.
Perturbation & Ensemble은 먼저 다양한 증강 기법을 적용하여 시계열 데이터를 변형시킵니다. 그런 다음, Dynamic Time Warping(DTW)을 이용하여 모든 변형된 시계열 데이터의 길이를 원본 데이터의 시간 길이와 일치시킵니다. 이렇게 길이가 통일된 데이터들을 앙상블(ensemble)하여 결합하고, 이들의 평균값을 계산하여 최종적으로 증강된 데이터를 생성합니다. 이 방식은 데이터셋의 다양성을 향상시키고, 모델이 다양한 패턴과 변화에 더 잘 적응할 수 있도록 돕습니다.
이상으로 시계열 데이터 증강을 위한 시간 영역 (Time Domain)의 여러 기법들을 살펴보았습니다. 이러한 다양한 접근 방식은 시계열 데이터의 특성을 강화하고, 모델의 예측 능력을 향상시키는 데 큰 도움이 됩니다. 각 기법은 데이터의 다양성을 높이고, 이상치 탐지 및 분류 문제에 대한 모델의 강건함을 개선하는 데 특히 유용합니다. 이러한 기법들을 활용하여 보다 정교하고 효과적인 시계열 분석 모델을 개발할 수 있을 것입니다.
"AI 예측 지식 창고"에서는 수요 예측과 가격 예측을 위한 머신러닝 및 딥러닝 기법과 데이터 소스를 모아놓았습니다. 이 블로그는 데이터 과학과 인공지능의 최전선에서 활용되는 다양한 알고리즘과 모델링 접근법을 소개하며, 특히 파이썬 Package 나 아마존 AWS 알로리즘을 활용한 수요 예측 또는 가격 예측의 실전 개발에 필요한 실용적인 지식과 가이드를 제공합니다. 방문자들은 여기에서 딥 러닝 시계열 예측 또는 머신 러닝 시계열 예측을 하기 위해 복잡한 시장 데이터를 해석하고, 예측 모델을 구축하는 방법을 배울 수 있습니다. 그리고, 주식 가격 예측, 주택 가격 예측, 농산물 가격 예측, 여러 가지 수요 예측에 대한 사례를 소개하고 있습니다.
'데이터 전처리' 카테고리의 다른 글
시계열 데이터 증강 - 데이터 분해 방법 (Decomposition Methods) (0) | 2023.11.19 |
---|---|
시계열 데이터 증강 - 시간&주파수 영역 (Time&Frequency domain) (0) | 2023.11.19 |
시계열 데이터 증강 - 주파수 영역 (Frequency Domain) (0) | 2023.11.19 |
시계열 데이터 증감의 어려움과 기법들 (0) | 2023.11.18 |
데이터 증강의 정의와 목적 (0) | 2023.11.18 |