前言
通过前面 隐马尔可夫模型详解 和 隐马尔可夫模型三个基本问题相关算法实现 两篇博客,相信对 HMM
已经有了很好的理解,本篇将主要介绍 HMM
用于词性标注,以及 hmmlearn
框架的简单使用。
本篇代码可见:Github
一、HMM
用于词性标注
使用
nltk
自带的Brown
词库进行学习
- 安装方式:
pip install nltk
- 导入方式:
import nltk
大体步骤如下:
- 导入相关库
- 预处理词库
- 词统计(概率计算)
- 维特比算法实现,显示结果
具体内容参考代码注释
代码可见:01_用于词性标注的HMM.ipynb
二、hmmlearn
框架的简单使用
使用
hmmlearn
框架进行训练预测
- 安装方式:
pip install hmmlearn
- 导入方式:
import hmmlearn.hmm as hmm
hmmlearn框架说明:
hmmlearn中主要有两种模型,分布为:GaussianHMM
和 MultinomialHMM
;
- 如果观测值是连续的,那么建议使用
GaussianHMM
,否则使用MultinomialHMM
; - 参数:初始的隐藏状态概率π参数为:
startprob_
; - 状态转移矩阵A参数为:
transmat_
; - 状态和观测值之间的转移矩阵B参数为:
emissionprob_
(MultinomialHMM模型中)或者在GaussianHMM模型中直接给定均值(means)和方差/协方差矩阵(covars)。
2.1 MultinomialHMM
使用
本节主要是对 此文(点击) 中的盒子案例,用 hmmlearn
框架中的MultinomialHMM
进行预测。
代码可见:02_hmmlearn框架MultinomialHMM使用.ipynb
2.2 GaussianHMM
使用
本节使用 GaussianHMM
对模拟产生的数据进行训练
代码可见:03_hmmlearn框架GaussianHMM使用.ipynb
三、股票数据维度信息提取
本节主要是介绍 HMM
在金融领域中对股票数据维度信息的提取,具体内容可参考文档 HMM应用.pdf
。
代码可见:04_股票数据维度信息提取.ipynb
这里只做了股票数据维度信息提取,也就是每条数据的状态,程序中我们取了5个隐特征,大致为:大跌、小跌、不变、小涨、大涨,可根据个人业务需求增大隐特征个数。我们认为观测到的就是股票今天相当于昨天是涨了还是迭了,但是其内部具有5个状态的影响。
另外:
- 现在假定观测到的今天的股票相对于昨天是"涨",那么明天相对于今天是涨的概率是多大,以及明天相对于今天是跌的概率是多少?
- 感兴趣的可以继续往下做