首页 > 其他分享 >机器学习-概率图模型系列-隐含马尔科夫模型-33

机器学习-概率图模型系列-隐含马尔科夫模型-33

时间:2024-01-13 11:13:12浏览次数:32  
标签:box 状态 33 模型 马尔科夫 black 序列 id red

目录
注:参考链接 https://www.cnblogs.com/pinard/p/6945257.html

1. Hidden Markov Model

隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用,
深度学习的崛起,尤其是RNN,LSTM等神经网络序列模型的火热,HMM的地位有所下降,
使用HMM模型时我们的问题一般有这两个特征:
1)序列问题,比如时间序列,或者状态序列。例如:医学上的心电图,血压血氧图,睡眠数据,等。
2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。
事务的本质,真理往往是很难把握,但是可以透过现象看本质,
例如, 有的时候,一句话只说了前半句,是不是有的时候不用说后半句,其实你就已经露馅了

2. HMM模型定义

Q是所有可能的隐藏状态的集合,V 是所有可能的观测状态的集合。

N 是可能的隐藏状态数,M是所有的可能的观察状态数。

对于一个长度为T的序列,I对应的状态序列, O是对应的观察序列,即:

其中,任意一个隐藏状态it∈Q,任意一个观察状态ot∈V

状态转移矩阵,某一个隐藏状态不仅仅只依赖于前一个隐藏状态

观察状态只仅仅依赖于当前时刻的隐藏状态

初始时刻的隐藏状态概率分布Π

HMM模型可以由一个三元组λ表示如下:

用一个简单的实例来描述上面抽象出的HMM模型。这是一个盒子与球的模型,例子来源于李航的《统计学习方法》。

import random

box0 = ["red", "red", "red", "red", "red", "black", "black", "black", "black", "black"]  # 5 red   5 black
box1 = ["red", "red", "red", "red", "black", "black", "black", "black", "black", "black"]  # 4 red    black
box2 = ["red", "red", "red", "red", "red", "red", "red", "black", "black", "black"]  # 7 red   3 black
boxes = [box0, box1, box2]

pai = [0.2, 0.4, 0.4]  # 初始

A = [[0.5, 0.2, 0.3],
     [0.3, 0.5, 0.2],
     [0.2, 0.3, 0.5]]


def decide_next_box(distribute):
    r = random.random()
    if r < distribute[0]:
        return 0
    elif distribute[0] < r < distribute[0] + distribute[1]:
        return 1
    return 2


def box_trans(prev):
    next_distribute = A[prev]
    return decide_next_box(next_distribute)


def get_bal(box_id):
    box = boxes[box_id]
    return random.choice(box)


if __name__ == '__main__':
    observes = []
    # 以pai分布 确定第一个盒子
    box_id = decide_next_box(pai)
    print("初始的box: %s" % box_id)

    for i in range(10):
        observ = get_bal(box_id)
        print("")
        print(f"{i}----观测值:{observ}")
        observes.append(observ)
        print("前一个 box_id: %s 转移到" % box_id, end="")
        box_id = box_trans(box_id)
        print("后一个 box_id: %s " % box_id, end="")
    print("")
    print(observes)

总结一下 HMM 序列的生成过程:
输入的是HMM的模型:,观测序列的长度T
输出:

根据初始状态概率分布生成隐藏状态i1,
for t from 1 to T:
1, 按照隐藏状态it的观测状态分布B生成观察状态ot
2. 按照隐藏状态it的状态转移概率分布A产生隐藏状态it+1

输出观测序列:

标签:box,状态,33,模型,马尔科夫,black,序列,id,red
From: https://www.cnblogs.com/cavalier-chen/p/17962124

