算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)

合集下载

贝叶斯网络构建算法

贝叶斯网络构建算法

贝叶斯网络构建算法贝叶斯网络(Bayesian Network)是一种概率图模型,用于表示和推断变量之间的因果关系。

构建一个准确、有效的贝叶斯网络需要采用相应的构建算法。

本文将介绍几种常用的贝叶斯网络构建算法及其应用。

一、完全数据集算法完全数据集算法是贝叶斯网络构建中最简单、最常用的方法之一。

它假设已有一个完整的数据集,其中包含了所有要构建贝叶斯网络所需的信息。

该算法的主要步骤如下:1. 数据预处理:对数据进行清洗、归一化等预处理操作,确保数据的准确性和一致性。

2. 变量分析:根据数据集对变量之间的关系进行分析,确定要构建贝叶斯网络的变量。

3. 贝叶斯网络结构初始化:将变量之间的关系表示为图的结构,可以使用邻接矩阵或邻接链表等数据结构进行存储。

4. 结构学习:利用数据集中的频数统计等方法,通过学习训练数据集中的概率分布来确定贝叶斯网络结构中的参数。

5. 参数学习:在确定了贝叶斯网络结构后,进一步学习网络中各个变量之间的条件概率分布。

6. 结果评估:使用评估指标如准确率、精确率和召回率等来评估生成的贝叶斯网络模型的性能。

完全数据集算法的优点是能够利用完整数据构建准确的贝叶斯网络模型,但它的缺点是对于大规模的数据集,计算成本较高。

二、半监督学习算法半监督学习算法是一种使用有标记和无标记数据进行贝叶斯网络构建的方法。

这种方法可以在数据集不完整的情况下也能获得较好的贝叶斯网络模型。

以下是半监督学习算法的主要步骤:1. 数据预处理:对有标记和无标记数据进行预处理,清洗、归一化等操作。

2. 初始化:使用有标记数据初始化贝叶斯网络结构,可以采用完全数据集算法。

3. 标记传播:通过标记传播算法,将有标记数据的标签扩散到无标记数据中,这样可以在无需标记大量数据的情况下获得更多的有关因果关系的信息。

4. 参数学习:在获得了更多的有标记数据后,使用这些数据进行参数学习,并更新贝叶斯网络模型。

5. 结果评估:使用评估指标对生成的贝叶斯网络模型进行评估。

贝叶斯网络

贝叶斯网络

贝叶斯网络一.简介贝叶斯网络又称信度网络,是Bayes方法的扩展,目前不确定知识表达和推理领域最有效的理论模型之一。

从1988年由Pearl提出后,已知成为近几年来研究的热点.。

一个贝叶斯网络是一个有向无环图(Directed Acyclic Graph,DAG),由代表变量节点及连接这些节点有向边构成。

节点代表随机变量,节点间的有向边代表了节点间的互相关系(由父节点指向其后代节点),用条件概率进行表达关系强度,没有父节点的用先验概率进行信息表达。

节点变量可以是任何问题的抽象,如:测试值,观测现象,意见征询等。

适用于表达和分析不确定性和概率性的事件,应用于有条件地依赖多种控制因素的决策,可以从不完全、不精确或不确定的知识或信息中做出推理。

二. 贝叶斯网络建造贝叶斯网络的建造是一个复杂的任务,需要知识工程师和领域专家的参与。

在实际中可能是反复交叉进行而不断完善的。

面向设备故障诊断应用的贝叶斯网络的建造所需要的信息来自多种渠道,如设备手册,生产过程,测试过程,维修资料以及专家经验等。

首先将设备故障分为各个相互独立且完全包含的类别(各故障类别至少应该具有可以区分的界限),然后对各个故障类别分别建造贝叶斯网络模型,需要注意的是诊断模型只在发生故障时启动,因此无需对设备正常状态建模。

通常设备故障由一个或几个原因造成的,这些原因又可能由一个或几个更低层次的原因造成。

建立起网络的节点关系后,还需要进行概率估计。

具体方法是假设在某故障原因出现的情况下,估计该故障原因的各个节点的条件概率,这种局部化概率估计的方法可以大大提高效率。

三. 贝叶斯网络有如下特性1. 贝叶斯网络本身是一种不定性因果关联模型。

贝叶斯网络与其他决策模型不同,它本身是将多元知识图解可视化的一种概率知识表达与推理模型,更为贴切地蕴含了网络节点变量之间的因果关系及条件相关关系。

2. 贝叶斯网络具有强大的不确定性问题处理能力。

贝叶斯网络用条件概率表达各个信息要素之间的相关关系,能在有限的,不完整的,不确定的信息条件下进行学习和推理。

贝叶斯网络

贝叶斯网络

