前面我们已经知道朴素贝叶斯分类器基于一个很强的假定,即对于给定的某个类别,各特征属性之间是相互独立的。这个假定简化了计算过程和减少了分类器的复杂度,但是其限制条件却太过苛刻。因为直观上我们知道,现实世界中各特征属性之间很有可能是相互关联的,我们不能忽略这个特征。为了对现实世界进行更好的建模以得到更加准确的分类。接下来我要讲述第四部分的内容,即贝叶斯网络。

    4)贝叶斯网络
   (1)贝叶斯网络定义
    贝叶斯网络(Bayesian Networks, BNs)也称作贝叶斯网(Bayesian Nets)或者信念网络(Belief Networks)。它是表示变量之间相互作用的图形模型。贝叶斯网络由节点和节点之间的弧组成,每个节点对应一个随机变量X,并且具有一个对应该随机变量的概率P(X)。如果存在一条从节点X到节点Y的有向弧,则表明X对Y有直接影响,该影响被条件概率P(Y/X)所指定。另外,贝叶斯网络是一个有向无环图,即图中没有环。节点和节点之间的弧定义了网络的结构,而条件概率是给定结构的参数。
    上述概念也许从文字上不好理解,我们通过图形来理解。下图中图(a)表示朴素贝叶斯网络,图(b)表示一般情形的贝叶斯网络。
    
    对于图(a)中朴素贝叶斯网络而言,假定特征属性B、C、D之间是相互独立的,所以他们之间没有边相连。也就是说,在给定A的情况下特征属性B的发生与给定A的情况下特征属性C的发生是相互独立的。由于各个属性都有一条从A指向其的边,所以所有的属性都依赖于类别变量A。而对于图(b)中贝叶斯网络而言,B到C和C到D之间是有边相连的,这也意味着他们之间是有关联的。这在很大程度上减轻了条件独立性的假设。也就是说给定A的情况下特征属性C的发生还与给定A情况下B的发生是有联系。
    上面我们提到,节点之间如果有边表示他们之间是有联系的,而因为该边是有向的,如果有一条A到B的有向弧,其含义我们暂时可以理解为A“causes”B,后面我们还会详细介绍它。这个信息可以指引我们建立一个图的结构。
    对于贝叶斯网络而言,我们必须定义每个节点的条件概率分布(Conditional Probability Distribution, CPD)。如果该变量是离散的,那么他们可以用条件概率表(CPT)来表示。 条件概率表列出了每个节点对于父节点不同组合取值时,它取不同值的概率。下面我们来看一个具体的例子,假定每个节点都只有两种取值,即T(true)或者F(false)。
    

从上图中,我们可以看到,事件“草地湿了”(W = true)发生有两种原因:要么是洒水器开了(S = true),要么是下雨了(R = true)。各个节点之间的关系列在了表中。例如,在上图最下方的一个CPT中,P(W=true | S=true, R=false) = 0.9 (第二行), 从而P(W=false | S=true, R=false) = 1 - 0.9 = 0.1(因为每一行的值加起来必须等于1)。另外由于C节点没有父节点,其CPT定义了该节点的先验概率。

    上述图中,所有节点的联合概率的表达式如下:
    P(C, S, R, W) = P(C) * P(S|C) * P(R|C,S) * P(W|C,S,R)
    通过利用节点间的条件独立性关系,对于上式倒数第二项,R的发生仅与C有关而与S的发生无关;同样的,最后一项W的发生仅与S和R的发生有关,而与C无关。所以上式可以改写为:
    P(C, S, R, W) = P(C) * P(S|C) * P(R|C) * P(W|S,R)
    值得一提的是,尽管上面这个例子中,由于条件独立性为我们带来的计算量的减少不大,但是在大多数场合下,它的功效是非常大的。
    至此,也许你会问,既然是贝叶斯网络,为什么到现在我还没有看到任何关于贝叶斯的影子呢?事实上,你说的没错,上述条件概率分布(CPD)通常我们是通过频率计算方法得到的。而称作其为贝叶斯网络,实际上,我们应用的是其概率的推理,让我们继续往下看。
    (2)推理(Inference)
    使用贝叶斯网络通常我们希望通过它得到概率推理。例如对于上述网络,假如我们已经观察到“草地湿了”,我们知道有两种可能,但是,哪一种更有可能是的呢?利用贝叶斯定理我们可以得到如下计算(1表示true,0表示false)。   

