显示对数似然的 Baum-Welch 算法:NaN BIC 标准:NaN AIC 标准:NaN
Baum-Welch algorithm showing Log-likelihood: NaN BIC criterium: NaN AIC criterium: NaN
我正在努力使 Bauch-Welch 算法收敛,但由于对数似然、AIC、BIC 显示 NaN 而无法做到这一点。我的数据只包含一列。请在这方面帮助我,我将非常感谢你。详细代码如下
library(RHmm)
obs<-read.table("C:\Users\Administrator\Desktop\SPI-TESTS.csv",header=T,sep=",")
hm_model <- HMMFit(obs=obs, dis="MIXTURE", nStates=11, nMixt=4, control=list(iter=2000))
print (hm_model)
Call:
----
HMMFit(obs = obs, dis = "MIXTURE", nStates = 11, nMixt = 4, control = list(iter = 2000))
Model:
------
11 states HMM with mixture of 4 gaussian distribution
Baum-Welch algorithm status:
----------------------------
NO CONVERGENCE AFTER 265 ITERATIONS
PROBLEM IN BAUM-WELCH'S ALGORITHM
Last Estimation:
----------------
Initial probabilities:
Pi 1 Pi 2 Pi 3 Pi 4 Pi 5 Pi 6 Pi 7 Pi 8 Pi 9 Pi 10 Pi 11
0 0 0 0 0 0 0 0 3.779559e-232 2.509294e-79 1
Transition matrix:
State 1 State 2 State 3 State 4 State 5 State 6 State 7 State 8 State 9 State 10 State 11
State 1 1.158892e-12 5.513564e-01 1.406934e-01 2.653148e-01 2.769269e-02 1.553028e-37 1.494273e-02 9.800663e-13 1.507891e-49 4.715263e-34 4.017981e-18
State 2 2.654186e-02 4.087015e-23 3.204037e-10 2.212773e-01 5.021474e-02 4.005844e-20 4.165265e-12 5.073141e-01 1.946520e-01 1.632596e-32 1.113244e-71
State 3 3.241748e-10 1.016694e-40 3.788610e-02 3.320507e-19 5.677861e-39 4.381774e-01 3.887688e-25 6.912725e-19 1.182014e-45 1.517400e-35 5.239365e-01
State 4 5.644328e-17 3.149625e-51 1.875990e-37 7.768767e-02 9.337121e-02 3.695106e-02 4.546543e-31 3.693171e-01 1.411264e-56 4.226730e-01 2.787318e-68
State 5 2.703254e-17 1.232838e-22 3.593962e-45 6.150321e-02 3.976687e-29 2.572677e-24 9.384968e-01 7.366599e-09 2.384907e-33 5.458220e-27 1.044629e-10
State 6 1.927068e-23 1.142987e-31 6.133354e-11 4.227546e-37 6.058461e-19 3.366786e-01 3.878805e-25 1.295066e-31 1.298184e-25 6.633214e-01 3.737511e-35
State 7 8.304118e-01 3.099592e-17 1.201420e-01 3.844308e-48 5.197072e-22 1.869553e-22 4.401821e-33 4.944619e-02 8.966040e-38 7.440181e-17 2.103199e-77
State 8 2.608467e-23 2.128828e-01 3.623140e-01 6.605205e-02 4.193308e-26 7.099826e-02 8.209803e-15 1.495140e-26 2.877529e-01 2.419725e-31 6.329163e-25
State 9 6.321264e-18 1.020369e-21 2.233158e-97 1.150197e-20 3.578052e-17 1.140077e-56 9.255432e-01 3.718692e-23 8.778677e-69 1.698017e-74 7.445679e-02
State 10 1.166198e-35 2.422477e-17 2.629801e-33 6.517930e-16 4.811069e-01 9.681698e-07 3.583564e-17 6.114747e-26 1.577586e-01 1.619016e-27 3.611335e-01
State 11 1.476885e-01 5.291609e-44 4.304542e-02 5.421176e-48 2.279369e-01 4.006380e-21 1.154627e-20 1.283353e-50 7.747702e-02 3.628620e-01 1.409901e-01
Conditionnal distribution parameters:
Distribution parameters:
State 1
mean var prop
mixt. 1 0.3228887 0.0670044730 0.01175632
mixt. 2 2.2903418 0.0004215949 0.02883315
mixt. 3 0.6950723 0.1498205389 0.39625490
mixt. 4 0.8153021 0.1616678607 0.56315563
State 2
mean var prop
mixt. 1 0.9000000 -9.768662e-17 0.04267843
mixt. 2 1.0115568 1.583260e-03 0.06245711
mixt. 3 1.3279109 8.353099e-03 0.16728413
mixt. 4 0.3209322 2.318155e-02 0.72758033
State 3
mean var prop
mixt. 1 -0.01040615 0.0001118124 0.05114568
mixt. 2 1.28399423 0.0007558368 0.19161416
mixt. 3 -0.51378918 0.0012591050 0.33529535
mixt. 4 -0.26900326 0.0114199682 0.42194481
State 4
mean var prop
mixt. 1 -0.5196946 0.0370986863 0.06308098
mixt. 2 -0.4491540 0.0001833145 0.11588290
mixt. 3 -0.3999082 0.0194713200 0.17269967
mixt. 4 -0.8223137 0.0155369698 0.64833645
State 5
mean var prop
mixt. 1 -0.54558081 0.007469851 0.07947785
mixt. 2 2.29433769 0.162783811 0.16413279
mixt. 3 -0.46162548 0.002112128 0.17196909
mixt. 4 -0.01918344 0.011286404 0.58442027
State 6
mean var prop
mixt. 1 0.04382151 0.004894925 0.09060242
mixt. 2 0.78022790 0.146280792 0.24418142
mixt. 3 1.67034964 0.007670877 0.25471853
mixt. 4 -0.12843702 0.003420775 0.41049763
State 7
mean var prop
mixt. 1 -0.5438470 0.06310705 0.1163411
mixt. 2 -0.4574091 0.07136046 0.2189112
mixt. 3 -0.5405554 0.06353600 0.2381260
mixt. 4 0.5991808 0.10922573 0.4266217
State 8
mean var prop
mixt. 1 0.35036456 0.01848146 0.1217106
mixt. 2 0.32292322 0.01495311 0.1712873
mixt. 3 0.06647903 0.01427462 0.1834535
mixt. 4 0.68608747 0.02160377 0.5235487
State 9
mean var prop
mixt. 1 -1.401972 0.023920717 0.02111203
mixt. 2 -1.737035 0.002683553 0.26584908
mixt. 3 -1.175300 0.021111569 0.35446196
mixt. 4 -2.424672 0.319739380 0.35857693
State 10
mean var prop
mixt. 1 -2.0511859 0.01757202 0.09649034
mixt. 2 -0.7537656 0.03633816 0.14177569
mixt. 3 0.2397362 0.14818220 0.30284293
mixt. 4 1.4524058 0.19584007 0.45889105
State 11
mean var prop
mixt. 1 -1.002009 0.004011447 0.06652293
mixt. 2 -1.007930 0.004125391 0.11683122
mixt. 3 -1.122122 0.001598325 0.29372147
mixt. 4 -1.497583 0.010445953 0.52292439
Log-likelihood: NaN
BIC criterium: NaN
AIC criterium: NaN
0.11
-0.9
-1.67
1.13
0.39
1.25
-1.48
-1.42
0.67
-1.41
0.36
-0.42
0.91
0.56
0.39
0.45
-0.17
0.68
-1.01
1.84
0.17
1.28
0.63
0.42
-2.97
0.38
1.04
0.98
0.51
-2.05
-0.7
0.14
-0.33
-1.14
0.83
-0.9
-0.12
1.41
0
-0.21
0.32
0.11
0.23
0
-1.03
-0.47
0.36
0.95
-0.7
-2.07
-1.16
-0.72
-1.25
-0.73
0.23
-0.9
-0.04
-1.8
-0.49
0.46
-0.7
0.67
-0.02
-1.41
0.23
0.05
0.95
0.85
1.34
-0.11
-0.52
-1.09
-0.12
0.54
-0.38
-0.96
0.17
-1.1
1.61
0.47
-2.44
-0.86
0.74
0.29
-0.34
0.47
-0.08
1.77
1.92
-0.22
-0.42
0.61
-0.53
1.57
-0.7
-1.75
0.71
0.9
0.4
0.21
1.07
0.12
1.25
-0.07
0.62
-0.61
-0.12
0.33
1.57
1.31
1.63
-0.15
0.63
-1.1
-1.01
-1.48
0.84
1.47
-0.96
-0.62
0.79
1.71
-0.38
0.86
0.12
-0.78
-0.4
-2.4
-0.6
1.47
-0.7
1.54
-1.74
0.34
1.37
-0.48
0.94
-0.2
-0.11
-0.03
2.16
0.04
0.24
-0.48
1.7
0.97
-1.08
-0.43
-0.95
0.16
-1.52
-0.99
-1.06
-1.9
-0.24
-0.99
0.67
-0.86
0.33
-3.6
-1.14
1.37
-1.5
0.91
0.42
-0.75
-0.81
0.07
-0.57
0.96
0.29
-0.26
0.26
-0.52
-1.19
-1.42
-0.54
-1.14
0.15
-0.2
1.2
1.26
0.06
-0.49
-0.15
1.61
2.6
-0.18
1.27
-0.45
-1.09
0.11
-0.42
1.27
-1.64
-0.04
-1.7
0.07
-0.72
0.63
0.34
0.27
-1.23
-0.99
0.92
-0.26
-0.55
1.68
1.17
1.83
1.11
-0.44
-0.25
0.45
0.37
1个
0.22
0.49
-0.45
0.74
-1.1
-0.99
-0.37
0.92
-0.26
0.02
-0.18
0.07
-0.99
-0.16
-0.07
-0.17
1.6
1.08
0.08
-0.49
0.74
2.35
-0.37
-0.42
-1.46
-2.83
0.24
-0.59
-1.19
1.48
-0.04
-0.85
1.21
0.18
0.66
-1.47
-0.24
0.56
-1.06
0.43
-0.49
-1.61
-0.53
-0.41
1.41
-0.47
-1.97
-0.65
-0.21
-0.13
-1.13
1.45
-1.42
1.06
-1.34
1.02
0.99
0.11
1.31
0.44
1.67
-1.09
0.7
1.56
1.27
-1.71
0.6
0.03
1.41
-0.41
0.06
2.73
1.25
0.62
0.21
0.66
-2.81
0.51
0.51
-1.79
0.18
0.94
0.46
-0.52
-0.7
-0.32
0.05
-0.38
0.39
0.58
0.81
0.59
-0.91
-0.78
1.53
-0.02
-0.89
0.1
0.24
-0.24
-0.49
-0.78
0.48
0.9
0.87
0.24
-1.23
-1.04
-1.05
-0.63
0.11
0.54
-1.7
-0.3
0.94
-0.24
-1.42
-0.39
-0.44
-2.17
-0.53
-0.63
-0.11
0.29
0.68
-0.15
-1.52
-1.45
-1.61
0.75
-0.67
0.65
-0.28
-0.18
0.13
-0.09
0.71
0.75
-1.04
2.35
-0.64
0.6
1.28
1个
0.52
-0.11
0
0.84
0.36
-2.23
0.91
0.34
-0.21
-1.52
-0.28
-1.4
-0.45
-0.37
1.17
-0.54
0.81
-0.78
-0.91
-0.08
-0.66
0.07
-0.9
0.37
-0.34
-1.54
-2.21
-1.75
0.69
0.67
-0.88
-0.08
0.53
0.8
-0.75
2.34
-1.11
-1.71
2.72
0.52
0.75
0.9
0.03
0.23
-1.28
-0.57
2.27
0.31
-0.94
0.61
0.05
0.76
-1.18
-0.06
0.33
1.27
-0.44
2.02
-1.42
-0.05
0.61
0.21
-0.73
0.89
-0.49
0.11
1.37
-1.39
1.14
0.04
0.67
0.37
-0.74
0.32
-1.31
0.88
-0.52
-0.24
-0.02
-0.86
-0.51
1.03
0.47
-0.45
0.63
1.19
0.24
-0.52
1.13
1.33
-1.12
0.59
-0.12
0.56
1.23
1.31
-0.09
0.23
0.16
-1.08
0.99
-0.04
0.39
0.47
0.1
-1.8
-0.75
0.97
1.42
0.34
-0.99
-0.55
0.83
0.53
-0.07
0.03
0.65
0.1
-2.03
0.63
0.73
0.12
1.81
-0.54
-0.36
-1.67
1.29
0.56
0.59
0.35
0.79
-0.58
0.77
-1.62
-0.6
0.39
0.2
0.64
1.58
1.51
-0.01
-0.05
2.31
-0.9
1.5
-1.54
2.08
-1.3
-0.66
0.52
0.42
0.8
-2.44
-0.34
1.03
0.41
我在某处读到 RHmm 已过时。它不再被维护的事实让我相信 NaN 结果是一个没有修复甚至没有记录的错误。无论我在哪里读到它(我认为它在 Whosebug 上,但找不到 post),他们都建议使用包 depmixS4 而不是 RHmm。
如果您想继续使用 RHmm,我已经提出了一些解决方法。仅增加最大值。迭代次数被证明是无效的,因为该算法大部分时间甚至在达到默认的 500 次迭代之前就崩溃了。
首先,您可能想要循环直到收敛。这样做会大大增加脚本的整体运行时间,尤其是当您一遍又一遍地重新拟合模型时。为了解决这个问题,我将相对对数似然增强的容差('tol' 控制参数的参数)增加到 1e-3。
默认值为1e-6。我的猜测是 Baum-Welch 实施在尝试达到该容差时在某个时候出现了下溢。将其增加到 1e-3 将使算法在 LLH 的最后一个增量 < 0.001 而不是 0.000001 时考虑收敛。
这当然会降低模型的 LLH(精度)并增加整体误差,但使其在时间上可行。
生成的代码可能类似于:
baum_welch <- function(observed, max_iter, tolerance) {
i <- 1
repeat {
hm_model <- HMMFit(obs = observed, nStates = 5, nMixt = 4, dis = "MIXTURE", control = list(iter=max_iter , tol=tolerance))
if (hm_model$convergence) {
cat("Tries: ", i, "\n")
break
}
i <- i + 1
}
hm_model
}
baum_welch(train_set, 2000, 1e-3)
我正在努力使 Bauch-Welch 算法收敛,但由于对数似然、AIC、BIC 显示 NaN 而无法做到这一点。我的数据只包含一列。请在这方面帮助我,我将非常感谢你。详细代码如下
library(RHmm)
obs<-read.table("C:\Users\Administrator\Desktop\SPI-TESTS.csv",header=T,sep=",")
hm_model <- HMMFit(obs=obs, dis="MIXTURE", nStates=11, nMixt=4, control=list(iter=2000))
print (hm_model)
Call:
----
HMMFit(obs = obs, dis = "MIXTURE", nStates = 11, nMixt = 4, control = list(iter = 2000))
Model:
------
11 states HMM with mixture of 4 gaussian distribution
Baum-Welch algorithm status:
----------------------------
NO CONVERGENCE AFTER 265 ITERATIONS
PROBLEM IN BAUM-WELCH'S ALGORITHM
Last Estimation:
----------------
Initial probabilities:
Pi 1 Pi 2 Pi 3 Pi 4 Pi 5 Pi 6 Pi 7 Pi 8 Pi 9 Pi 10 Pi 11
0 0 0 0 0 0 0 0 3.779559e-232 2.509294e-79 1
Transition matrix:
State 1 State 2 State 3 State 4 State 5 State 6 State 7 State 8 State 9 State 10 State 11
State 1 1.158892e-12 5.513564e-01 1.406934e-01 2.653148e-01 2.769269e-02 1.553028e-37 1.494273e-02 9.800663e-13 1.507891e-49 4.715263e-34 4.017981e-18
State 2 2.654186e-02 4.087015e-23 3.204037e-10 2.212773e-01 5.021474e-02 4.005844e-20 4.165265e-12 5.073141e-01 1.946520e-01 1.632596e-32 1.113244e-71
State 3 3.241748e-10 1.016694e-40 3.788610e-02 3.320507e-19 5.677861e-39 4.381774e-01 3.887688e-25 6.912725e-19 1.182014e-45 1.517400e-35 5.239365e-01
State 4 5.644328e-17 3.149625e-51 1.875990e-37 7.768767e-02 9.337121e-02 3.695106e-02 4.546543e-31 3.693171e-01 1.411264e-56 4.226730e-01 2.787318e-68
State 5 2.703254e-17 1.232838e-22 3.593962e-45 6.150321e-02 3.976687e-29 2.572677e-24 9.384968e-01 7.366599e-09 2.384907e-33 5.458220e-27 1.044629e-10
State 6 1.927068e-23 1.142987e-31 6.133354e-11 4.227546e-37 6.058461e-19 3.366786e-01 3.878805e-25 1.295066e-31 1.298184e-25 6.633214e-01 3.737511e-35
State 7 8.304118e-01 3.099592e-17 1.201420e-01 3.844308e-48 5.197072e-22 1.869553e-22 4.401821e-33 4.944619e-02 8.966040e-38 7.440181e-17 2.103199e-77
State 8 2.608467e-23 2.128828e-01 3.623140e-01 6.605205e-02 4.193308e-26 7.099826e-02 8.209803e-15 1.495140e-26 2.877529e-01 2.419725e-31 6.329163e-25
State 9 6.321264e-18 1.020369e-21 2.233158e-97 1.150197e-20 3.578052e-17 1.140077e-56 9.255432e-01 3.718692e-23 8.778677e-69 1.698017e-74 7.445679e-02
State 10 1.166198e-35 2.422477e-17 2.629801e-33 6.517930e-16 4.811069e-01 9.681698e-07 3.583564e-17 6.114747e-26 1.577586e-01 1.619016e-27 3.611335e-01
State 11 1.476885e-01 5.291609e-44 4.304542e-02 5.421176e-48 2.279369e-01 4.006380e-21 1.154627e-20 1.283353e-50 7.747702e-02 3.628620e-01 1.409901e-01
Conditionnal distribution parameters:
Distribution parameters:
State 1
mean var prop
mixt. 1 0.3228887 0.0670044730 0.01175632
mixt. 2 2.2903418 0.0004215949 0.02883315
mixt. 3 0.6950723 0.1498205389 0.39625490
mixt. 4 0.8153021 0.1616678607 0.56315563
State 2
mean var prop
mixt. 1 0.9000000 -9.768662e-17 0.04267843
mixt. 2 1.0115568 1.583260e-03 0.06245711
mixt. 3 1.3279109 8.353099e-03 0.16728413
mixt. 4 0.3209322 2.318155e-02 0.72758033
State 3
mean var prop
mixt. 1 -0.01040615 0.0001118124 0.05114568
mixt. 2 1.28399423 0.0007558368 0.19161416
mixt. 3 -0.51378918 0.0012591050 0.33529535
mixt. 4 -0.26900326 0.0114199682 0.42194481
State 4
mean var prop
mixt. 1 -0.5196946 0.0370986863 0.06308098
mixt. 2 -0.4491540 0.0001833145 0.11588290
mixt. 3 -0.3999082 0.0194713200 0.17269967
mixt. 4 -0.8223137 0.0155369698 0.64833645
State 5
mean var prop
mixt. 1 -0.54558081 0.007469851 0.07947785
mixt. 2 2.29433769 0.162783811 0.16413279
mixt. 3 -0.46162548 0.002112128 0.17196909
mixt. 4 -0.01918344 0.011286404 0.58442027
State 6
mean var prop
mixt. 1 0.04382151 0.004894925 0.09060242
mixt. 2 0.78022790 0.146280792 0.24418142
mixt. 3 1.67034964 0.007670877 0.25471853
mixt. 4 -0.12843702 0.003420775 0.41049763
State 7
mean var prop
mixt. 1 -0.5438470 0.06310705 0.1163411
mixt. 2 -0.4574091 0.07136046 0.2189112
mixt. 3 -0.5405554 0.06353600 0.2381260
mixt. 4 0.5991808 0.10922573 0.4266217
State 8
mean var prop
mixt. 1 0.35036456 0.01848146 0.1217106
mixt. 2 0.32292322 0.01495311 0.1712873
mixt. 3 0.06647903 0.01427462 0.1834535
mixt. 4 0.68608747 0.02160377 0.5235487
State 9
mean var prop
mixt. 1 -1.401972 0.023920717 0.02111203
mixt. 2 -1.737035 0.002683553 0.26584908
mixt. 3 -1.175300 0.021111569 0.35446196
mixt. 4 -2.424672 0.319739380 0.35857693
State 10
mean var prop
mixt. 1 -2.0511859 0.01757202 0.09649034
mixt. 2 -0.7537656 0.03633816 0.14177569
mixt. 3 0.2397362 0.14818220 0.30284293
mixt. 4 1.4524058 0.19584007 0.45889105
State 11
mean var prop
mixt. 1 -1.002009 0.004011447 0.06652293
mixt. 2 -1.007930 0.004125391 0.11683122
mixt. 3 -1.122122 0.001598325 0.29372147
mixt. 4 -1.497583 0.010445953 0.52292439
Log-likelihood: NaN
BIC criterium: NaN
AIC criterium: NaN
0.11 -0.9 -1.67 1.13 0.39 1.25 -1.48 -1.42 0.67 -1.41 0.36 -0.42 0.91 0.56 0.39 0.45 -0.17 0.68 -1.01 1.84 0.17 1.28 0.63 0.42 -2.97 0.38 1.04 0.98 0.51 -2.05 -0.7 0.14 -0.33 -1.14 0.83 -0.9 -0.12 1.41 0 -0.21 0.32 0.11 0.23 0 -1.03 -0.47 0.36 0.95 -0.7 -2.07 -1.16 -0.72 -1.25 -0.73 0.23 -0.9 -0.04 -1.8 -0.49 0.46 -0.7 0.67 -0.02 -1.41 0.23 0.05 0.95 0.85 1.34 -0.11 -0.52 -1.09 -0.12 0.54 -0.38 -0.96 0.17 -1.1 1.61 0.47 -2.44 -0.86 0.74 0.29 -0.34 0.47 -0.08 1.77 1.92 -0.22 -0.42 0.61 -0.53 1.57 -0.7 -1.75 0.71 0.9 0.4 0.21 1.07 0.12 1.25 -0.07 0.62 -0.61 -0.12 0.33 1.57 1.31 1.63 -0.15 0.63 -1.1 -1.01 -1.48 0.84 1.47 -0.96 -0.62 0.79 1.71 -0.38 0.86 0.12 -0.78 -0.4 -2.4 -0.6 1.47 -0.7 1.54 -1.74 0.34 1.37 -0.48 0.94 -0.2 -0.11 -0.03 2.16 0.04 0.24 -0.48 1.7 0.97 -1.08 -0.43 -0.95 0.16 -1.52 -0.99 -1.06 -1.9 -0.24 -0.99 0.67 -0.86 0.33 -3.6 -1.14 1.37 -1.5 0.91 0.42 -0.75 -0.81 0.07 -0.57 0.96 0.29 -0.26 0.26 -0.52 -1.19 -1.42 -0.54 -1.14 0.15 -0.2 1.2 1.26 0.06 -0.49 -0.15 1.61 2.6 -0.18 1.27 -0.45 -1.09 0.11 -0.42 1.27 -1.64 -0.04 -1.7 0.07 -0.72 0.63 0.34 0.27 -1.23 -0.99 0.92 -0.26 -0.55 1.68 1.17 1.83 1.11 -0.44 -0.25 0.45 0.37 1个 0.22 0.49 -0.45 0.74 -1.1 -0.99 -0.37 0.92 -0.26 0.02 -0.18 0.07 -0.99 -0.16 -0.07 -0.17 1.6 1.08 0.08 -0.49 0.74 2.35 -0.37 -0.42 -1.46 -2.83 0.24 -0.59 -1.19 1.48 -0.04 -0.85 1.21 0.18 0.66 -1.47 -0.24 0.56 -1.06 0.43 -0.49 -1.61 -0.53 -0.41 1.41 -0.47 -1.97 -0.65 -0.21 -0.13 -1.13 1.45 -1.42 1.06 -1.34 1.02 0.99 0.11 1.31 0.44 1.67 -1.09 0.7 1.56 1.27 -1.71 0.6 0.03 1.41 -0.41 0.06 2.73 1.25 0.62 0.21 0.66 -2.81 0.51 0.51 -1.79 0.18 0.94 0.46 -0.52 -0.7 -0.32 0.05 -0.38 0.39 0.58 0.81 0.59 -0.91 -0.78 1.53 -0.02 -0.89 0.1 0.24 -0.24 -0.49 -0.78 0.48 0.9 0.87 0.24 -1.23 -1.04 -1.05 -0.63 0.11 0.54 -1.7 -0.3 0.94 -0.24 -1.42 -0.39 -0.44 -2.17 -0.53 -0.63 -0.11 0.29 0.68 -0.15 -1.52 -1.45 -1.61 0.75 -0.67 0.65 -0.28 -0.18 0.13 -0.09 0.71 0.75 -1.04 2.35 -0.64 0.6 1.28 1个 0.52 -0.11 0 0.84 0.36 -2.23 0.91 0.34 -0.21 -1.52 -0.28 -1.4 -0.45 -0.37 1.17 -0.54 0.81 -0.78 -0.91 -0.08 -0.66 0.07 -0.9 0.37 -0.34 -1.54 -2.21 -1.75 0.69 0.67 -0.88 -0.08 0.53 0.8 -0.75 2.34 -1.11 -1.71 2.72 0.52 0.75 0.9 0.03 0.23 -1.28 -0.57 2.27 0.31 -0.94 0.61 0.05 0.76 -1.18 -0.06 0.33 1.27 -0.44 2.02 -1.42 -0.05 0.61 0.21 -0.73 0.89 -0.49 0.11 1.37 -1.39 1.14 0.04 0.67 0.37 -0.74 0.32 -1.31 0.88 -0.52 -0.24 -0.02 -0.86 -0.51 1.03 0.47 -0.45 0.63 1.19 0.24 -0.52 1.13 1.33 -1.12 0.59 -0.12 0.56 1.23 1.31 -0.09 0.23 0.16 -1.08 0.99 -0.04 0.39 0.47 0.1 -1.8 -0.75 0.97 1.42 0.34 -0.99 -0.55 0.83 0.53 -0.07 0.03 0.65 0.1 -2.03 0.63 0.73 0.12 1.81 -0.54 -0.36 -1.67 1.29 0.56 0.59 0.35 0.79 -0.58 0.77 -1.62 -0.6 0.39 0.2 0.64 1.58 1.51 -0.01 -0.05 2.31 -0.9 1.5 -1.54 2.08 -1.3 -0.66 0.52 0.42 0.8 -2.44 -0.34 1.03 0.41
我在某处读到 RHmm 已过时。它不再被维护的事实让我相信 NaN 结果是一个没有修复甚至没有记录的错误。无论我在哪里读到它(我认为它在 Whosebug 上,但找不到 post),他们都建议使用包 depmixS4 而不是 RHmm。
如果您想继续使用 RHmm,我已经提出了一些解决方法。仅增加最大值。迭代次数被证明是无效的,因为该算法大部分时间甚至在达到默认的 500 次迭代之前就崩溃了。
首先,您可能想要循环直到收敛。这样做会大大增加脚本的整体运行时间,尤其是当您一遍又一遍地重新拟合模型时。为了解决这个问题,我将相对对数似然增强的容差('tol' 控制参数的参数)增加到 1e-3。
默认值为1e-6。我的猜测是 Baum-Welch 实施在尝试达到该容差时在某个时候出现了下溢。将其增加到 1e-3 将使算法在 LLH 的最后一个增量 < 0.001 而不是 0.000001 时考虑收敛。
这当然会降低模型的 LLH(精度)并增加整体误差,但使其在时间上可行。
生成的代码可能类似于:
baum_welch <- function(observed, max_iter, tolerance) {
i <- 1
repeat {
hm_model <- HMMFit(obs = observed, nStates = 5, nMixt = 4, dis = "MIXTURE", control = list(iter=max_iter , tol=tolerance))
if (hm_model$convergence) {
cat("Tries: ", i, "\n")
break
}
i <- i + 1
}
hm_model
}
baum_welch(train_set, 2000, 1e-3)