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 模型,训练模型。

目录
相关文章
|
8月前
|
自然语言处理 算法 TensorFlow
隐马尔可夫模型(Hidden Markov Model
隐马尔可夫模型(Hidden Markov Model,简称 HMM)是一种统计模型,用于描述含有隐含未知参数的马尔可夫过程。它主要用于时序数据的建模和分析,能够捕捉到数据中的潜在结构和规律。HMM 模型由三个主要组成部分构成:状态转移概率、观测概率和初始状态概率。
70 3
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
RoFormer: Enhanced Transformer with Rotary Position Embedding论文解读
位置编码最近在transformer架构中显示出了有效性。它为序列中不同位置的元素之间的依赖建模提供了有价值的监督。
257 0
|
9月前
|
机器学习/深度学习 编解码 自然语言处理
DeIT:Training data-efficient image transformers & distillation through attention论文解读
最近,基于注意力的神经网络被证明可以解决图像理解任务,如图像分类。这些高性能的vision transformer使用大量的计算资源来预训练了数亿张图像,从而限制了它们的应用。
242 0
|
11月前
|
机器学习/深度学习 数据挖掘
【论文解读】Co-attention network with label embedding for text classification
华南理工出了一篇有意思的文章,将标签和文本进行深度融合,最终形成带标签信息的文本表示和带文本信息的标签表示。
124 1
|
11月前
|
数据可视化 数据挖掘
【论文解读】Dual Contrastive Learning:Text Classification via Label-Aware Data Augmentation
北航出了一篇比较有意思的文章,使用标签感知的数据增强方式,将对比学习放置在有监督的环境中 ,下游任务为多类文本分类,在低资源环境中进行实验取得了不错的效果
242 0
|
12月前
|
机器学习/深度学习 人工智能 算法
CVPR‘2023 | Cross-modal Adaptation: 基于 CLIP 的微调新范式
CVPR‘2023 | Cross-modal Adaptation: 基于 CLIP 的微调新范式
472 0
|
12月前
|
机器学习/深度学习 自然语言处理 JavaScript
R-Drop: Regularized Dropout for Neural Networks 论文笔记(介绍,模型结构介绍、代码、拓展KL散度等知识)
R-Drop: Regularized Dropout for Neural Networks 论文笔记(介绍,模型结构介绍、代码、拓展KL散度等知识)
|
机器学习/深度学习 数据挖掘
【文本分类】ACT: an Attentive Convolutional Transformer for Efficient Text Classification
【文本分类】ACT: an Attentive Convolutional Transformer for Efficient Text Classification
152 0
【文本分类】ACT: an Attentive Convolutional Transformer for Efficient Text Classification
|
机器学习/深度学习 存储 数据挖掘
【文本分类】Bag of Tricks for Efficient Text Classification
【文本分类】Bag of Tricks for Efficient Text Classification
【文本分类】Bag of Tricks for Efficient Text Classification
|
机器学习/深度学习 自然语言处理 算法
机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM)
隐马尔可夫模型(Hidden Markov Model,HMM)是结构最简单的动态贝叶斯网,这是一种著名的有向图模型,主要用于时序数据建模(语音识别、自然语言处理等)。
机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM)