机器学习 第7章-贝叶斯分类器

news2024/9/18 17:42:51

机器学习 第7章-贝叶斯分类器

7.1 贝叶斯决策论

贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。下面我们以多分类任务为例来解释其基本原理。
假设有N种可能的类别标记,即 Y = { c 1 , c 2 , . . . , c N } , λ i j Y =\{c_1,c_2,...,c_N\},λ_{ij} Y={c1,c2,...,cN}λij是将一个真实标记为 c j c_{j} cj的样本误分类为 c i c_i ci所产生的损失。

基于后验概率 P ( c i ∣ x ) P(c_i|x) P(cix)可获得将样本 x x x分类为 c i c_i ci所产生的期望损失(expected loss),即在样本 x x x上的“条件风险”(conditional risk)
R ( c i ∣ x ) = ∑ j = 1 N λ i j P ( c j ∣ x ) R(c_i|x)=∑^N_{j=1}λ_{ij}P(c_j|x) R(cix)=j=1NλijP(cjx)
所以我们需要寻找一个判定准则使得总体风险最小化。

显然,对每个样本,若h能最小化条件风险 R ( h ( x ) ∣ x ) R(h(x)|x) R(h(x)x),则总体风险 R ( h ) R(h) R(h)也将被最小化。这就产生了贝叶斯判定准则(Bayes decisionrule):为最小化总体风险,只需在每个样本上选择那个能使条件风险 R ( c ∣ x ) R(c|x) R(cx)最小的类别标记,即
h ∗ ( x ) = a r g m i n c ∈ Y R ( c ∣ x ) h^*(x)=argmin_{c∈Y}\quad R(c|x) h(x)=argmincYR(cx)
此时, h ∗ h^* h称为贝叶斯最优分类器(Bayes optimal classifer),与之对应的总体风险 R ( h ∗ ) R(h^*) R(h)称为贝叶斯风险(Bayes risk)。

1 − R ( h ∗ ) 1-R(h^*) 1R(h)反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。

想要使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率 P ( c ∣ x ) P(c|x) P(cx)。然而,在现实任务中这通常难以直接获得。从这个角度来看,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率 P ( c ∣ x ) P(c|x) P(cx)

大体来说,主要有两种策略: 给定 x x x,可通过直接建模 P ( c ∣ x ) P(c|x) P(cx)来预测 c c c,这样得到的是“判别式模型”(discriminative models);也可先对联合概率分布 P ( x , c ) P(x,c) P(x,c)建模,然后再由此获得 P ( c ∣ x ) P(c|x) P(cx),这样得到的是“生成式模型”(generative models)。

对生成式模型来说,必然考虑 P ( c ∣ x ) P(c|x) P(cx)。基于贝叶斯模型, P ( c ∣ x ) P(c|x) P(cx)可写为:
P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) P(c|x)={P(c)P(x|c)\over P(x)} P(cx)=P(x)P(c)P(xc)

7.2 极大似然估计

估计类条件概率的一种常用策略是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。

事实上,概率模型的训练过程就是参数估计(parameter estimation)过程对于参数估计,统计学界的两个学派分别提供了不同的解决方案:

频率主义学派(Frequentist)认为参数虽然未知,但却是客观存在的固定值,因此,可通过优化似然函数等准则来确定参数值;
贝叶斯学派(Bayesian)则认为参数是未观察到的随机变量,其本身也可有分布,因此,可假定参数服从一个先验分布,然后基于观测到的数据来计算参数的后验分布。

极大似然估计(MLE)来自于频率主义学派。

D c D_c Dc表示训练集 D D D中第 c c c类样本组成的集合,假设这些样本是独立同分布的,则参数 θ c θ_c θc。对于数据集 D c D_c Dc的似然是
P ( D c ∣ θ c ) = ∏ x ∈ D c P ( x ∣ θ c ) P(D_c|θ_c)=∏_{x∈D_c}P(x|θ_c) P(Dcθc)=xDcP(xθc)
θ c θ_c θc进行最大似然估计,就是寻找能最大化似然的参数 θ ^ c \hat θ_c θ^c

