隐马尔可夫hmm

it2023-06-02  70

文章目录

前言隐马尔可夫概念掷骰子case用HMM做模拟需要知道和HMM模型相关的算法分三类,解决三种问题 总结HMM模型key wordcase总结,理解上述key word 带着问题,我们的业务看经典图,分析**业务已有什么,没有什么,目标是什么已有:没有:目标目标1:目标2:目标3: 启发到的初步建模思路

前言

1、概念、原理 2、可以获得启发的case 股票预测(待补充 天气预报预测(待补充 3、调研目的 为业务建模寻求灵感

隐马尔可夫概念

##隐马尔科夫假设 任意时刻的状态只依赖于其前一时刻的状态。(最简单的马尔科夫过程,一阶过程。极大简化问题) ##隐马尔科夫模型 下图是一个三个状态的隐马尔可夫状态转移图。 x:隐含状态 y:可观测的输出 a:状态转移概率 b:输出概率

掷骰子case

3个不同的骰子{D6, D4, D8}。 每个骰子面数分别为6个面(面1、面2…面6)、4个面(面1、面2…面4)、8个面(面1、面2、面3…面7、面8)。 在3个骰子里挑一个,投掷,掷10次,可能会得到一个观测序列(可观测到的输出):{面1, 面6, 面3, 面5, 面2, 面7, 面3, 面5, 面2, 面4}。这是**“可见状态链”(也就是各输出吧)。 隐马尔可夫模型中,还有一串“隐含状态链”**:各个观测值都是由哪个骰子投掷到的。比如隐含状态链可能为:{D4, D6, D8, D6, D4, D8, D6, D6, D6, D4}。

一般,这个隐含状态链就是HMM说到的马尔科夫链。

隐含状态转移概率:隐含状态之间存在转移概率。这个例子里。D4下一个状态是D6(有个转移概率),D6下一个状态是D8(有一个转移概率),…,D6下一个状态是D4(有一个转移概率)。 当假设当前状态只依赖上一个状态时,是一个一阶的马尔科夫过程。n个状态对应n方个转移概率。我们可以设定每个状态到其它各状态的转移概率。也可以设定D6后面不能接D4…等等。这个例子中,可以得到一个3*3的状态转移矩阵。

可见状态(既输出结果,既观测状态)之间没有转换概率,但是隐含状态和可见状态之间有一个概率叫做**“输出概率”**。

经典图:

用HMM做模拟需要知道

1、所有隐含状态之间的转换概率(李航统计学习方法,状态转移概率) 2、所有隐含状态到所有可见输出状态之间的输出概率(李航统计学习方法,观测概率)

但是实际应用HMM模型中,往往缺失了一部分信息。 1)比方,知道骰子有几种,每种骰子是什么,但是不知道投掷出来的骰子序列; 2)比方,只看到了很多次掷骰子的结果,剩下的什么都不知道。 怎么得到缺失信息,是一个重要的问题。

和HMM模型相关的算法分三类,解决三种问题

这块理解不够 A、【预测问题】知道骰子有多少种(有多少种隐含状态,以及状态取值?),一种骰子转移到另一种骰子的概率(隐含状态转移概率分布),根据掷骰子掷出来的结果(可见状态链),我想知道每次都是哪种骰子投出来的(隐含状态链)。 B、【概率计算问题】知道骰子有几种(有多少种隐含状态,以及状态取值?),一种骰子移到另一种骰子的概率(状态转移概率分布),根据掷骰子掷出来的结果(可见状态链),我想知道掷出这个结果的概率。 C、【】知道骰子有几种(有多少种隐含状态,以及状态取值?),不知道状态转移概率,观测到很多次掷骰子的结果,反推状态转移概率。

总结

HMM模型key word

关键:两个序列,两个概率

隐含状态数量隐含状态的可能取值隐含状态序列(既,隐马尔科夫链) 隐含状态序列长度可见状态/观测状态/观测结果可见状态链/观测状态序列 可见序列长度隐含状态到隐含状态的转移概率隐含状态到可见状态/观测结果的输出概率

统计学习方法李航,书中观测序列和可见序列概念一致。

case总结,理解上述key word

骰子有多少个(隐含状态数量:3个)骰子有哪些:D6 D4 D8(隐含状态的可能取值)该骰子掷完后是哪一面(每个隐含状态对应一个可见状态输出)该骰子掷完后是这一面的概率(每个隐含状态到可见状态的输出概率)投掷10次,每次挑到1个骰子,10个骰子,10个投掷结果(隐藏状态序列长度为10,可见状态序列长度为10)10次投完后,隐藏了一个骰子序列(隐含状态序列,马尔科夫链)10次投完后,获得一个结果序列(可见状态链)

带着问题,我们的业务

看经典图,分析

自己业务的可见状态/观测结果是什么? 可见状态序列是什么? 隐藏状态是什么?有多少个? 隐藏状态序列是什么?

**业务已有什么,没有什么,目标是什么

已有:

可见状态,既每天的数据 可见状态链

没有:

隐藏状态有多少个?都是什么?都未知

目标

目标1:

预测接下来的下一个可见状态

目标2:

预测接下来的m个可见状态

目标3:

预测季底的一个可见状态

启发到的初步建模思路

首先解决最简单的目标1. 步骤 1、根据已有的可见状态序列,设定隐藏状态n==>找出隐马尔可夫链,既隐藏状态序列 我们有多少个隐藏状态?怎么给值? 2、根据隐藏状态序列===>找出下一个隐藏状态 依靠状态转移概率分布 3、通过这个隐藏状态获得一个可见状态 依靠观测概率分布(隐藏状态到可见状态的输出概率)

最新回复(0)