相关文章

  • [Maven] 02 - POM模型与常见插件
    POM模型1依赖关系Maven一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。针对此种情形,Maven提供了一种高度控制的方法。通俗理解:依赖谁就是将谁的jar包添加到本项目中。可以依赖中央仓......
  • 如何开发医疗保险欺诈识别监测模型中的模型训练与调优?
    医疗保险欺诈识别模型的训练与调优是一个关键的步骤,它直接影响模型的性能。以下是一些建议:1.数据准备与预处理:数据清理:处理缺失值、异常值,确保数据的质量。特征工程:提取有助于欺诈检测的特征,可能需要与领域专家一起进行。数据平衡:处理正负样本不平衡,可以考虑欠采样......
  • 如何开发医疗保险欺诈识别监测模型中的模型选择与构建?
    开发医疗保险欺诈识别监测模型时,选择合适的模型和构建有效的模型是至关重要的。以下是一些建议:模型选择:逻辑回归:适用于线性关系,简单、快速,容易解释。决策树和随机森林:能够处理非线性关系,对异常值和噪声相对鲁棒,易于解释。支持向量机(SVM):在高维空间中表现良好,对于......
  • 如何开发医疗保险欺诈识别监测模型中的特征工程?
    在开发医疗保险欺诈识别监测模型时,特征工程是一个关键的步骤,它有助于提取、转换和选择最相关的特征,以改善模型的性能。以下是在开发医疗保险欺诈识别监测模型时进行特征工程的一些建议:基本特征提取:提取基本的医疗保险相关特征,如就医次数、就医地点、就医科室、医疗费用等。......
  • 医疗保险欺诈识别监测模型分析
    以下是开发医疗保险欺诈识别监测模型的一般性步骤:数据集分析与预处理:对给定的16000条数据集进行初步分析,了解数据的结构、特征。进行数据清洗,处理缺失值、异常值等。进行多维特征信息分析,以了解医疗保险欺诈的潜在特征。特征工程:提取能够描述医疗保险欺诈的特征因子......
  • 开发医疗保险欺诈识别监测模型如何进行数据集分析与预处理
    数据集加载:使用工具如Pandas库加载数据。使用pd.read_csv()等函数加载数据集到DataFrame。初步数据探索:使用head()、info()、describe()等方法查看数据的前几行、基本信息和统计摘要。使用shape属性获取数据集的大小。处理缺失值:使用isnull()和sum()方法查看每列......
  • 2024 爱分析 · AI 与大模型高峰论坛:和鲸喜获两项殊荣!
    1月9日下午,“2024爱分析·AI与大模型高峰论坛”在京举办。本次论坛以“智能涌现,价值焕新”为主题,汇聚众多专家学者、实践先驱,共同探讨AI与大模型在企业内的新场景、新价值、新路径。论坛中,和鲸科技成功入选“2023爱分析·大模型‘璀璨星辰’Top榜单”,并荣获“2023......
  • 从工程化角度,详解鹏程・脑海大模型训练过程
    我们有幸邀请到了鹏城实验室高效能云计算所算法工程师陶恒韬老师来进行鹏城。脑海大模型训练过程的讲解。在课程中,陶老师从工程化的角度,对鹏城。脑海大模型训练语料处理、模型训练优化、模型应用等方面做出了全面详细的经验分享。鹏城。脑海大模型介绍鹏城・脑海(PengChengMind)大模......
  • Mixtral 8X7B MoE模型基于PAI的微调部署实践
    作者:熊兮、求伯、一耘引言Mixtral8x7B是MixtralAI最新发布的大语言模型,在许多基准测试上表现优于GPT-3.5,是当前最为先进的开源大语言模型之一。阿里云人工智能平台PAI是面向开发者和企业的机器学习/深度学习平台,提供了对于Mixtral8x7B模型的全面支持,开发者和企业用户可以基......
  • Mixtral 8X7B MoE模型基于阿里云人工智能平台PAI实践合集
    作者:熊兮、贺弘、临在Mixtral8x7B大模型是MixtralAI推出的基于decoder-only架构的稀疏专家混合网络(Mixture-Of-Experts,MOE)开源大语言模型。这一模型具有46.7B的总参数量,对于每个token,路由器网络选择八组专家网络中的两组进行处理,并且将其输出累加组合,在增加模型参数总量的同时,优......