AI/Time series

[시계열 데이터 이미지 인코딩] 2. Markov Transition Field(MTF) 개념 및 적용

daeunnniii 2024. 11. 25. 22:30
728x90
반응형

1. Markov Transition Field(MTF)란?

  • Markov Transition Field (MTF) 알고리즘은 이산화한 시계열 데이터의 전이 확률을 나타내는 알고리즘이다.
  • N개의 Time Series 데이터가 있다고 가정한다.
  • Time Series 데이터를 분위수를 활용하여 Q+1 bin으로 이산화한다.
  • 아래 과정을 통해 상태 전이 행렬을 구한다. 즉, Markov model은 상태 전이 행렬(state transition matrix)을 만들기 위한 것이다.
    • 상태 전이 행렬은 어떤 상태가 시간에 따라 어떻게 변화하는지 나타낸 것
    • $w_{ij} = P(x_t = j | x_{t-1} = i)$
    • i 상태로부터 j 상태로 전이하는 확률을 $W_{ij}$라고 한다.
    • 위 확률을 최대우도추정법(maximum likelihood)를 이용해서 구한다.
    • i에서 j로 전이된 횟수를 i 상태에 있던 총 개수로 나눈 것이 $w_{ij}$ 이다.
    • 💡 전이행렬(마코브행렬)
      • 각 성분이 확률로 정의되어있고, 하나의 열의 모든 값을 더하면 1이 되는 행렬
    • 분위수는 상태 개수를 말하고, Q개의 분위수가 있으면 행렬 A는 Q x Q 행렬이 만들어진다.
      • 즉, 1분위수에서 3분위수로 전이될 확률, 1분위수에서 4분위수로 전이될 확률 등 각 분위수에서 다른 분위수로 전이될 확률들이 모두 담긴 Q x Q 행렬이 만들어진다.
  • Markov Transition Field(MTF)는 아래 식으로 구한 N x N 행렬이다.
    • $W_{ij} = X_{q_i q_j}$
    • $q_{i}$는 $x_i$가 속한 분위수, $q_j$은 $x_j$가 속한 분위수를 의미한다.
    • $w_{ij}$는 상태 i에서 상태 j로 전이될 확률을 말함.
    • $w_{ij}$는 $x_i$가 속한 분위수에서 $x_j$가 속한 분위수로 전이될 확률을 말함.

2. Markov Transition Field(MTF) 적용

  • Sin & Cos 그래프 예시
from pyts.image import MarkovTransitionField
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))

mtf = MarkovTransitionField(image_size=10)
mtf_matrix = mtf.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(mtf_matrix[0], cmap='rainbow', origin='lower')
plt.title('Markov Transition Field')
plt.xlabel('Time')
plt.ylabel('Time')
plt.colorbar()

plt.tight_layout()
plt.show()

결과

728x90
반응형