Scikit Learn Gaussian HMM:ValueError:startprob 的总和必须为 1.0

Jay*_*ack 5 python numpy python-2.7 hidden-markov-models scikit-learn

我目前正在使用 Scikit Learn,并且在尝试训练高斯 HMM 时遇到了以下问题:

文件“/Library/Python/2.7/site-packages/sklearn/hmm.py”,第443行,合适

self._do_mstep(stats, self.params)
Run Code Online (Sandbox Code Playgroud)

文件“/Library/Python/2.7/site-packages/sklearn/hmm.py”,第 798 行,在 _do_mstep 中

super(GaussianHMM, self)._do_mstep(stats, params)
Run Code Online (Sandbox Code Playgroud)

文件“/Library/Python/2.7/site-packages/sklearn/hmm.py”,第 580 行,在 _do_mstep 中

np.maximum(self.startprob_prior - 1.0 + stats['start'], 1e-20))
Run Code Online (Sandbox Code Playgroud)

文件“/Library/Python/2.7/site-packages/sklearn/hmm.py”,第 476 行,在 _set_startprob

raise ValueError('startprob must sum to 1.0')
Run Code Online (Sandbox Code Playgroud)

ValueError:startprob 的总和必须为 1.0

如果我消除了一些特征(每次观察少于 13 个特征),它仍然有效。我已经检查过所有输入都是有效的,并且每个训练示例只包含 numpy.float64s 的二维数组。关于出了什么问题的任何想法?谢谢!

Osw*_*win 0

我有同样的问题。我可以通过调整模型隐藏状态的数量来解决这个问题。看来,根据可用数据和状态数量,模型无法正确拟合