算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx

上传人:b****1 文档编号:15311024 上传时间:2022-10-29 格式:DOCX 页数:10 大小:174.64KB
下载 相关 举报
算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx_第1页
第1页 / 共10页
算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx_第2页
第2页 / 共10页
算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx_第3页
第3页 / 共10页
算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx_第4页
第4页 / 共10页
算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx

《算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx》由会员分享,可在线阅读,更多相关《算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

算法杂货铺分类算法之贝叶斯网络Bayesian networksWord文档格式.docx

在那个解决方案中,我做了如下假设:

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

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

但是,上述第二条假设很可能并不成立。

一般来说,好友密度除了与账号是否真实有关,还与是否有真实头像有关,因为真实的头像会吸引更多人加其为好友。

因此,我们为了获取更准确的分类,可以将假设修改如下:

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

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

上述假设更接近实际情况,但问题随之也来了,由于特征属性间存在依赖关系,使得朴素贝叶斯分类不适用了。

既然这样,我去寻找另外的解决方案。

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

上图是一个有向无环图,其中每个节点代表一个随机变量,而弧则表示两个随机变量之间的联系,表示指向结点影响被指向结点。

不过仅有这个图的话,只能定性给出随机变量间的关系,如果要定量,还需要一些数据,这些数据就是每个节点对其直接前驱节点的条件概率,而没有前驱节点的节点则使用先验概率表示。

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

纵向表头表示条件变量,横向表头表示随机变量。

上表为真实账号和非真实账号的概率,而下表为头像真实性对于账号真实性的概率。

这两张表分别为“账号是否真实”和“头像是否真实”的条件概率表。

有了这些数据,不但能顺向推断,还能通过贝叶斯定理进行逆向推断。

例如,现随机抽取一个账户,已知其头像为假,求其账号也为假的概率:

也就是说,在仅知道头像为假的情况下,有大约35.7%的概率此账户也为假。

如果觉得阅读上述推导有困难,请复习概率论中的条件概率、贝叶斯定理及全概率公式。

如果给出所有节点的条件概率表,则可以在观察值不完备的情况下对任意随机变量进行统计推断。

上述方法就是使用了贝叶斯网络。

2.3、贝叶斯网络的定义及性质

有了上述铺垫,我们就可以正式定义贝叶斯网络了。

一个贝叶斯网络定义包括一个有向无环图(DAG)和一个条件概率表集合。

DAG中每一个节点表示一个随机变量,可以是可直接观测变量或隐藏变量,而有向边表示随机变量间的条件依赖;

条件概率表中的每一个元素对应DAG中唯一的节点,存储此节点对于其所有直接前驱节点的联合条件概率。

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

这个性质很类似Markov过程。

其实,贝叶斯网络可以看做是Markov链的非线性扩展。

这条特性的重要意义在于明确了贝叶斯网络可以方便计算联合概率分布。

一般情况先,多变量非独立联合条件概率分布有如下求取公式:

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

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

贝叶斯网络比朴素贝叶斯更复杂,而想构造和训练出一个好的贝叶斯网络更是异常艰难。

但是贝叶斯网络是模拟人的认知思维推理模式,用一组条件概率函数以及有向无环图对不确定性的因果推理关系建模,因此其具有更高的实用价值。

2.4、贝叶斯网络的构造及学习

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

1、确定随机变量间的拓扑关系,形成DAG。

这一步通常需要领域专家完成,而想要建立一个好的拓扑结构,通常需要不断迭代和改进才可以。

2、训练贝叶斯网络。

这一步也就是要完成条件概率表的构造,如果每个随机变量的值都是可以直接观察的,像我们上面的例子,那么这一步的训练是直观的,方法类似于朴素贝叶斯分类。

但是通常贝叶斯网络的中存在隐藏变量节点,那么训练方法就是比较复杂,例如使用梯度下降法。

由于这些内容过于晦涩以及牵扯到较深入的数学知识,在此不再赘述,有兴趣的朋友可以查阅相关文献。

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

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

例如,Google就在诸多服务中使用了贝叶斯网络。

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

下面举一个例子。

还是SNS社区中不真实账号检测的例子,我们的模型中存在四个随机变量:

账号真实性R,头像真实性H,日志密度L,好友密度F。

其中H,L,F是可以观察到的值,而我们最关系的R是无法直接观察的。

这个问题就划归为通过H,L,F的观察值对R进行概率推理。

推理过程可以如下表示:

1、使用观察值实例化H,L和F,把随机值赋给R。

2、计算。

其中相应概率值可以查条件概率表。

