728x90
반응형
1. Gramian Angular Field (GAF) 이란?
- Gram Matrix: 각 시점 간의 시간적 상관관계를 극좌표를 기반으로 표현하는 알고리즘 ($G = X^TX$)
- 서로 다른 모든 벡터들에 대해 유사도를 나타내는 행렬이라고 볼 수 있다.
- cosine similarity와 비슷하게 값이 1에 가까우면 유사도가 높고, 0이면 유사도가 없고, -1이면 정반대의 유사도를 가진다.
- 극좌표 기반 행렬은 시계열 데이터를 이미지로 변경할 때 시간 상관관계를 보존할 수 있다는 장점이 있다.
1. Time Series 데이터를 -1~1까지로 정규화를 한다.
- 시계열 데이터의 작거나 큰 다양한 범위들을 [-1, 1] 혹은 [0, 1] 구간으로 정규화시킨다.
2. 정규화된 Time Series 값을 극좌표계(poloar coordinate)로 변환한다.
- 극좌표계: 평면 위의 위치를 각도와 거리를 써서 나타내는 2차원 좌표계
- (x, y)를 (r, $\phi$)에 대해 표현. 아래 이미지에서는 $(rcos\phi, rsin\phi)$
- 데이터 i번째의 반지름은 $t_{i}$(t는 timestamp를 자연수로 나타낸 값)를 데이터 개수 N으로 나눈 것
3. 내적 진행해서 Gram Matrix를 만든다.
- GAF는 내적을 특별하게 정의한다.
$<x_1, x_2> = cos(\phi_1 + \phi_2) = \cos(\arccos(\widetilde{x}{1}) + \arccos(\widetilde{x}{2}))$
- 수포자도 아래 그림을 보면 수월하게 이해할 수 있다.
- 아래와 같이 반지름이 1인 원을 예시로 보면, $cos(\phi)=x$ 이고, 우리는 현재 $\phi$가 아닌 $x$ 값을 알고 있으므로 이를 역함수로 나타내면 \phi=arccos(x) 이다. 따라서 $cos(\phi_1 + \phi_2)$를 정규화된 신호인 $\tilde{x}$를 사용하여 $\cos(\arccos(\widetilde{x}_{1}) + \arccos(\widetilde{x}_{2}))$ 로 표현할 수 있다.
- 결론적으로 TIme Series X로부터 Gram Matrix를 구하는 과정인데, X 대신 \widetilde{X} 를 사용하고 내적 대신 새롭게 정의한 내적을 사용하여 Gram Maxtrix를 구한다.
추가로,
2. Sin & Cos 그래프 예시
from pyts.image import GramianAngularField
import matplotlib.pyplot as plt
n_samples = 100
time = np.linspace(0, 2 * np.pi, n_samples)
sin_wave = np.sin(time)
cos_wave = np.cos(time)
data = np.vstack((sin_wave, cos_wave))
gaf = GramianAngularField(image_size=n_samples, method='difference')
gaf_matrix = gaf.fit_transform(data)
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.plot(range(n_samples), sin_wave, label='Sin Wave')
plt.plot(range(n_samples), cos_wave, label='Cos Wave')
plt.title('Original Data')
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.legend()
plt.subplot(1, 2, 2)
plt.imshow(gaf_matrix[0], cmap='rainbow', origin='lower')
plt.title('Gramian Angular Field')
plt.xlabel('Time')
plt.ylabel('Time')
plt.colorbar()
plt.tight_layout()
plt.show()
결과
728x90
반응형
'AI > Time series' 카테고리의 다른 글
[시계열 데이터 이미지 인코딩] 2. Markov Transition Field(MTF) 개념 및 적용 (0) | 2024.11.25 |
---|