机器学习基础——Task4 条件随机场

机器学习Task2——朴素贝叶斯 相关概念: 生成模型:在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它给观测值和标注数据序列指定一个联合概率分布。在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。条件概率分布可以由生成模型根据贝叶斯定理形成。常见的基于生成模型算法有高斯混合模型和其他混合模型、隐马尔可夫... 阅读详情

学习来源:https://nbviewer.jupyter.org/github/datawhalechina/team-learning/blob/master/机器学习算法基础/Task4%20条件随机场.ipynb

参考资料:https://blog.youkuaiyun.com/dcx_abc/article/details/78319246

条件随机场
马尔可夫过程定义
在这里插入图片描述
隐马尔科夫算法定义
在这里插入图片描述
条件随机场 (以线性链条件随机场为例)定义
在这里插入图片描述
基本问题
条件随机场包含概率计算问题、学习问题和预测问题三个问题。

  • 概率计算问题:已知模型的所有参数,计算观测序列Y出现的概率,常用方法:前向和后向算法;
  • 学习问题:已知观测序列Y,求解使得该观测序列概率最大的模型参数,包括隐状态序列、隐状态间的转移概率分布和从隐状态到观测状态的概率分布,常用方法:Baum-Wehch
    算法;
  • 预测问题:一直模型所有参数和观测序列Y,计算最可能的隐状态序列XX,常用算法:维特比算法。

举例说明:

import numpy as np
class CRF(object):
    '''实现条件随机场预测问题的维特比算法
    '''
    def __init__(self, V, VW, E, EW):
        '''
        :param V:是定义在节点上的特征函数,称为状态特征
        :param VW:是V对应的权值
        :param E:是定义在边上的特征函数,称为转移特征
        :param EW:是E对应的权值
        '''
        self.V  = V  #点分布表
        self.VW = VW #点权值表
        self.E  = E  #边分布表
        self.EW = EW #边权值表
        self.D  = [] #Delta表,最大非规范化概率的局部状态路径概率
        self.P  = [] #Psi表,当前状态和最优前导状态的索引表s
        self.BP = [] #BestPath,最优路径
        return      
    def Viterbi(self):
        '''
        条件随机场预测问题的维特比算法,此算法一定要结合CRF参数化形式对应的状态路径图来理解,更容易理解.
        '''
        self.D = np.full(shape=(np.shape(self.V)), fill_value=.0)
        self.P = np.full(shape=(np.shape(self.V)), fill_value=.0)
        for i in range(np.shape(self.V)[0]):
            #初始化
            if 0 == i:
                self.D[i] = np.multiply(self.V[i], self.VW[i])
                self.P[i] = np.array([0, 0])
                print('self.V[%d]='%i, self.V[i], 'self.VW[%d]='%i, self.VW[i], 'self.D[%d]='%i, self.D[i])
                print('self.P:', self.P)
                pass
            #递推求解布局最优状态路径
            else:
                for y in range(np.shape(self.V)[1]): #delta[i][y=1,2...]
                    for l in range(np.shape(self.V)[1]): #V[i-1][l=1,2...]
                        delta = 0.0
                        delta += self.D[i-1, l]                      #前导状态的最优状态路径的概率
                        delta += self.E[i-1][l,y]*self.EW[i-1][l,y]  #前导状态到当前状体的转移概率
                        delta += self.V[i,y]*self.VW[i,y]            #当前状态的概率
                        print('(x%d,y=%d)-->(x%d,y=%d):%.2f + %.2f + %.2f='%(i-1, l, i, y, \
                              self.D[i-1, l], \
                              self.E[i-1][l,y]*self.EW[i-1][l,y], \
                              self.V[i,y]*self.VW[i,y]), delta)
                        if 0 == l or delta > self.D[i, y]:
                            self.D[i, y] = delta
                            self.P[i, y] = l
                    print('self.D[x%d,y=%d]=%.2f\n'%(i, y, self.D[i,y]))
        print('self.Delta:\n', self.D)
        print('self.Psi:\n', self.P)
        #返回,得到所有的最优前导状态
        N = np.shape(self.V)[0]
        self.BP = np.full(shape=(N,), fill_value=0.0)
        t_range = -1 * np.array(sorted(-1*np.arange(N)))
        for t in t_range:
            if N-1 == t:#得到最优状态
                self.BP[t] = np.argmax(self.D[-1])
            else: #得到最优前导状态
                self.BP[t] = self.P[t+1, int(self.BP[t+1])]
        #最优状态路径表现在存储的是状态的下标,我们执行存储值+1转换成示例中的状态值
        #也可以不用转换,只要你能理解,self.BP中存储的0是状态1就可以~~~~
        self.BP += 1
        print('最优状态路径为:', self.BP)
        return self.BP
