Bro*_*oks 6 python hidden-markov-models scikit-learn
使用此代码:
X = numpy.array(range(0,5))
model = GaussianHMM(n_components=3,covariance_type='full', n_iter=1000)
model.fit([X])
Run Code Online (Sandbox Code Playgroud)
我明白了
tuple index out of range
self.n_features = obs[0].shape[1]
Run Code Online (Sandbox Code Playgroud)
那么你应该准确传递.fit()的是什么?元组中隐藏的状态和排放?如果是这样的话?文档不太有用.
我注意到它喜欢传递元组,因为这不会给出错误:
X = numpy.column_stack([range(0,5),range(0,5)])
model = GaussianHMM(n_components=3,covariance_type='full', n_iter=1000)
model.fit([X])
Run Code Online (Sandbox Code Playgroud)
编辑:
让我澄清一下,文档表明数组的正常性必须是:
类似阵列的观察序列列表(形状(n_i,n_features)).
这几乎表明您为每个样本传递一个元组,以二进制方式指示哪些观察结果存在.然而他们的例子表明不是:
# pack diff and volume for training
X = np.column_stack([diff, volume])
Run Code Online (Sandbox Code Playgroud)
因此混乱
GaussianHMM 函数似乎适用于仅多元发射 HMM 问题,因此要求发射向量 >1。当文档提到“n_features”时,它们并不是指发射可以表达自身的方式数量,而是指正交发射向量的数量。
因此,“特征”(正交发射向量)不应与“符号”混淆,用 sklearn 的说法(据我所知,这可能与更大的 hmm 社区共享),指的是系统的实际唯一值能够发射。
对于单变量发射向量问题,请使用 MultinomialHMM。
希望这对那些想要使用这些东西而又不想成为世界上最重要的 HMM 权威的人来说是澄清的:)
| 归档时间: |
|
| 查看次数: |
1527 次 |
| 最近记录: |