上式中Pr(W = 1)的计算如下:

    

所以根据上面的计算,我们可以推断,事件“草地湿了”的发生更可能是因为下雨了。

    上面我们给出了计算,我们也称为诊断或者“bottom up”reasoning,因为直观上他是从底部到上面,根据结果来推断原因。除了这个以外,我们还可以计算,如果天气是cloudy,那么“草地湿了”的概率?这也称为“top down”reasoning。
   (3)因果性(Causality)
    前面我们提到过,贝叶斯网络中,从A指向B的有向弧,我们可以理解为A导致B的发生。一个有趣的问题是:我们能区分出变量之间的因果性和纯粹的关联性吗?答案是,有时候,并且你需要测量至少三个变量之间的关系才行。所以在利用贝叶斯网络来做推理之前,我们还必须学习其结构,也就是将节点之间的关系通过图来建模。这就是第四部分我们要将的内容。
    到这里,我们可以知道,贝叶斯网络描述了一种概率分布,它通过指定一些条件独立的假定和一组条件概率来管理一组变量(A Bayesian network describes the probability distribution governing a set of variables by specifying a set of conditional independence assumptions along with a set of conditional probabilities)。另外,对于条件独立性的假定仅仅应用在其子集变量中。
   (4)学习贝叶斯网络结构
    有些时候,我们根本不知道网络的结构或者说只是知道结构的一部分,这个时候我们就需要学习贝叶斯网络的结构。
    有两种方法学习贝叶斯网络的结构:参数学习和结构学习。
    参数学习适用于网络结构是已知的。它又有2种情况:第一种情况是网络结构是已知的,并且网络结构中没有隐藏或者丢失变量;另一种是网络结构也是已知的,但是有隐藏或者丢失的变量。在第一种情况下,主要的任务是估计条件概率;而在第二种情况下,需要一个本地优化解决方案,例如期望最大化算法(Expectation Maximization, EM)。
    当数据集D潜在的结构未知的时候,此时应该运用结构学习。结构学习的任务可以表述如下:给定一个训练集D,找到一个与D最相匹配的网络B,此时D是一个独立的实例。结构学习也有两种不同的从数据集中找到接近图概率模型学习的方法。即基于依附分析的方法(dependency-analysis-based methods)和搜索计分方法(search and score methods)。
    基于依附分析的方法依赖于这样一个假定,即所研究的潜在的网络中节点之间有很多依赖关系。算法通过对训