def CRF_manual():   
    S = np.array([[1,1],   #X1:S(Y1=1), S(Y1=2)
                  [1,1],   #X2:S(Y2=1), S(Y2=2)
                  [1,1]])  #X3:S(Y3=1), S(Y3=1)
    SW = np.array([[1.0, 0.5], #X1:SW(Y1=1), SW(Y1=2)
                   [0.8, 0.5], #X2:SW(Y2=1), SW(Y2=2)
                   [0.8, 0.5]])#X3:SW(Y3=1), SW(Y3=1)
    E = np.array([[[1, 1],  #Edge:Y1=1--->(Y2=1, Y2=2)
                   [1, 0]], #Edge:Y1=2--->(Y2=1, Y2=2)
                  [[0, 1],  #Edge:Y2=1--->(Y3=1, Y3=2) 
                   [1, 1]]])#Edge:Y2=2--->(Y3=1, Y3=2)
    EW= np.array([[[0.6, 1],  #EdgeW:Y1=1--->(Y2=1, Y2=2)
                   [1, 0.0]], #EdgeW:Y1=2--->(Y2=1, Y2=2)
                  [[0.0, 1],  #EdgeW:Y2=1--->(Y3=1, Y3=2)
                   [1, 0.2]]])#EdgeW:Y2=2--->(Y3=1, Y3=2)
    crf = CRF(S, SW, E, EW)
    ret = crf.Viterbi()
    print('最优状态路径为:', ret)
    return 
if __name__=='__main__':
    CRF_manual()
CentOS 7升级GCC踩坑记:明明装了centos-release-scl,为啥找不到devtoolset-9-gcc-c++? 本文详细记录了在CentOS 7系统中升级GCC时遇到的`devtoolset-9-gcc-c++`不可用问题及其解决方案。通过分析`centos-release-scl`安装不完整的原因,提供了从清理残留、重新安装仓库配置到完整安装devtoolset-9工具链的全套操作指南,帮助开发者彻底解决类似环境配置难题。 阅读详情

相关推荐

曙光服务器RAID配置避坑指南:MegaRAID SAS 9361-8i实战(含Foreign状态处理)

本文详细解析了曙光服务器搭配MegaRAID SAS 9361-8i控制器的RAID配置全流程,包括RAID0和RAID5的创建、Foreign状态处理及性能优化策略。特别针对磁盘迁移中的Foreign状态问题,提供了系统化的解决方案和高级恢复技巧,助力企业级IT运维提升存储配置的稳定性和可靠性。

weixin_29200741的博客 415

机器学习--决策树理论知识(二)

文章转自:http://burningcloud.cn/article/136/index.html

陈泊舟的博客 1537

set_data_check专题[使用,report_timing,setup/hold检查]

set_data_check用于约束『数据-对-数据』的『建立保持』时间检查,通常被称为非时序约束 ( non-sequential constraints ), 理论上set_data_check 可以设在任意的两个data pin 上,其中一个pin 称为 constrained pin 类似于寄存器的data pin, 另一个pin 称为related pin 类似于寄存器的clock pin.

cy413026的博客 1万+

机器学习算法学习---降维技术(二)