3.5 贝叶斯网络贝叶斯网络是一系列变量的联合概率分布的图形表示。

一般包含两个部分,一个就是贝叶斯网络结构图,这是一个有向无环图(DAG),其中图中的每个节点代表相应的变量,节点之间的连接关系代表了贝叶斯网络的条件独立语义。

另一部分,就是节点和节点之间的条件概率表(CPT),也就是一系列的概率值。

如果一个贝叶斯网络提供了足够的条件概率值,足以计算任何给定的联合概率,我们就称,它是可计算的,即可推理的。

3.5.1 贝叶斯网络基础首先从一个具体的实例(医疗诊断的例子)来说明贝叶斯网络的构造。

假设:命题S(moker):该患者是一个吸烟者命题C(oal Miner):该患者是一个煤矿矿井工人命题L(ung Cancer):他患了肺癌命题E(mphysema):他患了肺气肿命题S对命题L和命题E有因果影响,而C对E也有因果影响.命题之间的关系可以描绘成如右图所示的因果关系网.因此,贝叶斯网有时也叫因果网,因为可以将连接结点的弧认为是表达了直接的因果关系。

图3-5 贝叶斯网络的实例图中表达了贝叶斯网的两个要素:其一为贝叶斯网的结构,也就是各节点的继承关系,其二就是条件概率表CPT。

若一个贝叶斯网可计算,则这两个条件缺一不可。

贝叶斯网由一个有向无环图(DAG)及描述顶点之间的概率表组成.其中每个顶点对应一个随机变量。

这个图表达了分布的一系列有条件独立属性:在给定了父亲节点的状态后,每个变量与它在图中的非继承节点在概率上是独立的。

该图抓住了概率分布的定性结构,并被开发来做高效推理和决策。

贝叶斯网络能表示任意概率分布的同时,它们为这些能用简单结构表示的分布提供了可计算优势.假设对于顶点xi,其双亲节点集为Pai,每个变量xi的条件概率P(xi|Pai)。

则顶点集合X={x1,x2,…,xn}的联合概率分布可如下计算:。

双亲结点。

该结点得上一代结点。

该等式暗示了早先给定的图结构有条件独立语义。

它说明贝叶斯网络所表示的联合分布作为一些单独的局部交互作用模型的结果具有因式分解的表示形式。

贝叶斯网络

贝叶斯网络

(40-9)
贝叶斯网络中的独立关系
•利用变量间的条件独立关系可以将联合概率分布分解成多个复杂度较低的 概率分布,从而降低模型复杂度,提高推理效率。 •例如:由链规则可以把联合概率分布P(A, B, E, J, M)改写为: 独立参数:1+2+4+8+16=31
– E与B相互独立, 即P(E|B)=P(E) – 给定A时,J与B和E相互独立, 即P(J|B, E, A)=P(J|A) – 给定A时,M与J、B和E都相互独立,即P(M|J, A, B, E)=P(M|A)
– 条件独立 – 因果影响独立 – 环境独立
(40-11)
贝叶斯网络中的独立关系
(一)条件独立
•贝叶斯网络的网络结构表达节点间的条件独立关系。 •三种局部结构
– 顺连 (serial connection) – 分连(diverging connection) – 汇连(converging connection)
(40-15)
贝叶斯网络中的独立关系
(四)环境独立(context independence)
•环境独立是指在特定环境下才成立的条件独立关系。 •一个环境是一组变量及其取值的组合。设环境中涉及变量的集合用 C表示, C的一种取值用c表示,则C=c表示一个环境。 •定义5.8 设X,Y,Z,C是4个两两交空的变量集合,如果 P(X, Y, Z, C=c)>0 且 P(X|Y, Z, C=c)= P(X| Z, C=c) 则称X, Y在环境C=c下关于Z条件独立。若Z为空,则称X, Y在环境C=c下 环境独立。
得到联合概率边缘化分布:
再按照条件概率定义,得到
(40-8)
不确定性推理与联合概率分布

贝叶斯网络全解 共64页

