我需要有关此错误的帮助。我正在尝试使用 R 中的 HMM 包构建一个 HMM 模块。我无法理解我的代码有什么问题。使用 Baum-Welch 算法训练 HMM 时出错
lathmm = initHMM(c("S","M1","M2","M3","M4","E"),c("m","i"),c(1,0,0,0,0,0),
+ matrix(c( 0,0,0,0,0,0,
+ 1,0,0,0,0,0,
+ 0,1,0,0,0,0,
+ 0,0,1,0,0,0,
+ 0,0,0,1,0,0,
+ 0,0,0,0,1,1
+ ),6,6),
+ matrix(c(0,.5,.5,.5,.5,.5,
+ 0,.5,.5,.5,.5,.5
+ ),6,2))
>
> print(lathmm)
$States
[1] "S" "M1" "M2" "M3" "M4" "E"
$Symbols
[1] "m" "i"
$startProbs
S M1 M2 M3 M4 E
1 0 0 0 0 0
$transProbs
to
from S M1 M2 M3 M4 E
S 0 1 0 0 0 0
M1 0 0 1 0 0 0
M2 0 0 0 1 0 0
M3 0 0 0 0 1 0
M4 0 0 0 0 0 1
E 0 0 0 0 0 1
$emissionProbs
symbols
states m i
S 0.0 0.0
M1 0.5 0.5
M2 0.5 0.5
M3 0.5 0.5
M4 0.5 0.5
E 0.5 0.5
-> 初始化 HMM 没有问题。
鲍姆-韦尔奇培训:
> prot = sample(c(rep("m",100),rep("m",300)))
> bw = baumWelch(lathmm,prot,10)
Error in if (d < delta) { : missing value where TRUE/FALSE needed
-> 这是错误。
谁可以帮我这个事。我不确定这个模块有什么问题。
最佳答案
试着看看你的 obs 初始化部分。概率。矩阵。如果您将前两个概率(对于状态“S”)更改为非零,baumwelch 算法就可以正常工作。我使用 RStudio 运行它。
关于r - R中的HMM包错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10673104/