通常使用对数似然来替代公式中的连乘,以避免出现溢出。在连续属性情形下,假设概率密度函数 p ( x ∣ c ) ∼ N ( μ c , σ c 2 ) p(x|c)∼N(μ_c,σ^2_c) p(xc)N(μc,σc2),那么可得两个参数的极大似然估计为:
μ ^ c = 1 ∣ D c ∣ ∑ x ∈ D c x \hat μ_c={1\over |D_c|}∑_{x∈D_c}x μ^c=Dc1xDcx
σ ^ c 2 = 1 ∣ D c ∣ ∑ x ∈ D c ( x − μ ^ c ) ( x − μ ^ c ) T \hat σ^2_c={1\over |D_c|}∑_{x∈D_c}(x-\hat μ_c)(x-\hat μ_c)^T σ^c2=Dc1xDc(xμ^c)(xμ^c)T
需注意的是,这种参数化的方法虽能使类条件概率估计变得相对简单,但估计结果的准确性严重依赖于所假设的概率分布形式是否符合潜在的真实数据分布。在现实应用中,欲做出能较好地接近潜在真实分布的假设,往往需在一定程度上利用关于应用任务本身的经验知识,否则若仅凭“猜测”来假设概率分布形式,很可能产生误导性的结果。

7.3 朴素贝叶斯分类器

不难发现,基于贝叶斯公式来估计后验概率 P ( c ∣ x ) P(c|x) P(cx)的主要困难在于:类条件概率 P ( x ∣ c ) P(x|c) P(xc)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。为避开这个障碍,朴素贝叶斯分类器(naive Bayes classifer)采用了“属性条件独立性假设”(attribute conditional independence assumption):对已知类别,假设所有属性相互独立。换言之,假设每个属性独立地对分类结果发生影响。

基于属性条件独立性假设,可重写为:
P ( c ∣ x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) P(c|x)={P(c)\over P(x)}∏^d_{i=1}P(x_i|c) P(cx)=P(x)P(c)i=1dP(xic)
其中d为属性数目, x i x_i xi x x x在第 i i i个属性上的取值。

其训练过程就是基于训练集 D D D来估计类先验概率 P ( c ) P(c) P(c),并为每个属性估计条件概率。

为了避免其他属性携带的信息被训练集中未出现的属性值“抹去”在估计概率值时通常要进行“平滑”(smoothing),常用“拉普拉斯修正”(Laplaciancorrection)。

7.4 半朴素贝叶斯分类器

为了降低贝叶斯公式中估计后验概率P(c|x)的困难,朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立。于是,人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了一类称为“半朴素贝叶斯分类器”(semi-naive Bayes classifers)的学习方法。

半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。

“独依赖估计”(One-Dependent Estimator,简称 ODE)是半朴素贝叶斯分类器最常用的一种策略。顾名思议,所谓“独依赖”就是假设每个属性在类别之外最多仅依赖于一个其他属性,即
在这里插入图片描述
其中 p a i pa_i pai为属性 x i x_i xi所依赖的属性,称为 x i x_i xi的父属性。不同的做法产生不同的独依赖分类器。

最直接的做法是假设所有属性都依赖于同一个属性,称为“超父”(super-parent),然后通过交叉验证等模型选择方法来确定超父属性,由此形成了SPODE(Super-Parent ODE)方法。例如,在图 7.1(b)中, x 1 x_1 x1是超父属性
在这里插入图片描述
AODE(Averaged One-Dependent Estimator)是一种基于集成学习机制、更为强大的独依赖分类器。与SPODE通过模型选择确定超父属性不同,AODE 尝试将每个属性作为超父来构建 SPODE,然后将那些具有足够训练数据支撑的SPODE集成起来作为最终结果,即
在这里插入图片描述
其中 $D_{x_i}是在第 i i i个属性上取值为 x i x_i xi的样本的集合, m ′ m' m 为阔值常数。

7.5 贝叶斯网

