【贝叶斯分类3】半朴素贝叶斯分类器

article/2025/10/6 6:11:29

文章目录

  • 1. 朴素贝叶斯分类器知识回顾
    • 1.1 类别,特征
    • 1.2 风险,概率
    • 1.3 类条件概率
  • 2. 半朴素贝叶斯分类器学习笔记
    • 2.1 引言
    • 2.2 知识卡片
    • 2.3 半朴素贝叶斯分类器
    • 2.4 独依赖估计
      • 2.4.1 简介
      • 2.4.2 SPODE(超父独依赖估计)
      • 2.4.3 AODE(平均独依赖估计)
      • 2.4.4 TAN(树增广朴素贝叶斯)
  • 3. 半朴素贝叶斯分类器拓展
    • 3.1 kDE(k依赖估计)

1. 朴素贝叶斯分类器知识回顾

1.1 类别,特征

  我们根据贝叶斯决策论,或者说是贝叶斯分类原理,首先得到的是一个期望损失 R ( c i ∣ x ) = ∑ j = 1 N λ i j P ( c j ∣ x ) R(c_i|x)=\sum_{j=1}^N\lambda_{ij}P(c_j|x) R(cix)=j=1NλijP(cjx)】。贝叶斯判定准则就是要让总体风险最小,从而可推到要求部分风险最小【 h ∗ ( x ) = a r g m i n c ∈ Y R ( c ∣ x ) h^*(x)=arg\ min_{c\in Y}R(c|x) h(x)=arg mincYR(cx)】。
  可以把 c c c 看作“类别”,把 x x x 看作“特征”。 R ( c ∣ x ) R(c|x) R(cx) 就是一种类别,它有自己的特征,如【好瓜:色泽=青绿,纹理=清晰,…,密度 ≥ \geq 0.697】, c = { 好 瓜 , 坏 瓜 } c=\{好瓜,坏瓜\} c={} x = { 青 绿 , 清 晰 , . . . , 密 度 } x=\{青绿,清晰,...,密度\} x={绿...},我们根据特征算类别(正确与否)的风险,风险越小,代表类别越正确。

1.2 风险,概率

  根据误判损失,我们进一步推导出 R ( c ∣ x ) = 1 − P ( c ∣ x ) R(c_|x)=1-P(c|x) R(cx)=1P(cx) P ( c ∣ x ) = P ( 类 别 ∣ 特 征 ) P(c|x)=P(类别|特征) P(cx)=P() 可以理解为:这个类别,通过这些特征,出现的(或者讲事件发生的概率)概率。例如:【好瓜:色泽=青绿,纹理=清晰,…,密度 ≥ \geq 0.697】,我们就说:【色泽=青绿,纹理=清晰,…,密度 ≥ \geq 0.697】就是好瓜(概率很大)。所以这就是根据特征,不断调整类别的概率,是后验概率
  我们自然希望,根据这些特征推出来是好瓜的概率越大越好,所以有:【 h ∗ ( x ) = a r g m a x c ∈ Y P ( c ∣ x ) h^*(x)=arg\ max_{c\in Y}P(c|x) h(x)=arg maxcYP(cx),数据集有几个类别,一个样本就有几个 P ( c ∣ x ) P(c|x) P(cx),我们根据这几个 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)=\frac{P(c)P(x|c)}{P(x)} P(cx)=P(x)P(c)P(xc)】,它是所有属性的联合概率(实际中,会遇到:组合爆炸,缺少值等),难点在求类条件概率 P ( x ∣ c ) P(x|c) P(xc)。我们朴素贝叶斯为了解决后验概率 P ( c ∣ x ) P(c|x) P(cx))不好算的问题,提出了【属性条件独立性假设】(属性也可以叫特征)。

