# hmmgenerate


隐马尔可夫模型的状态与观测

函数库: TyMachineLearning

# 语法

seq, states = hmmgenerate(len, trans, emis)

# 说明

seq, states = hmmgenerate(len, trans, emis)采用由转移概率矩阵trans和观测概率矩阵emis通过马尔可夫模型,生成输出序列seq和随机序列状态states。

# 示例

生成输出序列和随机序列状态
读取数据集。
using TyMachineLearning
using CSV
using DataFrames
#状态转移概率矩阵
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
]
#序列长度
len = 100

计算观测序列与状态。

seq, states = hmmgenerate(len, trans, emis)
([2, 2, 2, 2, 2, 2, 2, 2, 2, 2  …  1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [4.0, 3.0, 1.0, 6.0, 4.0, 6.0, 3.0, 6.0, 6.0, 6.0  …  5.0, 1.0, 5.0, 4.0, 3.0, 1.0, 3.0, 1.0, 4.0, 2.0])

输出类别顺序不会完全一致。每个数字代表一类。

# 输入参数

len - 指定序列长度
数值

数据类型: Int

trans - 状态转移概率矩阵
矩阵

数据类型: Matrix

emis - 观测概率矩阵
矩阵

数据类型: Matrix

# 输出参数

seq - 生成序列
向量

数据类型: Vector

states - 随机序列状态
向量

数据类型: Vector

# 另请参阅

hmmviterbi | hmmtrain | hmmestimate | hmmdecode