我正在尝试使用高斯 HMM 预测股市。我没有得到模型训练后如何完成预测步骤。我不明白准确预测最可能的状态序列如何有助于预测未来价值。
提出的问题之一建议使用这种方法:“使用带有(部分)序列的维特比算法来获得最可能的隐藏状态序列。获取该序列中最后一个隐藏状态的发射分布并预测例如该序列的平均值分布(通常是高斯分布)。”
在预测最可能的状态序列后,我没有得到他所说的。
hmmlearn
我已经使用python 中可用的函数训练了我的模型。我还在样本上应用了 Viterbi 算法来预测可能的隐藏状态序列。但我不知道在那之后该怎么办。我不擅长连续 HMM 的数学。请告诉我预测是如何完成的。
代码:
import numpy as np
from hmmlearn import hmm
import pandas as pd
np.random.seed(42)
model = hmm.GaussianHMM(n_components=3, covariance_type="full",algorithm='viterbi')
model.startprob_ = np.array([0.3,0.4,0.6])
model.transmat_ = np.array([[0.7, 0.2, 0.1], [0.3, 0.5, 0.2], [0.3, 0.3, 0.4]])
model.means_ = np.array([[0.0], [3.0], [5.0]])
model.covars_ = np.tile(np.identity(1), (3, 1, 1))
df = pd.read_csv("HistoricalQuotes.csv")
Y = df['close'][2:40]
Y = Y[::-1]
X = np.array(Y)
X = np.reshape(X, (-1,1))
model.fit(X)
Y = df['close'][40:55]
Y = Y[::-1]
X = np.array(Y)
Z = model.predict(X)