1.3 类条件概率

  朴素贝叶斯分类器的表达式:【 h n b ( x ) = a r g m a x c ∈ Y P ( c ) ∏ i = 1 d P ( x i ∣ c ) h_{nb}(x)=arg\ max_{c\in Y}\ P(c)\prod_{i=1}^dP(x_i|c) hnb(x)=arg maxcY P(c)i=1dP(xic)】,重点在求类条件概率上,基本上我们以数据集计算过程中都用的是“缩减样本空间法”,而没有用概率论上的一些条件概率的计算公式。简单来说,就是统计样本个数,再做比例运算。

2. 半朴素贝叶斯分类器学习笔记

2.1 引言

  朴素贝叶斯分类器采用“属性独立性假设”,现实任务中很难成立。于是,人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了一类称为"半朴素贝叶斯分类器" (semi-naïve Bayes classifiers) 的学习方法。基本思想:【适当考虑一部分属性间的相互依赖信息】。

2.2 知识卡片

	1. 半朴素贝叶斯分类器:semi-naive Bayes classifiers2. 又叫:SNB算法

2.3 半朴素贝叶斯分类器

  • 半朴素贝叶斯分类器的表达式

p a i pa_i pai 是属性 x j x_j xj 所依赖的属性,称为 x j x_j xj 的父属性
P ( c ∣ x ) ∝ P ( c ) ∏ j = 1 d P ( x j ∣ c , p a i ) P(c|x)\propto P(c)\prod_{j=1}^dP(x_j|c,pa_{i}) P(cx)P(c)j=1dP(xjc,pai)

  • 独依赖分类器

  问题的关键就转化为如何确定每个属性的父属性,不同的做法产生不同的独依赖分类器

2.4 独依赖估计

2.4.1 简介

- "英文:"One-Dependent Estimator,简称:ODE- "用途:"它是半朴素贝叶斯分类器,适当考虑一部分属性间的相互依赖信息,最常采用的一种策略。- "ODE原理:"假设每个属性在类别之外最多仅依赖于一个其他属性- "适当考虑一部分属性间的相互依赖信息:"考虑策略不同,形成的独依赖分类器也不同。代表:1)SPODE(Super-Parent ODE)2)TAN(Tree Augmented naive Bayes3)AODE(Average ODE)

2.4.2 SPODE(超父独依赖估计)

  • 原理

  所用特征都依赖唯一的一个特征,这个被依赖的特征就叫做超父(super-parent)。然后通过交叉验证确定超父(分别假设每个属性都是超父时,选择效果最好的)。

  • 图1

在这里插入图片描述

  • 例子

【数据集】

x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 y y y
1111
1001
1111
1000
1110
0000
0110
0101
0110
0000

【预测】

x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 y y y
110?

【SPODE公式】

P ( c ∣ x ) ∝ a r g m a x c ∈ Y P ( c ) ∏ j = 1 d P ( x j ∣ c , p a i ) P(c|x)\propto arg\ max_{c\in Y}\ P(c)\prod_{j=1}^dP(x_j|c,pa_{i}) P(cx)arg maxcY P(c)j=1dP(xjc,pai)

【先验概率 P ( c ) P(c) P(c)
P ( y = 1 ) = 4 10 = 0.4 P(y=1)=\frac{4}{10}=0.4 P(y=1)=104=0.4

P ( y = 0 ) = 6 10 = 0.6 P(y=0)=\frac{6}{10}=0.6 P(y=0)=106=0.6

【类条件概率 P ( x i ∣ c , p a i ) P(x_i|c,pa_{i}) P(xic,pai)[先假定 x 1 x_1 x1 为超父 p a i = x 1 pa_i=x_1 pai=x1]】
P ( x 1 = 1 ∣ y = 1 ) = 3 4 P(x_1=1|y=1)=\frac{3}{4} P(x1=1y=1)=43

P ( x 2 = 1 ∣ y = 1 , x 1 = 1 ) = 2 3 P(x_2=1|y=1,x_1=1)=\frac{2}{3} P(x2=1y=1,x1=1)=32

P ( x 3 = 0 ∣ y = 1 , x 1 = 1 ) = 1 3 P(x_3=0|y=1,x_1=1)=\frac{1}{3} P(x3=0y=1,x1=1)=31