贝叶斯网(Bayesian network)亦称“信念网”(belief network),它借助有向无环图(Directed Acyclic Graph,简称 DAG)来刻画属性之间的依赖关系,并使用条件概率表(Conditional Probability Table,简称 CPT)来描述属性的联合概率分布。

7.5.1 结构

贝叶斯网结构有效地表达了属性间的条件独立性。给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立,于是 B = ( G , Θ ) B=(G,Θ) B=(G,Θ)将属性 x 1 , x 2 ,。。。, x d x_1,x_2,。。。,x_d x1x2,。。。,xd的联合概率分布定义为
P B ( x 1 , x 2 , . . . , x d ) = ∏ i = 1 d P B ( x i ∣ π i ) = ∏ i = 1 d θ x i ∣ π i P_B(x_1,x_2,...,x_d)=∏^d_{i=1}P_B(x_i|π_i)=∏^d_{i=1}θ_{x_i|π_i} PB(x1,x2,...,xd)=i=1dPB(xiπi)=i=1dθxiπi
图 7.3 显示出贝叶斯网中三个变量之间的典型依赖关系
在这里插入图片描述
在“同父”(common parent)结构中,给定父结点 x 1 x_1 x1的取值,则 x 3 x_3 x3 x 4 x_4 x4条件独立。在“顺序”结构中,给定 x x x的值,则 y y y z z z条件独立。V型结构(Vstructure)亦称“冲撞”结构,给定子结点 x 4 x_4 x4的取值, x 1 x_1 x1 x 2 x_2 x2必不独立;奇妙的是,若 x 4 x_4 x4的取值完全未知,则V型结构下 x 1 x_1 x1 x 2 x_2 x2却是相互独立的。

7.5.2 学习

若网络结构已知,即属性间的依赖关系已知,则贝叶斯网的学习过程相对简单,只需通过对训练样本“计数”,估计出每个结点的条件概率表即可。但在现实应用中我们往往并不知晓网络结构,于是,贝叶斯网学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网。“评分搜索”是求解这一问题的常用办法。具体来说,我们先定义一个评分函数(score function),以此来评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。显然,评分函数引入了关于我们希望获得什么样的贝叶斯网的归纳偏好。

常用评分函数通常基于信息论准则,此类准则将学习问题看作一个数据压缩任务,学习的目标是找到一个能以最短编码长度描述训练数据的模型,此时编码的长度包括了描述模型自身所需的字节长度和使用该模型描述数据所需的字节长度。对贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码。于是,我们应选择那个综合编码长度(包括描述网络和编码数据)最短的贝叶斯网,这就是“最小描述长度”(Minimal DescriptionLength,简称 MDL)准则。

7.5.3 推断

贝叶斯网训练好之后就能用来回答“查询”(query),即通过一些属性变量的观测值来推测其他属性变量的取值。例如在西瓜问题中,若我们观测到西瓜色泽青绿、敲声浊响、根蒂蜷缩,想知道它是否成熟、甜度如何。这样通过已知变量观测值来推测待查询变量的过程称为“推断”(inference),已知变量观测值称为“证据”(evidence)。

最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率不幸的是,这样的“精确推断”已被证明是NP难的[Cooper,1990];换言之当网络结点较多、连接稠密时,难以进行精确推断,此时需借助“近似推断”通过降低精度要求,在有限时间内求得近似解。在现实应用中,贝叶斯网的近似推断常使用吉布斯采样(Gibbs sampling)来完成,这是一种随机采样方法。

7.6 EM算法

