我目前正在使用Scikit Learn,并且在尝试训练高斯HMM时遇到了以下问题。
File "C:\Python27\lib\site-packages\sklearn\hmm.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强制转换为startprob=[0.20, 0.20, 0.20, 0.20, 0.20]
而没有增加运气。
我还使用了print model.startprob_
来确保startprob为[0.20, 0.20, 0.20, 0.20, 0.20]
。
任何想法是什么问题?
先谢谢。
答案 0 :(得分:0)
我有同样的问题。我认为这取决于输入序列的数量。如果我有太少的序列来构建模型,我会得到这个错误,因为这个模型不够令人信服。您获取的组件越多,您需要的数据就越合适。但这只是我的假设。