贝叶斯网络全解 共64页
意结点到B中任意结点的路径,若要求A,B条件独 立,则需要所有的路径都被阻断(blocked),即满足 下列两个前提之一:
A和B的“head-to-tail型”和“tail-to-tail型”路径都通过C; A和B的“head-to-head型”路径不通过C以及C的子孙;
32
有向分离的举例
每个结点在给定其直接前驱时,条件独立于其非后继。
稍后详细解释此结论
18
一个简单的贝叶斯网络
19
全连接贝叶斯网络
每一对结点之间都有边连接
20
一个“正常”的贝叶斯网络
有些边缺失 直观上:
x1和x2独立 x6和x7在x4给定的条件下独立
x1,x2,…x7的联合分布:
21
BN(G, Θ) G:有向无环图 G的结点:随机变量 G的边:结点间的有向依赖 Θ:所有条件概率分布的参数集合 结点X的条件概率:P(X|parent(X))
思考:需要多少参数才能确定上述网络呢? 每个结点所需参数的个数:结点的parent数目是M,结点和 parent的可取值数目都是K:KM*(K-1) 为什么? 考察结点的parent对该结点形成了多少种情况(条件分布)
贝叶斯网络(Bayesian Network),又称有向无环图模 型(directed acyclic graphical model),是一种概率图 模型,借由有向无环图(Directed Acyclic Graphs, DAG)中得知一组随机变量{X1,X2...Xn}及其n组条 件概率分布(Conditional Probability Distributions, CPD)的性质。
Gas和Radio是独立的吗?给定Battery呢? Ignition呢?Starts呢?Moves呢?(答:IIIDD)

Bayesian 网推理算法

Bayesian 网推理算法

Bayesian 网推理算法1 Bayeisan推理基础贝叶斯网表达的是不确定性知识,它不仅是不确定性知识的表示工具,也是不确定性知识推理的重要工具。

我们先来了解一下推理和不确定性知识推理的知识。

推理其实是从已有的事实出发,利用有关的知识规则逐步推导出结论或证明某种假设是否成立的过程,其中已知的事实和知识或者规则构成了推理的两个基本要素。

由于现实世界事物与事物之间的关系的复杂性、随机性、模糊性和人们认知的局限,使得人们对它们的认识是不精确和不完全的,具有一定的不确定性,所以就存在诸多不确定性问题,于是对于不确定性问题得到的推理证据是具有不确定性的,那么与之对应的知识也应该是不确定性的,推理得出的结论也是具有不确定性的。

因此,不确定性推理就是从己有的不确定性证据出发,利用知识规则库中的不确定性知识,从而推出具有一定不确定性,但却是合理或近乎合理的结论的过程。

贝叶斯网正是以其良好的不确定性知识表达形式、丰富的概率。

1.1 推理任务Bayesian 网推理的一个基本任务是,由已知的证据集E 的观测e,计算查询变量X 的后验概率分布P(X|e)。

以后所讲的推理都是仅限于完成这个基本任务。

1.2 推理模式Bayesian 网推理机制可以归纳为以下四种模式:(1)因果推理。

由原因推导出结果,是一种自顶向下的推理模式,即己知原因(证据)的条件下,使用贝叶斯网络的推理算法,计算出目标结点的后验概率。

(2)诊断推理。

是一种自底向上的推理模式,是一种已知结果推算出导致该结点发生的原因结点的概率。

在各种疾病,机器故障等诊断系统常用到此模式,主要是为了找到导致疾病或故障发生的原因。

诊断推理和因果推理相比,相对复杂些,若在单路径的网中下,诊断推理更有用;(3)支持推理。

对所发生的现象给予解释,可对原因结点之间的相互影响进行分析,从而得出各原因之间的联系。

如图1中,事件Q和事件E1的发生,会导致事件算法EZ的发生;(4)混合推理。

python库中的5种贝叶斯算法

python库中的5种贝叶斯算法

python库中的5种贝叶斯算法Python是一种广泛使用的编程语言,拥有丰富的库和工具包,其中包括了多种贝叶斯算法。

贝叶斯算法是一类基于贝叶斯定理的统计学方法,可以用于分类、聚类、概率估计等任务。

在Python中,我们可以使用以下5种常见的贝叶斯算法来解决不同的问题。

1. 朴素贝叶斯算法(Naive Bayes)朴素贝叶斯算法是一种简单而有效的分类算法,它假设所有特征之间相互独立。

在文本分类、垃圾邮件过滤等任务中得到了广泛应用。

在Python中,我们可以使用scikit-learn库中的`sklearn.naive_bayes`模块来实现朴素贝叶斯算法。

该模块提供了多种朴素贝叶斯分类器的实现,如高斯朴素贝叶斯、多项式朴素贝叶斯和伯努利朴素贝叶斯。

2. 高斯朴素贝叶斯算法(Gaussian Naive Bayes)高斯朴素贝叶斯算法假设特征的概率分布服从高斯分布。

它常用于处理连续型特征的分类问题。

在Python中,我们可以使用scikit-learn库中的`sklearn.naive_bayes.GaussianNB`类来实现高斯朴素贝叶斯算法。

该类提供了`fit`和`predict`等方法,可以用于拟合模型和进行预测。

3. 多项式朴素贝叶斯算法(Multinomial Naive Bayes)多项式朴素贝叶斯算法适用于处理离散型特征的分类问题,如文本分类中的词频统计。

在Python中,我们可以使用scikit-learn库中的`sklearn.naive_bayes.MultinomialNB`类来实现多项式朴素贝叶斯算法。

