1、重新考虑上一篇的例子

在前面我们讨论了朴素贝叶斯分类。朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征属性间往往并不条件独立,而是具有较强的相关性,这样就限制了朴素贝叶斯分类的能力。这一篇文章中,我们接着上一篇文章的例子,讨论贝叶斯分类中更高级、应用范围更广的一种算法——贝叶斯网络(又称贝叶斯信念网络或信念网络)。

上一篇文章我们使用朴素贝叶斯分类实现了SNS社区中不真实账号的检测。在那个解决方案中,我做了如下假设:

i、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像。

ii、日志密度、好友密度和是否使用真实头像在账号真实性给定的条件下是独立的。

但是,上述第二条假设很可能并不成立。一般来说,好友密度除了与账号是否真实有关,还与是否有真实头像有关,因为真实的头像会吸引更多人加其为好友。因此,我们为了获取更准确的分类,可以将假设修改如下:

i、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像。

ii、日志密度与好友密度、日志密度与是否使用真实头像在账号真实性给定的条件下是独立的。

iii、使用真实头像的用户比使用非真实头像的用户平均有更大的好友密度。

上述假设更接近实际情况,但问题随之也来了,由于特征属性间存在依赖关系,使得朴素贝叶斯分类不适用了。既然这样,我去寻找另外的解决方案。

下图表示特征属性之间的关联:

上图是一个有向无环图,其中每个节点代表一个随机变量,而弧则表示两个随机变量之间的联系,表示指向结点影响被指向结点。不过仅有这个图的话,只能定性给出随机变量间的关系,如果要定量,还需要一些数据,这些数据就是每个节点对其直接前驱节点的条件概率,而没有前驱节点的节点则使用先验概率表示。

例如,通过对训练数据集的统计,得到下表(R表示账号真实性,H表示头像真实性):

纵向表头表示条件变量,横向表头表示随机变量。上表为真实账号和非真实账号的概率,而下表为头像真实性对于账号真实性的概率。这两张表分别为“账号是否真实”和“头像是否真实”的条件概率表。有了这些数据,不但能顺向推断,还能通过贝叶斯定理进行逆向推断。例如,现随机抽取一个账户,已知其头像为假,求其账号也为假的概率:

也就是说,在仅知道头像为假的情况下,有大约35.7%的概率此账户也为假。如果觉得阅读上述推导有困难,请复习概率论中的条件概率、贝叶斯定理及全概率公式。如果给出所有节点的条件概率表,则可以在观察值不完备的情况下对任意随机变量进行统计推断。上述方法就是使用了贝叶斯网络。

2、贝叶斯网络的定义

一个贝叶斯网络定义包括一个有向无环图(DAG)和一个条件概率表集合。DAG中每一个节点表示一个随机变量,可以是可直接观测变量或隐藏变量,而有向边表示随机变量间的条件依赖;条件概率表中的每一个元素对应DAG中唯一的节点,存储此节点对于其所有直接前驱节点的联合条件概率。

贝叶斯网络有一条极为重要的性质,就是我们断言每一个节点在其直接前驱节点的值制定后,这个节点条件独立于其所有非直接前驱前辈节点。

这个性质很类似Markov过程。其实,贝叶斯网络可以看做是Markov链的非线性扩展。这条特性的重要意义在于明确了贝叶斯网络可以方便计算联合概率分布。一般情况先,多变量非独立联合条件概率分布有如下求取公式:

(可以查看数据挖掘第3课中的全概率公式:https://blog.csdn.net/Carl_changxin/article/details/88023910)

而在贝叶斯网络中,由于存在前述性质,任意随机变量组合的联合条件概率分布被化简成

其中Parents表示xi的直接前驱节点的联合,概率值可以从相应条件概率表中查到。

贝叶斯网络比朴素贝叶斯更复杂,而想构造和训练出一个好的贝叶斯网络更是异常艰难。但是贝叶斯网络是模拟人的认知思维推理模式,用一组条件概率函数以及有向无环图对不确定性的因果推理关系建模,因此其具有更高的实用价值。

3、贝叶斯网络的构造

构造与训练贝叶斯网络分为以下两步:

1、确定随机变量间的拓扑关系,形成DAG。这一步通常需要领域专家完成,而想要建立一个好的拓扑结构,通常需要不断迭代和改进才可以。

2、训练贝叶斯网络。这一步也就是要完成条件概率表的构造,如果每个随机变量的值都是可以直接观察的,像我们上面的例子,那么这一步的训练是直观的,方法类似于朴素贝叶斯分类。但是通常贝叶斯网络的中存在隐藏变量节点,那么训练方法就是比较复杂,例如使用梯度下降法。由于这些内容过于晦涩以及牵扯到较深入的数学知识,在此不再赘述,有兴趣的朋友可以查阅相关文献。

4、贝叶斯网络的应用及示例

贝叶斯网络作为一种不确定性的因果推理模型,其应用范围非常广,在医疗诊断、信息检索、电子技术与工业工程等诸多方面发挥重要作用,而与其相关的一些问题也是近来的热点研究课题。例如,Google就在诸多服务中使用了贝叶斯网络。

就使用方法来说,贝叶斯网络主要用于概率推理及决策,具体来说,就是在信息不完备的情况下通过可以观察随机变量推断不可观察的随机变量,并且不可观察随机变量可以多于以一个,一般初期将不可观察变量置为随机值,然后进行概率推理。下面举一个例子。

还是SNS社区中不真实账号检测的例子,我们的模型中存在四个随机变量:账号真实性R,头像真实性H,日志密度L,好友密度F。其中H,L,F是可以观察到的值,而我们最关系的R是无法直接观察的。这个问题就划归为通过H,L,F的观察值对R进行概率推理。推理过程可以如下表示:

数据挖掘第四课(贝叶斯网络)相关推荐

  1. 斯坦福 CS228 概率图模型中文讲义 四、贝叶斯网络

    四.贝叶斯网络 原文:Bayesian networks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们从表示的话题开始:我们如何选择概率分布来为世界的一些有趣方面建模? ...

  2. 机器学习笔记之概率图模型(四)基于贝叶斯网络的模型概述

    机器学习笔记之概率图模型--基于贝叶斯网络的模型概述 引言 基于贝叶斯网络的模型 场景构建 朴素贝叶斯分类器 混合模型 基于时间变化的模型 特征是连续型随机变量的贝叶斯网络 动态概率图模型 总结 引言 ...

  3. 关于贝叶斯网络算法(Bayesian networks)

    一.简介 朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立).当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征 ...

  4. 贝叶斯条件概率/贝叶斯网络

    一.TL;DL 条件概率的公式:P(AB)=P(A)P(B|A)=P(B)P(A|B):即事件A和事件B同时发生的概率等于在发生A的条件下B发生的概率乘以A的概率. 贝叶斯公式:由条件概率公式推导出 ...

  5. 贝叶斯方法和贝叶斯网络

    从贝叶斯方法谈到贝叶斯网络 0 引言 看到July的这篇文章,觉得写得很好,所以转载过来,留着慢慢看.原地址:https://blog.csdn.net/v_july_v/article/detail ...

  6. 概率图模型中的贝叶斯网络

    目录 一.概率图 二.贝叶斯网络 什么是贝叶斯网络? 贝叶斯网络结构怎么构建? 三.概率知识 四.贝叶斯网络知识 网络 条件独立性 结构 六.概率推断 七.案例分析 八.贝叶斯学习 九.Netica ...

  7. R语言︱贝叶斯网络语言实现及与朴素贝叶斯区别(笔记)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 一.贝叶斯网络与朴素贝叶斯的区别 朴素贝叶斯的 ...

  8. 数据挖掘 贝叶斯网络

    贝叶斯定理 贝叶斯定理是关于随机事件A和B的条件概率的一则定理. 贝叶斯网络是一种概率网络,它是基于概率推理的图形化网络,而贝叶斯公式则是这个概率网络的基础.贝叶斯网络是基于概率推理的数学模型,所谓概 ...

  9. 【海量数据挖掘/数据分析】之 贝叶斯信念网络(贝叶斯信念网络、有向无环图、贝叶斯公式、贝叶斯信念网络计算实例)

    [海量数据挖掘/数据分析]之 贝叶斯信念网络(贝叶斯信念网络.有向无环图.贝叶斯公式.贝叶斯信念网络计算实例) 目录 [海量数据挖掘/数据分析]之 贝叶斯信念网络(贝叶斯信念网络.有向无环图.贝叶斯公 ...

最新文章

  1. 智能语音简史:这场技术革命从哪开始?
  2. POJ 1236 学校网络间的强连通
  3. 多台Linux服务器之间互相免密登陆
  4. Node.js安装及环境配置(windows)
  5. python装饰器详解-python装饰器使用实例详解
  6. Android SDK下载安装及配置教程
  7. 怎么查看ofd格式电子发票? 2种简单方法免费查看
  8. 微电子 半导体 网址 一览表
  9. dlp监控开除员工_说一说DLP的那些事儿
  10. 机械键盘——红轴、黑轴、茶轴、青轴、奶轴、X轴的故事
  11. 用爬虫模拟登陆urp教务处系统
  12. 长沙好吃的地方?这个好吃的地方你可能真的没来过
  13. webpack stats
  14. [RK3399][Android7.1] 调试笔记 --- Audio codec时钟源从BCLK1获取
  15. opencv学习笔记及复习(四)物体追踪及人体肤色追踪
  16. 抖音推荐算法详解(附流程图)
  17. form表单ajax提交json数据
  18. python基本语法(1)
  19. js判断字符串下划线个数
  20. 原来3DMAX入门应该这样学!

热门文章

  1. 网络安全 中间人攻击-DNS欺骗 使用ettercap
  2. Unity调整轴点的位置
  3. 视频教程-MATLAB复变函数-Matlab
  4. python使用win32com读写excel的问题
  5. 小白linux bash 学习前奏二 vi操作
  6. TOC瓶颈管理理论/约束理论
  7. Mysql单表最大记录是多少
  8. InstallShield Limited Edition 打包软件安装包教程
  9. SqlPlus访问oracle
  10. abaqus算出来的转角单位是什么_ABAQUS如何画弯矩转角关系.doc