Hidden Markov Model,简称 HMM

简介: 隐马尔可夫模型(Hidden Markov Model,简称 HMM)是一种统计模型,用于描述由隐藏的马尔可夫链随机生成观测序列的过程。它是一种生成模型,可以通过学习模型参数来预测观测序列的未来状态。HMM 主要包括以下几个步骤:

隐马尔可夫模型(Hidden Markov Model,简称 HMM)是一种统计模型,用于描述由隐藏的马尔可夫链随机生成观测序列的过程。它是一种生成模型,可以通过学习模型参数来预测观测序列的未来状态。HMM 主要包括以下几个步骤:

  1. 初始化:设置初始状态概率向量和状态转移概率矩阵。
  2. 训练:通过观测序列学习模型参数,包括状态概率分布和观测概率分布。
  3. 预测:根据训练好的模型参数,预测未来状态。
    HMM 的应用场景包括:
  4. 语音识别:通过分析语音信号的时序特征,识别说话人的语音内容。
  5. 自然语言处理:用于词性标注、命名实体识别等任务。
  6. 生物信息学:分析基因表达数据的时序特征,研究基因之间的相互作用。
  7. 金融领域:预测股票价格、汇率等金融数据的未来走势。
    下面是一个简单的 HMM Demo,使用 Python 语言实现,基于 Iris 数据集进行演示:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.hmm import MultinomialHMM

加载数据集

iris = load_iris()
X = iris.data
y = iris.target

数据预处理

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
scaler = StandardScaler(X_train)
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

创建 HMM 模型

n_components = 2
model = MultinomialHMM(n_components=n_components)

训练模型

model.fit(X_train, y_train)

预测

y_pred = model.predict(X_test)

可视化结果

plt.subplot(2, 1, 1)
plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap='viridis')
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap='viridis', alpha=0.5)
plt.plot(X_test[:, 0], X_test[:, 1], 'rx', markersize=10)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('HMM')
plt.subplot(2, 1, 2)
plt.bar(range(ncomponents), model.startprob)
plt.xlabel('State')
plt.ylabel('Probability')
plt.title('Starting Probabilities')
plt.show()
CopyCopy

在这个示例中,我们使用了 Iris 数据集,首先对数据进行预处理,然后创建一个 HMM 模型,训练模型。

目录
相关文章
|
自然语言处理 算法 TensorFlow
隐马尔可夫模型(Hidden Markov Model
隐马尔可夫模型(Hidden Markov Model,简称 HMM)是一种统计模型,用于描述含有隐含未知参数的马尔可夫过程。它主要用于时序数据的建模和分析,能够捕捉到数据中的潜在结构和规律。HMM 模型由三个主要组成部分构成:状态转移概率、观测概率和初始状态概率。
113 3
|
3月前
|
机器学习/深度学习 算法 测试技术
【博士每天一篇文献-算法】A Simple Way to Initialize Recurrent Networks of Rectified Linear Units
本文介绍了一种新的递归神经网络(RNN)初始化方法,通过使用单位矩阵或其缩放版本来初始化修正线性单元(ReLU)组成的RNN,称为IRNN,该方法在处理长期依赖任务时表现优异,与长短期记忆(LSTM)RNN性能相当。
34 1
|
6月前
|
机器学习/深度学习 自然语言处理 ice
[GloVe]论文实现:GloVe: Global Vectors for Word Representation*
[GloVe]论文实现:GloVe: Global Vectors for Word Representation*
50 2
[GloVe]论文实现:GloVe: Global Vectors for Word Representation*
|
6月前
|
机器学习/深度学习 BI
[RoFormer]论文实现:ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING
[RoFormer]论文实现:ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING
59 1
|
机器学习/深度学习 数据挖掘
【论文解读】Co-attention network with label embedding for text classification
华南理工出了一篇有意思的文章,将标签和文本进行深度融合,最终形成带标签信息的文本表示和带文本信息的标签表示。
241 1
|
机器学习/深度学习 编解码 自然语言处理
DeIT:Training data-efficient image transformers & distillation through attention论文解读
最近,基于注意力的神经网络被证明可以解决图像理解任务,如图像分类。这些高性能的vision transformer使用大量的计算资源来预训练了数亿张图像,从而限制了它们的应用。
527 0
|
机器学习/深度学习 人工智能 自然语言处理
RoFormer: Enhanced Transformer with Rotary Position Embedding论文解读
位置编码最近在transformer架构中显示出了有效性。它为序列中不同位置的元素之间的依赖建模提供了有价值的监督。
391 0
|
机器学习/深度学习 自然语言处理 数据可视化
SimCSE: Simple Contrastive Learning of Sentence Embeddings论文解读
本文介绍了SimCSE,一个简单的对比学习框架,极大地推进了最先进的句子嵌入。我们首先描述了一种无监督方法,该方法采用一个输入句子,并在一个对比目标中预测自己
294 0
|
数据可视化 数据挖掘
【论文解读】Dual Contrastive Learning:Text Classification via Label-Aware Data Augmentation
北航出了一篇比较有意思的文章,使用标签感知的数据增强方式,将对比学习放置在有监督的环境中 ,下游任务为多类文本分类,在低资源环境中进行实验取得了不错的效果
412 0
|
机器学习/深度学习 人工智能 算法
CVPR‘2023 | Cross-modal Adaptation: 基于 CLIP 的微调新范式
CVPR‘2023 | Cross-modal Adaptation: 基于 CLIP 的微调新范式
1404 0