hmmrandinit.m
来自「CHMMBOX, version 1.2, Iead Rezek, Oxford」· M 代码 · 共 52 行
M
52 行
function [hmm] = hmmrandinit (X,hmm,covtype)% function [hmm] = hmmrandinit (X,hmm,covtype)%% Initialise Gaussian observation HMM model % using a randomly initialised static Gaussian Mixture Model%% X N x p data matrix% hmm hmm data structure% covtype 'full' or 'diag' covariance matricesN=size(X,1);p=size(X,2);mix.ncentres=hmm.K;% get some ranges within which the random values should lieinitmean=mean(mean(X));initvar=mean(var(X));% random inititalisation; for k=1:mix.ncentres, mix.centres(k,:)=initmean*rand(1,p); if covtype=='full', mix.covars(:,:,k)=initvar*rand(p,p); mix.covars(:,:,k)=mix.covars(:,:,k)'*mix.covars(:,:,k); elseif covtype=='diag', mix.covars(k,:)=initvar*rand(1,p); else error('Unknown type of covariance matrix'); end;end; hmm.gmmll=0; % Log likelihood of gmm model; not used in rand. init.for k=1:mix.ncentres; hmm.state(k).Mu=mix.centres(k,:); switch covtype case 'full', hmm.state(k).Cov=squeeze(mix.covars(:,:,k)); hmm.init_val(k).Cov = hmm.state(k).Cov; % In case we need to re-init case 'diag', hmm.state(k).Cov=diag(mix.covars(k,:)); hmm.init_val(k).Cov = hmm.state(k).Cov; % In case we need to re-init otherwise, disp('Unknown type of covariance matrix'); endendhmm.train.init='gmm';hmm.mix=mix;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?