P ( x 1 = 1 ∣ y = 0 ) = 2 6 = 1 3 P(x_1=1|y=0)=\frac{2}{6}=\frac{1}{3} P(x1=1y=0)=62=31

P ( x 2 = 1 ∣ y = 0 , x 1 = 1 ) = 1 2 P(x_2=1|y=0,x_1=1)=\frac{1}{2} P(x2=1y=0,x1=1)=21

P ( x 3 = 0 ∣ y = 0 , x 1 = 1 ) = 1 2 P(x_3=0|y=0,x_1=1)=\frac{1}{2} P(x3=0y=0,x1=1)=21

【半朴素贝叶斯分类器】
P ( y = 1 ) = 0.4 ∗ 0.75 ∗ 2 3 ∗ 1 3 = 0.067 P(y=1)=0.4*0.75*\frac{2}{3}*\frac{1}{3}=0.067 P(y=1)=0.40.753231=0.067

P ( y = 1 ) = 0.6 ∗ 1 3 ∗ 1 2 ∗ 1 2 = 0.050 P(y=1)=0.6*\frac{1}{3}*\frac{1}{2}*\frac{1}{2}=0.050 P(y=1)=0.6312121=0.050

所 以 , 预 测 样 本 类 别 , y = 1 所以,预测样本类别,y=1 y=1

2.4.3 AODE(平均独依赖估计)

  • 原理

  SPODE是选择一个模型进行预测,AODE是一种基于集成学习机制的独依赖分类器。在AODE中,每个模型进行一次预测,然后将结果平均后得到最终的预测结果。(AODE 尝试将每个属性作为超父来构建 SPODE,然后即将那些具有足够训练数据支撑的 SPODE 集成起来作为最终结果。)

  • 理解公式

P ( c ∣ x ) ∝ ∑ i = 1 d P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) d P(c|x)\propto \frac{\sum_{i=1}^dP(c,x_i)\prod_{j=1}^dP(x_j|c,x_{i})}{d} P(cx)di=1dP(c,xi)j=1dP(xjc,xi)

  • 阈值 m ′ m' m

  例如上面例题中, P ( x 2 = 1 ∣ y = 0 , x 1 = 1 ) = 1 2 P(x_2=1|y=0,x_1=1)=\frac{1}{2} P(x2=1y=0,x1=1)=21,有可能分母为1,导致可用样本数量太少了。于是,AODE加入一个阈值,要求超父特征为某一特定值的样本的数量大于等于 m’ 时,才可使用这个 SPODE 模型。

  • AODE公式

P ( c ∣ x ) ∝ ∑ i = 1 d P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) , ∣ D x i ∣ ≥ m ′ P(c|x)\propto \sum_{i=1}^dP(c,x_i)\prod_{j=1}^dP(x_j|c,x_i),|D_{x_i}|\geq m' P(cx)i=1dP(c,xi)j=1dP(xjc,xi),Dxim

  • 参数求解

P ( c , x i ) P(c,x_i) P(c,xi)

P ( c , x i ) = ∣ D c , x i ∣ + 1 ∣ D ∣ + N i P(c,x_i)=\frac{|D_{c,x_i}|+1}{|D|+N_i} P(c,xi)=D+NiDc,xi+1

P ( x j ∣ c , x i ) P(x_j|c,x_i) P(xjc,xi)
P ( x j ∣ c , x i ) = ∣ D c , x i , x j ∣ + 1 ∣ D c , x i ∣ + N j P(x_j|c,x_i)=\frac{|D_{c,x_i,x_j}|+1}{|D_{c,x_i}|+N_j} P(xjc,xi)=Dc,xi+NjDc,xi,xj+1

