贝叶斯网络
数学算法俱乐部
共 3912字,需浏览 8分钟
· 2021-09-19
日期 : 2021年09月18日
正文共 :3424字
贝叶斯网络
马尔科夫链描述的是状态序列,很多时候事物之间的相互关系并不能用一条链串起来,比如研究心血管疾病和成因之间的关系便是如此错综复杂的。这个时候就要用到贝叶斯网络:每个状态只跟与之直接相连的状态有关,而跟与它间接相连的状态没直接关系。但是只要在这个有向图上,有通路连接两个状态,就说明这两个状态是有关的,可能是间接相关。状态之间弧用转移概率来表示,构成了信念网络(Belief Network)。 贝叶斯网络的拓扑结构比马尔可夫链灵活,不受马尔科夫链的链状结构的约束,更准确的描述事件之间的相关性。马尔科夫链是贝叶斯网络的一个特例,而贝叶斯网络是马尔科夫链的推广。 拓扑结构和状态之间的相关概率,对应结构训练和参数训练。贝叶斯网络的训练比较复杂,从理论上讲是一个NP完备问题,对于现在计算机是不可计算的,但对于某些具体应用可以进行简化并在计算机上实现。
对于贝叶斯学派,首先想到的就是后验概率公式和先验分布,认为所有的变量都是随机的,有各自的先验分布。我想贝叶斯网络是可以帮助医生进行诊断决策的,前段时间研究过的compressive tracking就是采用的朴素贝叶斯分类器,我对与贝叶斯相关内容的应用就是从此开始有所了解的。朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征属性间往往并不条件独立,而是具有较强的相关性,这样就限制了朴素贝叶斯分类的能力。这里讨论的就是贝叶斯分类中更高级、应用范围更广的一种算法——贝叶斯网络(又称贝叶斯信念网络或信念网络)。
如果没有前驱结点,就用先验概率带入。就这样能够计算出所有的相关或者间接相关的变量的联合概率密度,知道了联合概率密度,对于边缘概率密度的计算就非常简单了,通过这个能够形成一些有意义的推理,等效于生成了知识。
贝叶斯网络在词分类中的应用
2002年google工程师们利用贝叶斯网络建立了文章、关键词和概念之间的联系,将上百万关键词聚合成若干概念的聚类,称之为phil cluster。最早的应用是广告的拓展匹配。
实际上我觉得这个应用他讲的并不清楚,我是理解不好。
SNS社区中不真实账号的检测
在那个朴素贝叶斯分类器的解决方案中,我做了如下假设: i、真实账号比非真实账号平均具有更大的日志密度、更大的好友密度以及更多的使用真实头像。
ii、日志密度、好友密度和是否使用真实头像在账号真实性给定的条件下是独立的。但是,上述第二条假设很可能并不成立。一般来说,好友密度除了与账号是否真实有关,还与是否有真实头像有关,因为真实的头像会吸引更多人加其为好友。因此,我们为了获取更准确的分类,可以将假设修改如下: i、真实账号比非真实账号平均具有更大的日志密度、更大的好友密度以及更多的使用真实头像。
ii、日志密度与好友密度、日志密度与是否使用真实头像在账号真实性给定的条件下是独立的。
iii、使用真实头像的用户比使用非真实头像的用户平均有更大的好友密度。上述假设更接近实际情况,但问题随之也来了,由于特征属性间存在依赖关系,使得朴素贝叶斯分类不适用了。既然这样,我去寻找另外的解决方案。 下图表示特征属性之间的关联:
上图是一个有向无环图,其中每个节点代表一个随机变量,而弧则表示两个随机变量之间的联系,表示指向结点影响被指向结点。不过仅有这个图的话,只能定性给出随机变量间的关系,如果要定量,还需要一些数据,这些数据就是每个节点对其直接前驱节点的条件概率,而没有前驱节点的节点则使用先验概率表示。
例如,通过对训练数据集的统计,得到下表(R表示账号真实性,H表示头像真实性):
纵向表头表示条件变量,横向表头表示随机变量。上表为真实账号和非真实账号的概率,而下表为头像真实性对于账号真实性的概率。这两张表分别为“账号是否真实”和“头像是否真实”的条件概率表。有了这些数据,不但能顺向推断,还能通过贝叶斯定理进行逆向推断。例如,现随机抽取一个账户,已知其头像为假,求其账号也为假的概率:也就是说,在仅知道头像为假的情况下,有大约35.7%的概率此账户也为假。如果觉得阅读上述推导有困难,请复习概率论中的条件概率、贝叶斯定理及全概率公式。如果给出所有节点的条件概率表,则可以在观察值不完备的情况下对任意随机变量进行统计推断。上述方法就是使用了贝叶斯网络。
使用观察值实例化H,L和F,把随机值赋给R。 计算 P(R|H,L,F)=P(H|R)P(L|R)P(F|R,H) 。其中相应概率值可以查条件概率表。
对所有可观察随机变量节点用观察值实例化;对不可观察节点实例化为随机值。 P(y|wi)=αP(y|Parents(y))∏jP(sj|Parents(sj)) 对DAG进行遍历,对每一个不可观察节点y,计算,其中 wi 表示除y 以外的其它所有节点,α 为正规化因子,sj 表示y 的第j 个子节点。使用第三步计算出的各个y作为未知节点的新值进行实例化,重复第二步,直到结果充分收敛。 将收敛结果作为推断值。
以上只是贝叶斯网络推理的算法之一,另外还有其它算法,这里不再详述。
贝叶斯网络的构造、学习训练
1、确定随机变量间的拓扑关系,形成DAG。这一步通常需要领域专家完成,而想要建立一个好的拓扑结构,通常需要不断迭代和改进才可以,需要用到机器学习得到。
2、训练贝叶斯网络。这一步也就是要完成条件概率表的构造,如果每个随机变量的值都是可以直接观察的,像我们上面的例子,那么这一步的训练是直观的,方法类似于朴素贝叶斯分类。但是通常贝叶斯网络的中存在隐藏变量节点,那么训练方法就是比较复杂,例如使用梯度下降法。
参考文献:
张洋 《算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)》
— THE END —
评论
超大规模数据中心网络架构及其技术演变
本文所讲的数据中心网络架构和技术范围是针对典型的大型互联网和云计算公司的超大规模数据中心(Hyperscale Data Center),不一定适合其他类型的数据中心网络。业界对于什么规模才算是“超大规模(Hyperscale”并没有一个精确的定义。一般来说,一个数据中心网络集群至少有 5000台服
数据中心运维管理
0
周四002 瑞超:同样落寞的境遇——北雪平vs埃尔夫斯堡
上赛季最终排名联赛第9的北雪平本赛季伊始表现不佳,4轮战罢他们仅以1胜1平2负的战绩排在倒数第三,这支历史上曾夺得13次联赛冠军、6次杯赛冠军老牌劲旅,正如英格兰赛场上的一众百年俱乐部,在低谷中不断探索着出路。球队主教练安德烈亚斯·阿尔姆曾是AIK索尔纳及赫根队的主教练,他于今年年初刚刚拿起球队教鞭
产品与体验
0
图解操作系统、网络、计算机组成PDF下载!
我去年去面试的时候发现字节跳动、腾讯这类大厂非常非常重视计算机基础,像计算机网络、操作系统都是它们的重点。我当时因为计算机基础知识准备的还可以才拿到了这些大厂的 Offer!今天就给大家分享一下我之前面试经常看的一些关于计算机基础的 PDF 资料!图解计算机系统《图解系统》主要是操作系统的内容比较多
java1234
0
InfiniBand网络、HDR和IB在超算中的应用实践
InfiniBand(IB)是由InfiniBand贸易协会(IBTA)建立的先进计算机网络通信标准。它在高性能计算(HPC)中的广泛采用归功于它能够为网络传输提供卓越的吞吐量、带宽和低延迟。InfiniBand是计算系统内部和外部的关键数据连接。无论是通过直接链路还是通过网络交换机进行互连,Inf
架构师技术联盟
10
Linux 配置和管理网络接口的基本命令
更多Python学习内容:ipengtao.com在Linux系统中,网络接口的配置和管理是系统管理员日常工作的一部分。了解如何有效地使用命令行工具进行网络接口配置是至关重要的。本文将详细介绍一些基本的Linux网络接口管理命令,提供详实的示例代码,帮助管理员更全面地了解和掌握这些工具。ifconf
良许Linux
0
全网最全网络基础思维导图(38张)
来源:架构师技术联盟计算机网络基础知识点多且杂,想要系统地学习,思维导图肯定是必不可少的。今天整理了38张思维导图,帮助你轻松理清思路,快速掌握关键内容。建议你收藏起来慢慢看,在看过之后最好能重新动手画一画,让计算机网络知识在你的大脑中连接起来。 01 TCP/IP网
良许Linux
0
Nat Biotechnol | 叶凯团队开发基因组新生和体细胞结构变异分析算法—SVision-pro
基因组结构变异与丰富多彩的生物性状进化和严重疾病表型密切相关。多种遗传病和癌症的变异研究需要在多个样本之间进行基因组变异差异比较,进而获得真正与疾病进展相关的新生(de novo)和体细胞(Somatic)结构变异。目前,领域内常用的“先检测再求差”的分步式策略要求在基因组检测后有多个计算步骤,繁杂
生信宝典
0
这个网络爬虫代码,拿到数据之后如何存到csv文件中去?
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤渚云低暗度,关月冷相随。大家好,我是皮皮。一、前言还是昨天的那个网络爬虫问题,大佬们,帮忙看看这个网络爬虫代码怎么修改?那个粉丝说自己不熟悉pandas,用pandas做的爬虫,虽然简洁
Python爬虫与数据挖掘
4