I am trying to predict the state of rain based on observed rainfall in centimeters. The three states are ' little rain' 'some rain' and 'a lot of rain'. For the prediction, when I enter the amount of rainfall, I am getting an error below. Can someone please help as to how to fix this? Thank you!
from pomegranate import *
d1 = UniformDistribution(0, 0.5) # distribution for state 1 (no rain)
d2 = UniformDistribution.from_samples([0.73, 0.77, 0.4]) # distribution for state 2 (some rain)
d3 = UniformDistribution(1.5, 2) # distribution for state 3 (a lot of rain)
s1 = State(d1, name='little rain')
s2 = State(d2, name='some rain')
s3 = State(d3, name='a lot of rain')
model = HiddenMarkovModel()
model.add_states(s1, s2, s3)
model.add_transition(model.start, s1, 0.5)
model.add_transition(model.start, s2, 0.5)
model.add_transition(s1, s1, 0.89)
model.add_transition(s1, s2, 0.10)
model.add_transition(s1, model.end, 0.01)
model.add_transition(s2, s1, 0.1)
model.add_transition(s2, s2, 0.9)
model.add_transition(s2, s3, 0.9)
model.bake()
seq = numpy.array([1.2, 0.4, 0.75]) # amount of rainfall observed 3 days
hmm_predictions = model.predict(seq)
print(hmm_predictions) # Should predict which state the rain fall is in
Error:
Warning: Sequence is impossible.
[-1, -1, -1]