我对 HMM 包中的 viterbiTraining 函数有一些问题。我尝试在一个非常简单的嗯和一个观察向量上使用它。
这是代码:
Emisije<-rep("IntervalC",length(Cl1.res))
Emisije[IntervalA[,1]]<-"IntervalA"
Emisije[IntervalB[,1]]<-"IntervalB"
Emisije 向量如下所示:
头(埃米西耶)
[1] “区间 A” “区间 A” “区间 A” “区间 C” “区间 B” “区间 A”
startProbs<-c(0.6873065,0.3126935)
transProbs<-matrix(c(0.8, 0.7, 0.2,0.3),ncol=2)
emissionProbs<-matrix(rep(1/3,6),ncol=3)
stanji<-initHMM(c("NizkaVar", "VisokaVar"), c("IntervalA", "IntervalB",
"IntervalC"), startProbs, transProbs, emissionProbs)
运行后一切正常,除了 viterbiTraining 函数,它给出以下结果:
viterbiTraining(stanji,Emisije)
if (d < delta) { 中的错误:需要 TRUE/FALSE 的缺失值
即使采用完全相同的参数的类似函数 baumWelch 也可以正常工作,所以我真的不明白这里出了什么问题。
谁能向我解释我做错了什么?先感谢您。