奇异值分解优点:简化数据,去除噪声,提高算法的结果。缺点:数据的转换可能难以理解。适用数据:数值型1、SVD的应用(1)最早的SVD应用之一就是信息检索,利用SVD的方法为隐性语义索引(LSI)或隐性语义分析(LSA)(2)推荐系统2、矩阵分解3、python实现from numpy import * from numpy import linalg U,Sigma,VT=linalg.svd(...

weixin_33969116的博客 236

光线追踪渲染实战:蒙特卡洛路径追踪及其c++实现

光线追踪超越了传统的图形流水线,是一种现代的渲染。光线追踪是一种基于物理的渲染方法,通过模拟光在介质中的真实表现来输出足以逼近现实的图像。光线从光源出发,经过各种反射折射,进入摄像机。通过渲染方程描述一点的颜色,并且通过蒙特卡洛方法求解渲染方程来获取最终的像素颜色。

AKGWSB 's blog 1万+

Rust 语言入门

Rust 使 对您的编辑或工具或代码所在的位置没有特定要求,因此 如果您更喜欢使用集成开发环境 (IDE) 而不是 命令行,请随意使用您最喜欢的 IDE。对于简单的程序来说,只编译 是可以的,但作为你的项目 增长,您将需要管理所有选项并轻松共享您的 法典。接下来,我们将向您介绍 Cargo 工具,它将帮助您编写 真实世界的 Rust 程序。现在您已经安装了 Rust,是时候编写您的第一个 Rust 程序了。这不重要 到你的代码所在的 Rust,但对于本书中的练习和项目, 我们建议在你的主目录中创建一个。

JohnChen(Net) 1476

Machine-Learning:第4章 条件随机场

第4章 条件随机场本章思维导图本章内容概要马尔可夫过程隐马尔科夫算法条件随机场 (以线性链条件随机场为例) 本章思维导图 (待更新) 本章内容概要 马尔可夫过程 定义 假设一个随机过程中,tnt_ntn​ 时刻的状态xnx_nxn​的条件发布,只与其前一状态xn−1x_{n-1}xn−1​ 相关,即: P(xn∣x1,x2,...,xn−1)=P(xn∣xn−1) P(x_n|x_1,...

sinat_38059712的博客 620

【PADS-开发指南】

馒头破戒大师

sinat_23896491的博客 3227

NLP经典算法复现!CRF原理及实现代码

Datawhale作者:丁媛媛,Datawhale优秀学习者寄语:本文先对马尔可夫过程及隐马尔可夫算法进行了简单的介绍;然后,对条件随机场的定义及其三种形式进行了详细推导;最后,介绍...

Datawhale 3531

人工智能---什么是Transformer?

Transformer是一种强大的神经网络架构,最初由Google的研究人员在论文《Attention is All You Need》中提出,用于自然语言处理任务,特别是在机器翻译方面取得了巨大成功。Transformer的核心思想是完全基于自注意力机制(self-attention mechanism)来实现序列到序列(sequence-to-sequence)的学习。它在自然语言处理(NLP)和其他序列到序列任务中表现出色,逐渐成为该领域的主流模型。近些年也逐渐在自动驾驶领域有所应用。

智能汽车人的博客 3955

YOLO26涨点改进 | 全网独家创新,注意力改进篇 | TGRS 2025 | 引入APCM自适应像素级协同机制,动态增强目标区域、抑制背景噪声,助力YOLO26做红外小目标检测有效涨点

本文提出一种基于APCM模块改进的YOLO26网络模型,通过像素级局部-全局协同建模动态增强目标特征并抑制背景噪声。APCM模块采用轻量化设计,无需复杂参数,在特征提取阶段有效提升目标区域特征表达质量,尤其适用于低对比度和复杂场景下的目标检测。实验表明,该方法能显著提高小目标检测精度和模型鲁棒性,同时保持较低计算开销。模块通过局部特征分支和全局特征分支的协同融合,实现了对红外小目标的有效增强,在NUAA-SIRST和IRSTD-1K数据集上性能优于现有方法。文章还提供了完整的代码实现和配置指南。

Ai缝合怪、助力小伙伴高效发论文 190

条件随机场入门

原著: Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data 2001年视频教程: 邹博(PS:7月算法里有很多算法视频公开课)有向图模型(Directed Graphical Models,DGM),又称作贝叶斯网络(Bayesian Network) 无向图模型(U

藏知阁 1977

PMO与供应链管理的整合:端到端项目交付的优化策略

在当今全球化和市场竞争日益激烈的环境中,组织面临着前所未有的项目复杂性和交付压力。传统上相互独立的项目管理办公室(PMO)与供应链管理(SCM)正逐渐意识到:只有通过无缝整合,才能实现真正高效的端到端项目交付。本文深入探讨了PMO与供应链管理整合的战略价值、核心框架和实施路径,通过生动的比喻、实际案例和实用工具,展示了如何打破部门壁垒,构建协同高效的项目生态系统。无论您是PMO负责人、供应链专业人士还是高级管理层,都将从本文获得重塑项目交付模式、优化资源利用、降低风险并提升组织竞争力的宝贵见解和行动指南。

项目管理的博客 948

机器学习算法Task4条件随机场

CRF 原理推荐看知乎: https://www.zhihu.com/question/35866596/answer/236886066 import numpy as np class CRF(object): '''实现条件随机场预测问题的维特比算法 ''' def __init__(self, V, VW, E, EW): ''' ...

飞的博客 250

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Task04条件随机场

条件随机场 条件随机场是一种判别式无向图模型。条件随机场试图对多个变量在给定观测值后的条件概率进行建模。 给定X=(x1,x2,…,xn),Y=(y1,y2,…,yn)X=(x_1,x_2,\dots,x_n),Y=(y_1,y_2,\dots,y_n)X=(x1​,x2​,…,xn​),Y=(y1​,y2​,…,yn​)均为线性链表示的随机变量序列,若在给随机变量序列 XXX 的条件下,随机变量...

joejoeqian的博客 203

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Datawhale-机器学习算法-Task4 条件随机场

一. 马尔可夫过程 1.1定义 假设一个随机过程中,tnt_ntn​ 时刻的状态xnx_nxn​的条件发布,只与其前一状态xn−1x_{n-1}xn−1​ 相关,即: P(xn∣x1,x2,...,xn−1)=P(xn∣xn−1) P(x_n|x_1,x_2,...,x_{n-1}) = P(x_n|x_{n-1}) P(xn​∣x1​,x2​,...,xn−1​)=P(xn​∣xn−1​...

jhb1021821368的博客 231

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Task04:条件随机场

理解条件随机场最好的办法就是用一个现实的例子来说明它。但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人都是大牛,不屑于举例子吧。于是乎,我翻译了这篇文章。希望对其他伙伴有所帮助。 原文在这里[http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/] 想直接看英文的朋友可以直接点进去了。我在翻...

csdnshenjiaye的博客 173

机器学习算法——Task04条件随机场(CRF)

1. 前言   最近看了一些有关于CRF的论文,基...

qq_44915960的博客 605

机器学习之条件随机场(CRF) 学习笔记-Datawhale Task04

Author Bryce230 e-mail 2540892461@qq.com Software win10,Pycharm2019.3.3,Python3.7.7 条件随机场笔记-Datawhale Task041 马尔可夫过程2 隐马尔科夫算法3 条件随机场4 CRF与HMM的比较5 CRF基本问题6 预测问题之维特比算法7 代码实现8 参考资料 1 马尔可夫过程 定...

Bryce230的博客 418

机器学习笔记-Task04-条件随机场CRF(Conditional Random Field)

文章目录前言1.相关概念1.1有向图 VS 无向图1.1.1有向图1.1.2无向图1.2 生成模型 VS判别模型1.2.1 生成模型(generative model)1.2.2判别模型(discriminative model)2.隐Markov模型(HMM)2.1Markov过程2.2 隐Markov模型2.2.1 两大假设2.2.2五个要素2.3问题3.MEMM(最大熵Markov模型)3....

Yicen 1142

机器学习算法基础-打卡-day4

Task04:条件随机场

ban1818的博客 341

机器学习 Task4

条件随机场 相关链接 如何直观地理解条件随机场,并通过PyTorch简单地实现 https://baijiahao.baidu.com/s?id=1600510002841663634&wfr=spider&for=pc 条件随机场(CRF) https://blog.youkuaiyun.com/Scythe666/article/details/82021692 如何轻松愉快地...

qq_24059779的博客 228

Datawhale-机器学习-task4

条件随机场 1.马尔科夫过程:假设一个随机过程中,后一个时刻的状态只与前一个时刻的状态值有关,则称这个过程为马尔科夫过程。 2.隐马尔科夫算法:是对含有未知参数(隐状态)的马尔可夫链进行建模的生成模型,在隐马尔科夫模型中,包含隐状态 和 观察状态,隐状态xi对于观察者而言是不可见的,而观察状态yi对于观察者而言是可见的。隐状态间存在转移概率,隐状态 xi到对应的观察状态 yi间存在输出概率。 3....

An_apple6的博客 301

DataWhale——机器学习:条件随机场

Task04:条件随机场 马尔可夫过程 隐马尔可夫算法 条件随机场 一、马尔可夫过程   首先了解一下马尔可夫过程,定义如下:   假设一个随机过程中,tnt_ntn​ 时刻的状态xnx_nxn​的条件分布,只与其前一状态xn−1x_{n-1}xn−1​ 相关,即: P(xn∣x1,x2,...,xn−1)=P(xn∣xn−1) P(x_n|x_1,x_2,...,x_{n-1}) ...

Katniss的Blog 232

机器学习算法入门Task04

import numpy as np class CRF(object): '''实现条件随机场预测问题的维特比算法 ''' def __init__(self, V, VW, E, EW): ''' :param V:是定义在节点上的特征函数,称为状态特征 :param VW:是V对应的权值 :...

weixin_41948788的博客 152

机器学习Task2

知识点梳理 相关概念(生成模型、判别模型) 先验概率、条件概率 贝叶斯决策理论 贝叶斯定理公式 极值问题情况下的每个类的分类概率 下溢问题如何解决 零概率问题如何解决? 优缺点 sklearn参数详解,Python绘制决策树 sklearn接口 from sklearn.naive_bayes import GaussianNB from sklearn.datasets import loa...

Xiaobai_rabbit0的博客 384
上一篇: Joyful Pandas--Task03分组
下一篇: Joyful pandas--Task04 变形
Simone_future
博客等级 码龄7年 0粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值