不可小视的贝叶斯(三)相关推荐

  1. 机器学习番外篇—朴素贝叶斯三种模型(多项式,高斯,伯努利)

    朴素贝叶斯三种模型(多项式,高斯,伯努利) 高斯 有些特征可能是连续型变量,比如说人的身高,物体的长度,这些特征可以转换成离散型的值,比如如果身高在160cm以下,特征值为1:在160cm和170cm ...

  2. 不可小视的贝叶斯(二)

    上次介绍了贝叶斯理论的基本知识,接下来介绍剩下的两部分内容,即:贝叶斯分类器和贝叶斯网络.对于这两部分的内容,涉及太多东西,这里讲述的只是一些基础知识,尽可能将我知道的分享给大家,有错误的地方还希望指 ...

  3. 不可小视的贝叶斯(一)

    昨天讲述了研究生做的第一个项目,今天开始进入我的学术研究方向的重点--机器学习,虽然这些文章对于我找一份程序员工作可能没有什么太大的帮助,但是毕竟是之前我花了很多时间研究过的,既然以后的重点都是回忆, ...

  4. 机器学习之朴素贝叶斯三、拉普拉斯平滑技术、优化改进情感分析

    文章目录 一.前文问题 1. 先看下改进前我们的代码计算部分 2. `问题分析`: 二.针对问题进行解决 1. 什么是`拉普拉斯平滑`技术 2. 拉普拉斯优化-下溢上溢问题 3. 改进地方分析: 4. ...

  5. 【076】朴素贝叶斯介绍

    内容目录(原文见公众号:python宝) 一.贝叶斯介绍二.高斯分布贝叶斯三.多项式分布贝叶斯四.伯努利分布贝叶斯 一.贝叶斯介绍 # 高斯分布就是正态分布 # [用途]用于一般分类问题 from s ...

  6. 从零开始学Python【38】--朴素贝叶斯模型(实战部分)

    [前言] 在<从零开始学Python[37]--朴素贝叶斯模型(理论部分)>中我们详细介绍了朴素贝叶斯算法的基本概念和理论知识,在这一期我们继续介绍该算法的实战案例.将会对高斯贝叶斯.多项 ...

  7. 机器学习算法之贝叶斯

    目录 文章目录 目录 一.简单实例 二.朴素贝叶斯 三.高斯贝叶斯 四.综合实例 总结 一.简单实例 import numpy as np X=np.array([[0,1,0,1],#模拟天气特征[ ...

  8. 机器学习(二)--sklearn之逻辑斯蒂回归和朴素贝叶斯

    文章目录 1.逻辑斯蒂回归 2.朴素贝叶斯 3.三种分类算法的比较 上回说到,sklearn中的k近邻算法解决多分类问题.k近邻的基本步骤是:收集数据.创建分类器.训练.预测.评估性能.调参(参数就是 ...

  9. 【机器学习】11、贝叶斯网络

    文章目录 一.贝叶斯网络是什么 二.朴素贝叶斯 三.贝叶斯网络的建立 一.贝叶斯网络是什么 贝叶斯网络的思考: 原本的问题: 给定一组样本D,求得在这些样本中出现某个结论 A 1 , A 2 , . ...

最新文章

  1. Nature:植物叶际微生物组稳态维持机制
  2. 袁新生《LINGO和Excel在数学建模中的应用》
  3. java 文件读写demo
  4. FREE 开源 API 管理工具等
  5. java label覆盖_java – 将JLabel置于JLabel之上,其中包含图像
  6. Hyper-V + CentOS7 网络设置(视频教程)
  7. linux find 命令详解
  8. while循环python的范围_为什么Python中的range()循环比使用while循环更快?
  9. a as as big rat_Whats the meaning of give a rats as..._考试资料网
  10. Json格式乱码处理方式
  11. 基于显著性检验分析两个样本分布相似度及Python实现—— t检验、拟合优度检验、KS检验、Wilcoxon符号秩检验、H检验、Mann-Whitney秩检验、P值的意义、API汇总
  12. 角度逼近圆弧插补法插补与仿真
  13. 问题解答:No active profile set, falling back to default profiles: default
  14. 【我们就爱穿上古着晒幸福】
  15. 海康摄像头连接阿里云视频监控的步骤
  16. YUV420P、YUV420SP、NV12、NV21和RGB互相转换并存储为JPEG以及PNG图片
  17. 类器官——从 2D 到 3D 的进阶
  18. 电磁场与仿真软件(32)
  19. LG su760手机刷机,降级,救砖教程
  20. 从猎头角度推测,搜狗的买卖对于互联网格局和薪水的影响

热门文章

  1. 表格在拟合曲线找点_【无机纳米材料科研制图——OriginLab 0208】Origin拟合SERS拉曼光谱...
  2. pymysql安装_pymysql 模块简单使用
  3. 腾讯专利多大吓人,专利之王,一点都不过分
  4. 基于SSLStrip的HTTPS会话劫持
  5. 小程序字符串拼接_小程序突袭预约!Yeezy 350quot;氧化满天星quot;拼接配色本月发售!...
  6. 涉嫌内幕交易?美国SEC对马斯克展开调查
  7. 微博:冬奥期间累计共清理相关违规内容近31万条
  8. 上汽集团:R汽车改名飞凡汽车
  9. 英特尔推出第二代神经拟态研究芯片Loihi 2和全新Lava软件框架
  10. 华为又有大动作!继鸿蒙之后,即将发布全新操作系统OpenEuler欧拉