Скрытые состояния марковской модели и выбросы
[seq,states] = hmmgenerate(len,TRANS,EMIS)
hmmgenerate(...,'Symbols',SYMBOLS)
hmmgenerate(...,'Statenames',STATENAMES)
[seq,states] = hmmgenerate(len,TRANS,EMIS) принимает известную модель Маркова, заданную матрицей вероятности перехода TRANS и матрица вероятности выбросов EMIS, и использует его для генерации
Случайная последовательность seq символов эмиссии
Случайная последовательность states состояний
Длина обоих seq и states является len. TRANS(i,j) - вероятность перехода из состояния i указывать j. EMIS(k,l) - вероятность того, что символ l испускается из состояния k.
Примечание
Функция hmmgenerate начинается с модели в состоянии 1 на шаге 0, перед первым излучением. Затем модель осуществляет переход в состояние i1 с вероятностью T1i1 и генерирует эмиссию ak1 с вероятностью Ei1k11. hmmgenerate возвращает i1 в качестве первой записи statesи ak1 как первая запись seq.
hmmgenerate(...,'Symbols',SYMBOLS) определяет символы, которые излучаются. SYMBOLS может быть задан как числовой массив, строковый массив или массив ячеек символьных векторов. По умолчанию используются целые числа 1 через N, где N - количество возможных выбросов.
hmmgenerate(...,'Statenames',STATENAMES) задает имена состояний. STATENAMES может быть задан как числовой массив, строковый массив или массив ячеек символьных векторов. Имена состояний по умолчанию: 1 через M, где M - количество состояний.
Поскольку модель всегда начинается в состоянии 1, чьи вероятности перехода находятся в первой строке TRANS, в следующем примере первая запись выходного документа states 1 с вероятностью 0,95 и 2 с вероятностью 0,05.
trans = [0.95,0.05;
0.10,0.90];
emis = [1/6 1/6 1/6 1/6 1/6 1/6;
1/10 1/10 1/10 1/10 1/10 1/2];
[seq,states] = hmmgenerate(100,trans,emis)
[seq,states] = hmmgenerate(100,trans,emis,...
'Symbols',{'one','two','three','four','five','six'},...
'Statenames',{'fair';'loaded'})