我目前正在使用Scikit Learn,并且在尝试训练高斯HMM时遇到了以下问题。
File "C:Python27libsite-packagessklearnhmm.py", line 476, in _set_startprob
raise ValueError('startprob must sum to 1.0')
ValueError: startprob must sum to 1.0
按此类方式运行函数时:
model = GaussianHMM(n_components=5, covariance_type="diag", n_iter=1000,
means_prior=means_prior, means_weight=0.5)
这大约工作了 1/10 次而没有错误,但 9/10 次,它会抛出错误。减少组件数量会增加无错误工作的可能性。
我还试图在没有增加运气的情况下迫使启动概率startprob=[0.20, 0.20, 0.20, 0.20, 0.20]
。
我还使用print model.startprob_
来确保启动概率[0.20, 0.20, 0.20, 0.20, 0.20]
。
知道问题是什么吗?
我也有同样的问题。我认为这取决于输入序列的数量。如果我的序列太少而无法构建模型,则会出现此错误,这是因为该模型不够令人信服。您获取的组件越多,您需要的数据就越合适。但这只是我的假设。