gpt4 book ai didi

MATLAB 的 hmmtrain 假定初始状态为 1

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:58 25 4
gpt4 key购买 nike

MATLAB 统计工具箱函数 hmmtrain.m 似乎假设模型在训练序列之前最初处于状态 1。有什么办法可以关闭这个“功能”吗?一个例子:

>> y = [ 3 3 1 2 3 ];
>> H = eye( 3 );
>> T = ones(3)/3;
>> [ T, H ] = hmmtrain( y, T, H )

T =

0 0.5000 0.5000
0 0 1.0000
0.5000 0 0.5000


H =

1 0 0
0 1 0
0 0 1

训练集不包含从 1 到 3 的转换。为什么 T(1,3) 非零?!

最佳答案

我为 hmmtrain 编写了以下包装函数,它创建了一个仅用于模型初始状态的特殊状态 1。从外部调用者的角度来看,它不存在,您只能获得训练序列符号之间转换的统计信息;它对系统的初始状态一无所知。

  % MYHMMTRAIN - Wrapper on HMMTRAIN that removes "initial state" effects

function [ T, H ] = myhmmtrain( y, T, H, varargin )

% hmmtrain assumes the system always starts in state 1,
% so we create a "state 1" that isn't used for anything else
N = size(T,1);
T = [ 0 ones(1,N)/N; ...
zeros(N,1) T ];
M = size(H,2);
H = [ zeros(1,M); H ];

% train
[ T, H ] = hmmtrain( y, T, H, varargin{:} );

% remove false state 1
T = T(2:end,2:end);
H = H(2:end,:);

end

关于MATLAB 的 hmmtrain 假定初始状态为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9788463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com