您好我一直在使用Murphy的HMM工具箱和高斯混合输出。简而言之,我有2个培训数据集。每个数据集包括2000个观测值,每个观测值具有11个维度。我实现了以下步骤来观察路径序列输出。
N_states=2
N_Gaussian_Mixture=1
对于每个数据集,生成HMM模型。步骤是:
步骤1:mixgauss_init()用于为我的训练数据生成GMM签名。 步骤2:在为Prior和Transmat声明矩阵后,使用mhmm_em()生成训练数据集的HMM模型。
测试:使用mhm_logprob()将来自每个数据集的2个测试数据用于测试。在每次运行中使用对数似然分数正确预测输出。
但是,当我尝试通过mixgauss_prob()后跟viterbi_path()观察HMM建模的序列(Dataset_123 with testdata_123)时,输出序列不一致。例如,对于第一次运行,输出序列可以是2221111111111.但是当我再次重新运行程序时,序列可以更改为1111111111111或1111111111222.最初我认为这可能是由于我的Prior矩阵。我修复了Prior值,但没有帮助。
其次,有可能我可以为状态和序列分配标签吗?像Matlab函数一样:
hmmgenerate(...,'Symbols',SYMBOLS)
指定发出的符号。 SYMBOLS可以是数字数组或符号名称的单元格数组。默认符号是整数1到N,其中N是可能的排放数。
感谢您的时间,并希望听取专家分享的意见。