2.4.4 TAN(树增广朴素贝叶斯)

  • 引言

  不管是SPODE,还是AOED,尽管超父在变换,但每个模型中每个特征都依赖于超父特征。现实情况中,特征的依赖情况也不大可能都依赖于其中之一,而是可能每个特征的依赖都不一样。TAN 可以解决这个问题,找到每个特征最适合依赖的另外一个特征

  • 原理

  在最大带权生成树算法基础上构建依赖。TAN 计算两两特征之间的条件互信息,在选择每个特征的依赖特征时,选择互信息最大的对应特征即可(条件互信息的值即代表了两个特征之间互相依赖的程度)。

  • 算法

在这里插入图片描述

3. 半朴素贝叶斯分类器拓展

3.1 kDE(k依赖估计)

  既然将属性条件独立性假设放松为独依赖假设可能获得泛化性能的提升,那么,能否通过考虑属性间的高阶依赖(对多个属性依赖)来进一步提升泛化性能呢?相当于,将 ODE 拓展为kDE。若训练数据非常充分,可以考虑。


http://chatgpt.dhexx.cn/article/DVSnFfSH.shtml

相关文章

【贝叶斯分类2】朴素贝叶斯分类器

文章目录 1. 贝叶斯决策论回顾1.1 分类原理1.2 贝叶斯分类器1.3 P(c|x)1.4 计算公式1.5 极大似然估计 2. 朴素贝叶斯分类器学习笔记2.1 引言2.2 知识卡片2.3 朴素贝叶斯分类器2.4 拉普拉斯平滑 3. 朴素贝叶斯分类器拓展3.1 数据处理3.2 收集其他资料 1. 贝叶斯决策论回顾 1.1 …

朴素贝叶斯分类器

前知识了解: 贝叶斯决策论是概率框架下实施决策的基本方法。 贝叶斯定理: 贝叶斯定理是由果溯因的思想,当知道某件事情的结果后,由结果推断出这件事是由各种原因导致的概率为多少。极大似然估计: 朴素贝叶斯分类器…

贝叶斯分类器matlab实现

用matlab模拟最小错误率贝叶斯分类器与最小风险分类器,效果个人感觉还算能看的下去^_^ 注意:如果对实验原理还不算太懂,可以看其他大牛的博客或者看书,不管怎么样概率论知识是前提,不如乘法定理,条件概率&…

机器学习-贝叶斯分类器

https://www.toutiao.com/a6684876999611122187/ 2019-04-28 17:36:54 目录: 1.贝叶斯分类器的基础 2.朴素贝叶斯分类器 3.朴素贝叶斯分类实例 4.关于朴素贝叶斯容易忽略的点 5.朴素贝叶斯分类器的优缺点 1. 摘要 贝叶斯分类器是一类分类算法的总称&#xf…

贝叶斯分类器(Bayes Classifier)

一、贝叶斯定理 1、背景: 贝叶斯定理也称贝叶斯推理,早在18世纪,英国学者贝叶斯(1702~1763)曾提出 引用:百度百科 贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)…

实验五 贝叶斯分类器(模式识别与机器学习)

目录 实验一 离散型数据的朴素贝叶斯分类 实验步骤: NBtrain.m NBtest.m main.m 实验二 连续型数据的朴素贝叶斯分类 实验步骤: naiveBayestrain.m navieBayestest.m main.m 实验一 离散型数据的朴素贝叶斯分类 data数据集中含有625个样本,每个样…

贝叶斯分类器详解

文章目录 一、贝叶斯简介二、贝叶斯决策论三、极大似然估计例题解析 四、朴素贝叶斯分类器例题解析 五、半朴素贝叶斯分类器 一、贝叶斯简介 简介:贝叶斯分类器是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类器。而…

机器学习(六)——贝叶斯分类器

贝叶斯分类器是一类分类算法的总称,均以贝叶斯定理为理论基础 一、预备知识—贝叶斯决策论 1.公式 \qquad 贝叶斯决策论是概率框架下的实施决策的基本方法。对于分类任务来说,在所有相关概率都已知的理想情况下,贝叶斯决策论考虑如何基于概率…

机器学习——贝叶斯分类器