由于上述例子只有一个未知随机变量,所以不用迭代。

更一般得,使用贝叶斯网络进行推理的步骤可如下描述:

1、对所有可观察随机变量节点用观察值实例化;

对不可观察节点实例化为随机值。

2、对DAG进行遍历,对每一个不可观察节点y,计算,其中wi表示除y以外的其它所有节点,a为正规化因子,sj表示y的第j个子节点。

3、使用第三步计算出的各个y作为未知节点的新值进行实例化,重复第二步,直到结果充分收敛。

4、将收敛结果作为推断值。

以上只是贝叶斯网络推理的算法之一,另外还有其它算法,这里不再详述。

算法杂货铺——分类算法之朴素贝叶斯分类(NaiveBayesianclassification)

2010-09-1713:

09byEricZhang(T2噬菌体),2628visits,网摘,收藏,编辑

0、写在前面的话

我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。

而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的。

一直想写关于算法的博文,也曾写过零散的两篇,但也许是相比于工程性文章来说太小众,并没有引起大家的兴趣。

最近面临毕业找工作,为了能给自己增加筹码,决定再次复习算法方面的知识,我决定趁这个机会,写一系列关于算法的文章。

这样做,主要是为了加强自己复习的效果,我想,如果能将复习的东西用自己的理解写成文章,势必比单纯的读书做题掌握的更牢固,也更能触发自己的思考。

如果能有感兴趣的朋友从中有所收获,那自然更好。

这个系列我将其命名为“算法杂货铺”,其原因就是这些文章一大特征就是“杂”,我不会专门讨论堆栈、链表、二叉树、查找、排序等任何一本数据结构教科书都会讲的基础内容,我会从一个“专题”出发,如概率算法、分类算法、NP问题、遗传算法等,然后做一个引申,可能会涉及到算法与数据结构、离散数学、概率论、统计学、运筹学、数据挖掘、形式语言与自动机等诸多方面,因此其内容结构就像一个杂货铺。

当然,我会竭尽所能,尽量使内容“杂而不乱”。

1.1、摘要

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。

本文作为分类算法的第一篇,将首先介绍分类问题,对分类问题进行一个正式的定义。

然后,介绍贝叶斯分类算法的基础——贝叶斯定理。

最后,通过实例讨论贝叶斯分类中最简单的一种:

朴素贝叶斯分类。

1.2、分类问题综述

对于分类问题,其实谁都不会陌生,说我们每个人每天都在执行分类操作一点都不夸张,只是我们没有意识到罢了。

例如,当你看到一个陌生人,你的脑子下意识判断TA是男是女;

你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱、那边有个非主流”之类的话,其实这就是一种分类操作。

从数学角度来说,分类问题可做如下定义:

已知集合:

和,确定映射规则,使得任意有且仅有一个使得成立。

(不考虑模糊数学里的模糊集情况)

其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合,其中每一个元素是一个待分类项,f叫做分类器。

分类算法的任务就是构造分类器f。

这里要着重强调,分类问题往往采用经验性方法构造映射规则,即一般情况下的分类问题缺少足够的信息来构造100%正确的映射规则,而是通过对经验数据的学习从而实现一定概率意义上正确的分类,因此所训练出的分类器并不是一定能将每个待分类项准确映射到其分类,分类器的质量与分类器构造方法、待分类数据的特性以及训练样本数量等诸多因素有关。

例如,医生对病人进行诊断就是一个典型的分类过程,任何一个医生都无法直接看到病人的病情,只能观察病人表现出的症状和各种化验检测数据来推断病情,这时医生就好比一个分类器,而这个医生诊断的准确率,与他当初受到的教育方式(构造方法)、病人的症状是否突出(待分类数据的特性)以及医生的经验多少(训练样本数量)都有密切关系。

1.3、贝叶斯分类的基础——贝叶斯定理

每次提到贝叶斯定理,我心中的崇敬之情都油然而生,倒不是因为这个定理多高深,而是因为它特别有用。

这个定理解决了现实生活里经常遇到的问题:

已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)。

这里先解释什么是条件概率:

表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。

其基本求解公式为:

贝叶斯定理之所以有用,是因为我们在生活中经常遇到这种情况:

我们可以很容易直接得出P(A|B),P(B|A)则很难直接得出,但我们更关心P(B|A),贝叶斯定理就为我们打通从P(A|B)获得P(B|A)的道路。

下面不加证明地直接给出贝叶斯定理:

1.4、朴素贝叶斯分类

1.4.1、朴素贝叶斯分类的原理与流程

朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:

对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

通俗来说,就好比这么个道

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1