Скрытые состояния модели Маркова и выбросы
[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'})