这里写目录标题 1.贝叶斯分类器属于生成式模型2.贝叶斯定理3.朴素贝叶斯分类器3.1朴素贝叶斯分类器中的数学模型3.2分类器的分类准则 1.贝叶斯分类器属于生成式模型 对于数据的判别分类有两种策略模型:判别式模型和生成式模型 判别式模型 : 逻辑回归、决策树、支持…

贝叶斯分类器原理——学习笔记

贝叶斯分类器原理 简介一、逆概率推理与贝叶斯公式1、确定性推理与概率推理2、贝叶斯公式 二、贝叶斯分类的原理三、概率估计1、先验概率的估计2、类条件概率的估计 四、贝叶斯分类的错误率五、常用贝叶斯分类器1、最小错误率贝叶斯分类器2、最小风险贝叶斯分类器3、朴素贝叶斯…

机器学习-贝叶斯分类器(附Python代码)

1. 贝叶斯原理 Naive Bayes 官方网址: https://scikit-learn.org/stable/modules/naive_bayes.html GitHub地址:https://github.com/gao7025/naive_bayes.git 贝叶斯分类是以贝叶斯定理为基础的一种分类算法,其主要思想为:先验…

chrome插件开发入门实战——CSDN免登陆拷贝、免关注查看

官方资料 docextensions官方chrome-extensions-samples 实战CSDN插件(V3) 功能 CSDN: 复制代码免登陆;CSDN: 免关注博主看文章;CSDN: 替换CSDN代码拷贝按钮,登陆也不用CSDN复制按…

Github实用浏览器插件推荐

文章目录 1. github树形目录插件-octotree(有付费功能)2. 快速下载github项目——GitHub加速3. 下载github中指定文件——GitZip for github4. github代码定义跳转浏览插件-Sourcegraph 某天看直播课程的时候看到这样一个界面: 然后就搜了一下…

IDEA必备插件

一、插件入口 二、IDEA必备插件 插件安装目录:C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2021.3\plugins 1.Alibaba Java Coding Guidelines 推荐指数:★★★ 介绍:阿里巴巴Java编码指南 安装之后右键菜单会多出两个选项&a…

Visual Studio 2017,C++MFC免注册调用大漠插件图文教程,详细版

Visual Studio 2017,CMFC免注册调用大漠插件图文教程,详细版 前言 提示:这里可以添加本文要记录的大概内容: 有很多人都在问CMFC怎么免注册调用?其实这些都有参考但是对于新手来说,编译器对新手的不友好&#xff0c…

PHPstorm必备插件推荐

1、.env files support 对.env 文件的支持 2、 .ignore 对.ignore 文件的支持 3、 Ideolog 对 .log 文件的支持 4、 Chinese (Simplified) Language Pack / 中文语言包 官方版中文语言包 | 汉化语言包 5、 Git 对Git的支持 6、 GitToolBox 支持在文件中展示当前代码最后的…

【BurpSuite】插件之自用插件

自用burpsuite插件汇总 前言 自用的一些burpsute插件,有的是自己改着写的,有的是用别人写的,备份记录为主要目的。万一哪天环境崩了也能快速记起来要用什么插件。 重写右键执行 自己重写的一些代码,核心点是处理http请求&…

插件的使用

1、插件写法:插件通常会为 Vue 添加全局功能,添加全局方法或者属性; 添加全局资源:指令/过滤器/过渡等;通过全局 mixin 方法添加一些组件选项; 添加 Vue 实例方法,通过把它们添加到 Vue.proto…

TypechoCMS通用发布插件-【免登录版本】

Typecho是一个操作简单快速的轻量博客平台。 轻量高效:不足 400KB 的代码,就实现了完整的插件与模板机制。超低的 CPU 和内存使用率,足以发挥主机的最高性能。 先进稳定:支持 BAE/GAE/SAE 等各类云主机,即使面对突如…

【Unity插件】最多的插件合集

一、前言 ? 最近整理了一下文章,发现我分享了很多的插件,但是如果要查找某一款插件,还需要去搜索才能找到,很不方面,就想要将写过的所有的插件分享也好,教程也好,做一个汇总,然后这…