首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能在hmmlearn中拟合多变量GMHMM?

是否有可能在hmmlearn中拟合多变量GMHMM?
EN

Stack Overflow用户
提问于 2018-09-03 06:00:12
回答 1查看 806关注 0票数 1

我知道可以将几个序列放入hmmlearn中,但在我看来,这些序列需要从相同的分布中提取。

有没有可能用来自hmmlearn中不同分布的几个观察序列来拟合GMHMM?

我的用例:我想用来自不同股票的K个金融时间序列来拟合GMHMM,并预测在特定时间产生K个股票价格的市场机制。因此,矩阵输入的维度为N(日期数)×K(股票数)。如果hmmlearn不能做到这一点,请告诉我是否可以在python或R中使用另一个包?感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-02-07 19:17:53

我解决你的问题的方法是使用多变量高斯来表示发射概率。

例如:假设K为2,即位置数为2。

在hmmlearn中,K将被编码在均值矩阵的维度中。

看,这个示例Sampling from HMM有一个二维输出。换言之,X.shape = (N,K),其中N是这种情况下样本500的长度,K是输出的维度,其为2。

请注意,作者将每个维度绘制在一个轴上,即x轴绘制第一个维度X:,0,y轴绘制第二个维度X:,1。

要训练模型,请确保X1和X2与示例中采样的X具有相同的形状,并按照here所述形成训练数据集。

总之,通过调整K而不是K=2,并将其转换为GMHMM而不是GaussianHMM,使该示例适合您的情况。

代码语言:javascript
复制
# Another example
model = hmm.GaussianHMM(n_components=5, covariance_type="diag", n_iter=100)

K = 3 # Number of sites
model.n_features = K # initialise that the model has size of observations =  K 

# Create a random training sequence (only 1 sequence) with length = 100.
X1 = np.random.randn(100, K) # 100 observation for K sites
model.fit(X1)

# Sample the fitted model
X, Z = model.sample(200)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52141332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档