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
반응형
'AI > Time series' 카테고리의 다른 글
[시계열 데이터 이미지 인코딩] 1. Gramian Angular Field (GAF) 개념 및 적용 (0) | 2024.11.24 |
---|