未观测变量的学名是“隐变量”(latent variable)。令 X X X表示已观测变量集, Z Z Z 表示隐变量集, Θ Θ Θ 表示模型参数。若欲对 Θ Θ Θ做极大似然估计,则应最大化对数似然
L L ( Θ ∣ X , Z ) = l n P ( X , Z ∣ Θ ) LL(Θ|X,Z)=ln P(X,Z|Θ) LL(Θ∣X,Z)=lnP(X,Z∣Θ)
然而由于 Z Z Z是隐变量,上式无法直接求解。此时我们可通过 Z Z Z对计算期望,来最大化己观测数据的对数"边际似然"
L L ( Θ ∣ X ) = l n P ( X ∣ Θ ) = l n ∑ z P ( X , Z ∣ Θ ) LL(Θ|X)=ln P(X|Θ)=ln∑_z P(X,Z|Θ) LL(Θ∣X)=lnP(X∣Θ)=lnzP(X,Z∣Θ)
EM (Expectation-Maximization)算法是常用的估计参数隐变量的利器,它是一种迭代式的方法,

其基本想法是:若参数 Θ Θ Θ已知,则可根据训练数据推断出最优隐变量 Z Z Z的值(E 步);反之,若么的值已知,则可方便地对参数 Θ Θ Θ做极大似然估计(M步)。新得到的参数值重新应用于E步,直到收敛到局部最优解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1953696.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux Vim全能攻略:实战代码,轻松掌握文本编辑神器

1. Vim简介与安装 1.1 Vim的历史与发展 Vim(Vi IMproved)是一款高度可配置的文本编辑器,它起源于1976年由Bill Joy开发的Vi编辑器。Vi是Unix系统上最古老的文本编辑器之一,因其强大的功能和高效的编辑方式而广受欢迎。随着时间的…

流媒体服务器一:搭建RTMP流媒体服务器搭建

1 安装和测试srs流媒体服务器 服务器:SRS(Simple RTMP Server,⽀持RTMP、HTTP-FLV,HLS) 推流端:ffmpeg OBS 拉流端:ffplay VLC srs播放器 1.1 安装srs流媒体服务器 官网 SRS (Simple Realtime Server) | SRS 码…

【一图流】Git下载与安装教程

下载Git Git官网:https://git-scm.com/?hlzh-cn 安装Git

全栈嵌入式C++、STM32、Modbus、FreeRTOS和MQTT协议:工业物联网(IIoT)可视化系统设计思路(附部分代码解析)

项目概述 随着工业4.0时代的到来,工业物联网(IIoT)在提高生产效率、降低运营成本和实现智能制造方面得到了广泛应用。本项目旨在开发一个全面的工业物联网监控系统,能够实时监测设备的温度、压力、振动和电流等参数,并…

浅析Jeecgboot中mybatisplus不支持Postgres SKIP LOCKED语法问题

目录 1、场景及问题 2、数据库及各框架版本信息 3、错误回放 4、根因分析及确认 5、解决问题 6、总结 1、场景及问题 场景: 在调用腾讯位置服务时有用到key值,因为每个key值都有自己的额度,所以在表里存了多个key,简称key池&…

基于Java的城市公交管理系统/SSM的城市公交查询系统/计算机专业/课设

摘 要 网络技术的不断发展,使网络成为人们的日常生活中不可缺少的一部分,而城市公交管理系统是网络的一种新型体现,它以其特有的便捷和快速的特点得到了广泛的认可。当前的城市公交管理系统不仅没有建立起整体的管理系统,为企业定…

Go语言中常见的多线程同步方法

什么是线程、进程、协程 Go 源文件经过编译器处理后,会产生可执行文件,不同系统有不同的格式。可执行文件在操作系统上执行一次,就对应一个进程 进程可以理解为执行中的程序,是一个动态的概念,同一份可执行文件执行多…

Django 表单error_messages , 表单校验提示

在Django中,error_messages是表单字段的一个参数,允许你为特定的验证错误自定义错误消息。默认情况下,Django的表单字段会为常见的验证错误提供默认的错误消息。但是,你可能想要为你的应用提供更加用户友好的或者本地化的错误消息…

成为git砖家(2): gitk 介绍

大家好,我是白鱼。这篇我们介绍 gitk。 gitk 和 fork 界面对比 当我们在 macOS 上执行 brew install git 后, 得到了 git 命令行工具。 然而这条命令并不会安装 gitk. gitk 是 git 自带的图形化界面工具,也可以称为“穷人版 fork”&#xf…

