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

机器学习 第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.mzph.cn/diannao/51153.shtml

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

相关文章

Transformer,注意力机制。

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

流媒体服务器二:RTMP协议详解 以及 RTMP学习到什么程度算是合格?

一个问题? 在上一节我们使用SRS搭建了RTMP环境,那么在企业开发中,是否使用第三方的RTMP服务器(例如上一节的SRS)就可以了呢?或者说:作为一个音视频开发人员,就会配置就OK了呢&#…

深入理解ESM、CJS与IIFE:JavaScript模块化的三大主流范式

随着JavaScript生态的不断发展,模块化成为了前端开发不可或缺的一部分。它允许开发者将大型的程序拆分成小块,便于管理和复用。在JavaScript中,主要有三种模块化标准:ES Modules(ESM)、CommonJS&#xff08…

JavaFX布局-TilePane

JavaFX布局-TilePane 常用属性alignmenttileAlignmentorientationhgapvgappadding 实现方式Javafxml 自动排列其子节点成网格状根据容器的大小以及子节点的数量和大小自动计算最佳的排列方式推荐子节点固定大小,参差不齐的子节点,效果很诡异 常用属性 …

普元EOS学习笔记-某些版本的EOS提供的maven获取依赖失败的问题解决

前言 普元EOS的开发包中,提供了maven,因为EOS项目的某些依赖只能从普元官方仓库获取,因此,编译EOS项目必须使用EOS提供的maven。 maven拉取依赖失败 某些版本的EOS提供的maven在编译EOS项目的时候会出现拉取失败的现象。 [FATA…

Docker 安装 Redis 单机集群总结

前言 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于 内存 、 分布式 、可选持久性的键值对( Key-Value )存储数据库 redis版本:redis:6.2.13作者:易墨 安装单机版 安装源:DockerHub 默认配置文件:配…

安装Keil5 MDK

文章目录 前言一、安装Keil5 MDK 软件以及器件支持包1. 器件支持包离线安装方式2. 器件支持包在线安装方式 二、软件注册三、驱动安装1. 安装STLINK驱动2. 安装USB转串口驱动 前言 提示:本文主要用作在学习江协科大STM32入门教程后做的归纳总结笔记,旨在…

Maven引入与打包指定目录下的第三方sdk

针对远程仓库没有的jar包&#xff0c;应该如何引入与打包&#xff1f; 1、deploy到远程仓库 申请账号与权限&#xff0c;使用mvn deploy命令发布到远程仓库或者是私有仓库。 1、在Maven的conf/settings.xml文件配置远程仓库的认证信息 <settings><!-- 配置远程仓库…

Linux网络编程之TCP

文章目录 Linux网络编程之TCP1、TCP协议的简单认识2、TCP网络编程接口2.1、socket2.2、bind2.3、listen2.4、accept2.5、connect 3、简单的TCP网络程序3.1、服务器响应程序3.2、服务器执行命令行 4、TCP客户端connect断线重连5、应用层自定义协议以及序列化和反序列化 Linux网络…

springboot整合 knife4j 接口文档

第一步&#xff1a;引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version></dependency> 第二步&#xff1a;写入配置 方…

探究Eureka服务发现机制对延迟敏感型应用的影响

引言 在现代微服务架构中&#xff0c;服务发现是实现服务间动态交互的关键组件。Eureka作为Netflix开源的服务发现框架&#xff0c;被广泛应用于Spring Cloud体系中。然而&#xff0c;对于延迟敏感型应用来说&#xff0c;服务发现机制的性能直接影响到用户体验。本文将探讨Eur…

【数据库远程连接】pycharm中相同局域网下连接别人的数据库 测试代码 不用navicat

import mysql.connector from mysql.connector import Errordef test_database_connection():try:# 连接到远程 MySQL 数据库connection mysql.connector.connect(host192.168.xxx.xxx,port3306, #数据库一般都是3306userxxx, # 替换为你的数据库用户名passwordxxxxxx, # 替…

Mindspore框架循环神经网络RNN模型实现情感分类|(五)模型训练

Mindspore框架循环神经网络RNN模型实现情感分类 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;一&#xff09;IMDB影评数据集准备 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;二&#xff09;预训练词向量 Mindspore框架循环神经网络RNN模型实现…

登录案例(JAVA)

练习1 package lx2;import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner;public class demo1 {/*需求&#xff1a;写一个登陆小案例。步骤…

JS异步中async、await讲解

文章目录 1 async、await1.1 微任务队列&宏任务队列1.2 问题引入1.3 async 函数返回值1.3.1 示例1.3.2 面试示例 1.4 await 右值类型区别1.4.1 非 thenable1.4.2 thenable类型1.4.3 Promise类型1.4.3.1 没有两个then等待1.4.3.2 循环交叉输出 1.5 awaitsync 示例说明1.5.1 …

[工具] GitHub+Gridea+GitTalk 搭建个人免费博客

文章目录 起因GitHub创建个人仓库存主页创建用于Gridea连接的Token Gridea配置 GitTalk大功告成 起因 想要搭建自己的博客网站&#xff0c;又不想花钱买域名&#xff0c;也不会前端技术&#xff0c;只能求助于简单(傻逼式)且免费的博客搭建方式。偶然间看到这种方式&#xff0…

微信答题小程序产品研发-UI界面设计

高保真原型虽然已经很接近产品形态了&#xff0c;但毕竟还不能够直接交付给开发。这时就需要UI设计师依据之前的原型设计&#xff0c;进一步细化和实现界面的视觉元素&#xff0c;包括整体视觉风格、颜色、字体、图标、按钮以及交互细节优化等。 UI设计不仅关系到用户的直观感…

docker load -i xx.tar 加载本地镜像

docker load docker load命令是用来载入镜像的。 docker load -i cuda-docker.tar就将上方的cuda-docker.tar包导入到本机环境中&#xff0c;之后执行docker run命令就可以启动docker镜像

java项目数据库 mysql 迁移到 达梦

目录 一、下载安装达梦数据库 1、下载 2、解压 3、安装 二、迁移 三、更改SpringBoot 的 yml文件 1、达梦创建用户 2、修改yml 一、下载安装达梦数据库 1、下载 下载地址 https://eco.dameng.com/download/ 点击下载 开发版 (X86平台) , 然后选择操作系统并点击立…

npm 发布, npm adduser 报错,npm publish 需要认证 authorize

在 npm 发布时&#xff0c;运行 npm adduser 报错&#xff0c;在 npm adduser 未成功的情况下 去执行 npm publish 提示需要认证 &#xff08;authorize&#xff09; 原因是 npm 源 有问题&#xff0c;需要使用正确的 npm 源。 npm error need auth This command requires you …