该类同样提供了`fit`和`predict`等方法,可以用于拟合模型和进行预测。

4. 伯努利朴素贝叶斯算法(Bernoulli Naive Bayes)伯努利朴素贝叶斯算法适用于处理二值型特征的分类问题,如文本分类中的二进制词袋模型。

在Python中,我们可以使用scikit-learn库中的`sklearn.naive_bayes.BernoulliNB`类来实现伯努利朴素贝叶斯算法。

贝叶斯网络全解课件

贝叶斯网络全解课件
等。
评分函数
定义一个评分函数来评估网络结构的优劣,常用的评分函数包 括BIC(贝叶斯信息准则)和AIC(赤池信息准则)等。
参数学习优化
1 2
参数学习
基于已知的网络结构和数据集,学习网络中各节 点的条件概率分布,使得网络能够最好地拟合数 据集。
最大似然估计
使用最大似然估计方法来估计节点的条件概率分 布,即寻找使得似然函数最大的参数值。
案例三
异常检测:使用贝叶斯网络检测金融市场中的异常交易行为。
06
贝叶斯网络展望
当前研究热点
概率图模型研究
贝叶斯网络作为概率图模型的一种,其研究涉及到对概率图 模型基本理论的研究,包括对概率、图、模型等基本概念的 理解和运用。
深度学习与贝叶斯网络的结合
随着深度学习技术的发展,如何将深度学习技术与贝叶斯网 络相结合,发挥各自的优势,是当前研究的热点问题。
未来发展方向
可解释性机器学习
随着人工智能技术的广泛应用,人们对机器学习模型的可解释性要求越来越高 。贝叶斯网络作为一种概率模型,具有天然的可解释性优势,未来可以在这方 面进行更深入的研究。
大规模贝叶斯网络
随着数据规模的增大,如何构建和处理大规模贝叶斯网络成为未来的一个重要 研究方向。
技术挑战与展望
联合概率
两个或多个事件同时发生的概率。联合概率 的计算公式为 P(A∩B)=P(A|B)⋅P(B)+P(B|A)⋅P(A)。
条件独立性
01
条件独立的概念
在给定某个条件时,两个事件之 间相互独立,即一个事件的发生 不影响另一个事件的发生。
02
条件独立性的应用
03
条件独立性的判断
在贝叶斯网络中,条件独立性用 于简化概率计算,降低模型复杂 度。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)2010-09-18 22:50 by EricZhang(T2噬菌体), 2561 visits, 网摘, 收藏, 编辑2.1、摘要在上一篇文章中我们讨论了朴素贝叶斯分类。

朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。

当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征属性间往往并不条件独立,而是具有较强的相关性,这样就限制了朴素贝叶斯分类的能力。

这一篇文章中,我们接着上一篇文章的例子,讨论贝叶斯分类中更高级、应用范围更广的一种算法——贝叶斯网络(又称贝叶斯信念网络或信念网络)。

2.2、重新考虑上一篇的例子上一篇文章我们使用朴素贝叶斯分类实现了SNS社区中不真实账号的检测。

在那个解决方案中,我做了如下假设:i、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像。

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

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

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

因此,我们为了获取更准确的分类,可以将假设修改如下:i、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像。

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

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

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

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

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

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

例如,通过对训练数据集的统计,得到下表(R表示账号真实性,H表示头像真实性):纵向表头表示条件变量,横向表头表示随机变量。

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

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

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

例如,现随机抽取一个账户,已知其头像为假,求其账号也为假的概率:也就是说,在仅知道头像为假的情况下,有大约35.7%的概率此账户也为假。

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

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

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

2.3、贝叶斯网络的定义及性质有了上述铺垫,我们就可以正式定义贝叶斯网络了。

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

DAG中每一个节点表示一个随机变量,可以是可直接观测变量或隐藏变量,而有向边表示随机变量间的条件依赖;条件概率表中的每一个元素对应DAG中唯一的节点,存储此节点对于其所有直接前驱节点的联合条件概率。

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

这个性质很类似Markov过程。

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

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

一般情况先,多变量非独立联合条件概率分布有如下求取公式:而在贝叶斯网络中,由于存在前述性质,任意随机变量组合的联合条件概率分布被化简成其中Parents表示xi的直接前驱节点的联合,概率值可以从相应条件概率表中查到。

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

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

2.4、贝叶斯网络的构造及学习构造与训练贝叶斯网络分为以下两步:1、确定随机变量间的拓扑关系,形成D AG。

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

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、将收敛结果作为推断值。

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

算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)2010-09-17 13:09 by EricZhang(T2噬菌体), 2628 visits, 网摘, 收藏, 编辑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、朴素贝叶斯分类的原理与流程朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

相关文档
最新文档