如何穿透模糊,还原图片真实面貌

目录 图像清晰化的魔法棒:AI如何穿透模糊,还原图片真实面貌 前言 论文背景 论文思路 模型介绍 复现过程 演示视频 使用方式 本文所涉及所有资源均在传知代码平台可获取。 图像清晰化的魔法棒:AI如何穿透模糊,还原图片真实面貌 在我…

使用Docker搭建MySql的主从同步+ShardingSphere搭建Mysql的读写分离

参考课程 尚硅谷ShardingSphere5实战教程(快速入门掌握核心)_哔哩哔哩_bilibili 主服务器 创建容器 docker run -d \ -p 3306:3306 \ -v /kira/mysql/master/conf:/etc/mysql/conf.d \ -v /kira/mysql/master/data:/var/lib/mysql \ -e MYSQL_ROOT…

java学习---异常

前言 由于被分母不能为0,所以代码到int yn/m;会抛出异常,停止运行下去,但是如果是个庞大的代码,因为这种小错误而整个程序崩溃,会大大影响代码整体的健壮性,所以此时就需要我们得异常处理了 选中异常代码部…

正则采集器——前端搭建

前端使用有名的饿了么管理后台,vue3版本vue3-element-admin,首先从gitee中克隆一个vue3-element-admin模板代码vue3-element-admin: Vue3 Element Admin开箱即用的中后台管理系统前端解决方案,然后在此基础上进行开发。 1、修改vite.config.…

【深入理解SpringCloud微服务】深入理解Ribbon原理并手写一个微服务负载均衡器

深入理解Ribbon原理并手写一个微服务负载均衡器 负载均衡器理解Ribbon原理手写一个微服务负载均衡器总体设计LoadBalanceClientHttpRequestFactorySimpleLoadBalanceClientSimpleLoadBalancerLoadBalanceRulespring.factories与LoadBalanceConfig 负载均衡器 在微服务架构里面…

应用层_计算机网络

文章目录 应用层HTTP用户与服务器的交互:cookieWeb缓存HTTP/2 SMTPDNS:因特网的目录服务P2P文件分发BitTorrentCDN内容分发网 应用层 应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。应用层协议定义了以下内容: 交换的…

结构性设计模式-外观模式

一、外观模式 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许…

算力共享:如何理解、标识与调控多层次算力资源的异构性和复杂性,实现智能算力网生态诸要素有效互操作?

目录 鹏程云主机和NPU计算服务器关系 NPU计算服务器 两者关系 结论 两种不同类型的处理器或计算单元 FPGA MLU NS3(Network Simulator version 3) 一、基本属性 二、主要功能与特点 三、应用与前景 对象存储和HDD存储 一、定义与特点 二、应用场景 三、总结 对…

培养前端工程化思维,不要让一行代码毁了整个程序

看《阿丽亚娜 5 号(Ariane 5)火箭爆炸》有感。 1、动手写项目之前,先进行全局性代码逻辑思考,将该做的事情,一些细节,统一建立标准,避免为以后埋雷。 2、避免使用不必要或无意义的代码、注释。…

把 网页代码 嵌入到 单片机程序中 2 日志2024/7/26

之前不是说把 网页代码 嵌入到 单片机程序中 嘛! 目录 之前不是说把 网页代码 嵌入到 单片机程序中 嘛! 修改vs的tasks.json配置 然后 测试 结果是正常的,可以编译了 但是:当我把我都html代码都写上去之后 还是会报错!!! 内部被检测到了,没辙,只有手动更新了小工具代码 …

低功耗单声道音频编解码器ES8311中文规格书介绍

特征 具有ADC和DAC的低功耗单声道音频编解码器ES8311。 ES8311 QFN20封装的外形和丝印 系统 • 高性能、低功耗多位 delta-sigma 音频 ADC 和 DAC • I2S/PCM 主站或从站串行数据端口 • 256/384Fs、USB 12/24 MHz 和其他非标准音频系统时钟 • I2C 接口 模数转换器 • 24…