2
$\begingroup$

I am learning Hidden Markov Model and its implementation for Stock Price Prediction. I am trying to implement the Forward Algorithm according to this paper.

enter image description here

Here I found an implementation of the Forward Algorithm in Python.

import pandas as pd import numpy as np V = np.array([0, 1, 1, 2, 0, 1, 2, 0, 1, 0, 2]) # Transition Probabilities a = np.array(((0.54, 0.46), (0.49, 0.51))) # Emission Probabilities b = np.array(((0.16, 0.26, 0.58), (0.25, 0.28, 0.47))) # # Equal Probabilities for the initial distribution pi = np.array((0.5, 0.5)) def forward(V, a, b, pi): alpha = np.zeros((V.shape[0], a.shape[0])) alpha[0, :] = initial_distribution * b[:, V[0]] for t in range(1, V.shape[0]): for j in range(a.shape[0]): alpha[t, j] = alpha[t - 1].dot(a[:, j]) * b[j, V[t]] return alpha alpha = forward(V, a, b, pi) 

But it seems to me that it does not include (c) and (d) steps from the algorithm. So I added them:

def forward(V, a, b, pi): p = 1 alpha = np.zeros((V.shape[0], a.shape[0])) alpha[0, :] = pi * b[:, V[0]] for t in range(1, V.shape[0]): probability_of_observation = 0 #my code for j in range(a.shape[0]): alpha[t, j] = alpha[t - 1].dot(a[:, j]) * b[j, V[t]] probability_of_observation += alpha[t, j] #my code p = p * probability_of_observation #my code return p #changed p = forward(V, a, b, pi) #changed 

Does my code coincide with the given algorithm?

$\endgroup$
1
  • $\begingroup$I am trying to do the exact thing as you (building an hmm from scratch). Is your code the complete algorithm?$\endgroup$CommentedJul 22, 2022 at 15:04

1 Answer 1

0
$\begingroup$

Maybe this python library could help you: hmmlearn

When I tried to build an hmm I used it and it worked well.

$\endgroup$
1
  • $\begingroup$thank you for your answer! I am reviewing research paper and I need to understand the algorithm how it works. For me it is hard to understand the algorithm as mathematical notation. That's why I am trying to implement it in Python. If I use the library, I do not understand how the algorithm works.$\endgroup$CommentedMay 13, 2020 at 18:02

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.