# 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