改进贝叶斯

2024-05-19

改进贝叶斯(共7篇)

改进贝叶斯 篇1

0前言

分类是数据挖掘中一项重要的核心技术,其目的就是通过学习得到一个目标函数f,把每个属性集映射到一个预先定义的类标号y,因此可以将分类看作是从数据库到一组类别的映射。这些类别是被预先定义的,没有重合的。数据库里的每一个元组都可以准确地分配到某个类中。朴素贝叶斯分类器是一种最简单、有效、具有坚实的理论基础并在实际应用中得到广泛使用的分类器。朴素贝叶斯分类方法基于条件独立性假设,即假设一个属性对给定类的影响独立于其他属性,而这在现实问题中往往并不成立,为此,许多学者做了大量的工作来放松独立性假设。Harry Zhang等根据条件属性对决策所起的作用给予它们不同的权值,提出了加权朴素贝叶斯分类模型。Zhou Jiyi等根据粗糙集权重确定方法提出了一种基于区分矩阵的属性权重确定法。程克非、张聪提出了一种基于特征加权的朴素贝叶斯分类器。秦锋、任诗流提出一种通过用加权调整的先验概念来代替原朴素贝叶斯的先验概率。白似雪,梅君提出一种计算每个属性对每个类的相关概率和不相关概率,并以此进行加权。本文提出另一种加权方法,将信息论里互信息知识与属性之间的相关性相结合,给予不同的条件属性赋予不同的权值,实验证明,这种方法能有效提高分类效果。

1 朴素贝叶斯分类器

每个元组用一个n维属性向量X={x1,x2,…xn}表示,描述由n个属性A1,A2,…,An对元组的n个测量。假定有m个类C1,C 2...,Cm。这样,给定一个未知的元组X,其P(Ci|X)最大的类iC称为最大后验假定。根据贝叶斯定理:

由于P(X)对于所有类为常数,只需要P(X|Ci)P(Ci)最大即可。如果类的先验概率未知,则通常假定这些类是等概率的,即P(C 1)=P(C 2)=...P(Cm)。并据此对P(Ci|X)最大化。否则,最大化P(X|Ci)P(C i)。注意,类的先验概率可以用P(C i)=si/s计算其中is是类iC中的训练样本数,而s是训练样本总数。

给定具有许多属性的数据集,计算P(X|Ci)的开销可能非常大。为降低计算P(X|Ci)的开销,可以做类条件独立的朴素假定。给定元组的类标号,假定属性值有条件地相互独立,即在属性间不存在依赖关系。这样,

先验概率p(x1|Ci),p(x2|Ci),……,p(xn|Ci)可以从训练数据集求得。

根据此方法,对一个未知类别的样本X,可以先分别计算出X属于每一个类别Ci的概率P(X|Ci)P(Ci),然后选择其中概率最大的类别作为其类别。即朴素贝叶斯分类模型为:

2 属性加权朴素贝叶斯分类算法

在现实实际应用中不同的条件属性与决策属性之间的相关程度是不同的,当条件属性与决策属性的相关程度高,它对分类的影响就要更大些,反之,如果条件属性与决策属性的相关程度较小,那么它对分类的影响就会很小。条件属性与决策属性的相关关系可以用相关系数的求解公式求得。设条件属性为Xi,决策属性为Y,其相关系数可以通过Xi与Y的协方差与Xi与Y的方差的几何平均数求商得到,它反映了Xi与Y属性的线性相关紧密的程度,值越大表明属性之间的联系越紧密,反之则联系较差。

属性间的相关系数为:

由于权值的范围介于0和1之间,则设定权值为:

信息论里的互信息概念是描述某个随机变量关于其他随机变量变化时的信息量的大小,它可以用来反映条件属性提供的关于决策属性的信息量的大小。而相关系数是通过代数方法里的协方差与方差来求得的,它侧重与属性间的偏离程度,能够有效的改进分类能力,但是它对属性间的变化不敏感。因此希望通过结合相关系数与互信息的知识,从而使属性获得更好的权重,提高分类效果。

设条件属性C和决策属性D的互信息,记为:

因此可以得出条件属性iC的权值为:

综合相关系数与互信息的权值公式,定义两者的平均值作为新的权值公式:

基于属性加权的AWI-AUC算法的实现关键在于求出各条件属性与决策属性之间的相关系数和他们的互信息。具体算法步骤如下:

步骤1数据预处理:将训练样本和待分类样本进行补齐和离散化;

步骤2分类器的建构。

步骤2.1读入并搅乱数据集,对数据集里的条件属性,决策属性,以及训练样例进行统计,生成统计表。再将数据集划分为新的训练集和测试集。

步骤2.2生成分类器网络结构,并对其进行参数学习。

步骤2.3计算所有的先验概率值,即在决策属性Dj下各个条件属性Ci取值的概率p(Ci|D)。

步骤3计算权值。

步骤3.1权值Wc的计算。扫描所有的训练集,求出各条件属性与决策属性的协方差Cov(Ci,D)和方差D(Ci)和D(D),通过公式计算得到相关系数ρCi D,则权重Wc=|ρCi D|。

步骤3.2权值Wi的计算。先求出条件属性和决策属性的互信息I(Ci,D),再计算权重Wi。

步骤3.3综合权值Wc和Wi,求得所需的权值Wci,并生成属性权值列表。

步骤4分类评估。通过对属性给予不同的权值,得出分类结果。

该算法的性能在各多项式时间内完成,并且算法可行。

3 实验结果及分析

为了验证算法的可行性和有效性,用数据集对算法进行了测试。实验数据集选自UCI(University of California in Irvine)数据库,下载网址是http://www.ics.uci.edu/~mlearn/MLRepository.html。所有数据集中数据的连续属性值均进行离散化处理。实验在MBNC(Bayesian Networks Classifier using Matlab)平台下完成。首先对数据集进行随机搅乱,打乱数据之间原先的排列顺序,并对数据集采取5叠交叉验证。每个数据集轮流实验5次,取5次实验的平均值作为实验的测试结果。表1为经过预处理后的数据集情况。

实验结果如表2所示。O-AUC表示的是没有使用加权方法时得出的AUC值,CC-AUC表示的是使用相关系数作为加权方法得到的AUC值,I-AUC表示的是使用信息论中的互信息知识作为权重后得到的AUC值,AWI-AUC表示的是本文提出的AWI-AUC算法得到的AUC值。

由表2可知:

(1)当O-AUC与CC-AUC,I-AUC比较时,可以看出CC-AUC,I-AUC在各个数据集下得到的AUC值均大于O-AUC,可见通过把条件属性与决策属性的相关系数和互信息作为条件属性的权重,可以提高分类器的分类性能,使得分类更加准确。

(2)当CC-AUC与I-AUC比较时,CC-AUC的值比I-AUC的值大的有6个数据集,比I-AUC值小的有4个数据集,并且这4个数据集中的训练集个数均偏大,可见I-AUC更适合对数据集大的进行分类,会获得更好的分类效果,只是原样本集里填充和离散的数据会对原样本产生影响。CC-AUC在这种情况下可以有效地提高贝叶斯分类能力。但CC-AUC采用的权重是通过相关系数得到,相关系数由代数的计算方法求得,结合实验对数据规模偏小的数据集更加适合,因此将上述两种方法综合求均值,得到新的AWI-AUC方法,通过实验证明AWI-AUC在总体上要好于其他方法,并证明了通过挖掘属性之间的潜在关系,对属性赋予不同程度的权重,可以获得更好的分类效果。

4 结束语

本文基于研究条件属性与决策属性之间的关系,并结合信息论中互信息的相关知识,提出一种加权的AWI-AUC方法,根据条件属性对决策分类的重要性不同给予其不同的权重系数来对AUC方法进行优化评估。在MBNC实验平台上实现该方法,并在数据集上通过实验比较,表明该方法的有效性和可行性。今后,将进一步研究改进条件属性与决策属性相关性的方法,以及分析条件属性与条件属性之间的关系,是否能够更好地提高分类器的分类能力。

参考文献

[1]秦锋,杨波,程泽凯.分类器性能评价标准研究[J].计算机技术与发展.2006.

[2]Harry Zhang,Shengli Sheng.Learning Weighted Na?ve Bayes with Accurate Ranking.[C]//The 4th IEEE International Conference on Data Mining.Chicago:IEEE Computer Society,2004.

[3]ZHOU Jiyi,LV Yuejin.A New Method of Ascertaining Attribute Weight Based on Discernibility Matrix.CSIST.2010.

[4]程克非,张聪.基于特征加权的朴素贝叶斯分类器[J].计算机仿真.2006.

[5]秦锋,任诗流等.基于属性加权的朴素贝叶斯分类算法[J].计算机工程与应用.2008.

[6]白似雪,梅君,吴穹.一种基于概率加权的朴素贝叶斯分类.2009.

[7]林士敏,王双成,陆玉昌.Bayesian方法的计算学习机制和问题求解[J].清华大学学报.2000.

[8]张明卫,王波,张斌.基于相关系数的加权朴素贝叶斯分类算法[J].东北大学学报(自然科学版).2008.

[9]C.Blake and C.Merz,UCI Repository of Machine Learning Databases.http://www.ics.uci.edu/~mlearn/MLRepository.html.1998.

[10]程泽凯,林士敏,陆玉昌.基于Matlab的贝叶斯分类器平台MBNC[J].复旦学报.2004.

改进贝叶斯 篇2

关键词:异常入侵检测,报警分类,贝叶斯算法,积极错误

0 引言

网络入侵检测用于检测非法使用互联网上未经授权计算机系统资源的行为。James P.Anderson于1980年介绍了第一个入侵检测系统IDS(Intrusion Detection System),在此系统中,审计记录定义为用户使用计算机时产生的系统日志[1]。如今,入侵检测系统已成为信息安全建设中一个不可或缺的部分。如何在数据集中获取规则以用于区分正常行为和异常行为对IDS来说是至关重要的问题,通常,IDS使用机器学习方法(如:神经网络[2],支持向量机[3],基因算法[4],模糊逻辑[5],和数据挖掘[6],等等)分析大型数据集中的记录,并优化检测规则来解决这一问题。近年来,基于网络入侵检测进入了一个新的时期,入侵者越来越别出心裁,他们使用了一系列新的方法来达到入侵网络服务器或个人计算机的目的。今天,入侵检测所面临的最大的难题之一是开发拥有更高分类效率和更能减少积极错误的IDS。

贝叶斯算法为分类提供了一种概率方法,它是一种检测未知实例归类的最优方法,已广泛应用于数据挖掘,图像处理,生物信息学,信息检索等许多领域。贝叶斯算法从数据集中计算出实例的所有类条件概率,通过这些条件概率决定实例应该归属哪个类,从而将未知实例归属到它所属的类别中。基于对当前贝叶斯算法相关研究的综合分析,结合决策树算法,我们提出了一种改进的自适应贝叶斯算法,以解决IDS在分类比率和积极错误这两方面遇到的问题,这种算法能够在很短的响应时间内对数据集进行准确地分类,它的优点是对检测效率最大化和对积极错误最小化。

1 相关理论及技术

1.1 最大后验MAP(Maximum A Posteriori)假设

贝叶斯规则提供一种基于先验概率的规则来计算某一假设可能性。在许多贝叶斯学习场景中,学习者先假设存在多个候选假设量,并构成假设集H,需求的是给定数据D,找出一个H中最大可能性的假设量h,既使得P(h|D)的取值最大。任何这类最大可能性假设都叫做最大后验(MAP)假设。MAP假设用贝叶斯规则来计算每一个候选假设量的后验概率。hmap是一个如下的MAP假设:

由于P(D)是与h无关的常量值,因此在公式“(1)”中最后一步可以将常项P(D)删除。

1.2 朴素贝叶斯NB(Native Bayes)分类器

朴素贝叶斯分类器是一个简单概率分类器。依赖概率模型的精确性,NB分类器能够应用于监督学习的训练中。给定一组训练实例和相关类C,对未知实例进行分类,未知实例的X1到XK属性值是已知的,可表示为x1,x2,…,xK。未知实例最理想的分类可表示为:

在朴素贝叶斯的学习中,式“(2)”中P(C=c)的值可以由给出的训练数据进行估算。

1.3 决策树算法

文献[7]中的ID3算法利用信息论思想建立决策树,并利用最大信息增益的方式从数据集中选择分割属性(splitting attribute)。用于量化信息的理论被称为熵,在ID3算法中它用于度量数据集中的随机性。ID3算法中计算增益的算法如等式“(3)”,其中H(D)为数据集D的熵。

文[8]中采用C4.5算法对ID3算法进行了改进。为了得到分割属性,C4.5算法使用最大增益率(Gain Ratio)来获得最大增益,而不是平均信息增益。

2 改进的自适应贝叶斯算法

2.1 自适应贝叶斯算法ABA(Adaptive Bayesian Al-gorithm)

自适应贝叶斯算法ABA[9]从标准入侵检测数据集KDD99(Knowledge Discovery in Database)中建立一个函数,以建立在权重之上的概率为基础,这个函数为每个训练数据集中匹配同一类的属性值建立类条件概率。通过等式“(5)”计算每个属性值的类条件概率。

式“(5)”中,Wx是每个属性值的权值的总和,WC是每个类的权值的总和。算法通过等式“(6)”将待测的实例归属到相应的类。

当有实例没有归属到相应的类中时,算法便更新训练数据的权重,更新权重的公式如“(7)”式中。

上述算式中S是测试实例和训练实例之间的相似度。一旦权重发生变化,类条件概率相应地进行更新。如果新的类条件概率集能够对所有的测试实例进行正确分类,此时算法结束。否则,继续重复上述更改权重的过程,直到所有的实例被正确分类或者达到目标准确率。算法终止时保存类条件概率,以用于对新的实例进行分类。

2.2 改进的自适应贝叶斯算法

基于3.1所提算法,我们提出了一种改进的自适应贝叶斯算法IAB(improved adaptive bayesian algorithm)。给定训练集D,IAB先将每个实例的权值Wi设置为1.0,以每个类在训练集中发生频率的总权值来估算每个类的先验概率P(Cj),对于训练集中的每个属性Xi,我们把Xij的所有权值进行相加决定概率P(Xij)和Xi取值的个数。同理,P(Xij|Cj)可以通过计算训练集中某类C的属性值的总权值和得到。类条件概率P(Xij|Cj)能够估算所有与Cj相关的属性值的所有概率值。然后,IAB算法利用这些条件概率对训练值进行分类。利用实例的所有不同属性值的概率乘积来决定训练实例应被分配到哪个类中。假设训练实例ei有n个相互独立的属性值{Xil,Xi2,...,Xin},利用类Cj和属性Xik,IAB算法可以计算出P(Xik|Cj),式“(8)”指出了如何计算计算概率P(ei|Cj)。

为了计算概率P(ei),算法首先估算ei归属到每个类的概率,ei归属于某类的概率由每个属性值的条件概率产生;然后计算每个类的后验概率P(Cj|ei);最后决定实例的归类,具有最大后验概率值的类就是实例要归入的类。利用P(Cj|ei)的最大值,IAB更新训练集中每个实例的权值,改变与最大后验概率相关的类值。当发现有训练集中有实例没有归属到相应的类时,算法改变训练实例的权值,重新计算后验概率P(Cj)和条件概率P(Xij|Cj),然后对训练实例进行重新分类,并更新实例的权值。这种过程会一直重复,直到所有训练实例都进行了分类或目标准确率已经达到。

当对训练实例进行分类之后,算法将利用条件概率P(Xij|Cj)对测试实例进行归类。如果测试实例都正确地进行了分类,训练实例的权值就保存下来。当有任何测试实例未能归类时,算法对训练实例的权值进行重新设置,将训练实例和测试实例进行比较计算出相似度(例:如果4个属性值中有两个属性值相同,那么相似度为0.5,如果4个属性值中只有一个属性值相同,相似度为0.25等等),然后将训练实例的权值加上常量与相似度的积。实例的权值改变后,为属性值计算条件概率P(Xij|Cj),这个概率值从训练实例修改后的权值开始重新计算。如果新的概率集适合所有测试实例的分类,算法将这些条件概率存储起来,并用更新过的权值为参考建立决策树模型。整个算法步骤描述如下:

算法1:IAB算法

输入:训练数据D,测试数据

输出:入侵检测模型

步骤:

1.初始化D中的权值Wi=1.0;

2.计算D中的每个类Cj的先验概率P(Cj),

3.计算D中每个属性值Xij的概率P(Xij),

4.计算D中每个属性值的条件概率P(Xij|Cj),

5.将D中的实例进行分类,

6.用后验概率P(Cj|ei)的最大似然值(ML)对D中的权值进行初始化,然后改变与最大后验概率相关的类值,

7.如果D中有没有分类的实例,转到步骤2,否则转到步骤8;

8.利用条件概率P(Xij|Cj)对测试实例进行分类;

9.如果发现有测试实例没有归类,这时用相似度S更新D中的权值,Wi=Wi+(S×0.01);

10.如果权值更新了,相应地对概率P(Xij)和P(Xij|Cj)进行更新,并转至步骤8;

11.如果所有的测试实例都进行了正确地分类,算法将条件概率存储起来,用于将来出现的已知或未知的入侵行为;

12.利用最后更新过的训练实例的权值构造出决策树。

3 实验结果及分析

3.1采用的实验数据

KDD99数据集是一个用于评价入侵检测技术的通用标准数据集[10]。在KDD99数据集中,每个数据实例代表网络数据流中某类的属性值。KDD99数据集主要有五种类型,这五种数据的主要功能如下:

1)Normal connection:由模拟日常用户行为而产生,如:文件下载,浏览web网页等。

2)DoS:它可能引起受害机器的计算能力和内存的不足,使得计算机无法对合法请求进行处理。

3)U2R:入侵者先取得系统的普通使用权,然后利用系统的缺陷成为超级用户。

4)R2L:远程用户通过利用网络通信技术发送网络包的方式访问本地账户。

5)Probing:指扫描网络获取重要信息或是找出已知的缺陷。

IAB算法以KDD99为蓝本进行实验,我们随机抽取了KDD数据集里10%训练数据和10%的测试数据。

3.2 实验结果及分析

首先我们分别用朴素贝叶斯分类器NB算法,自适应贝叶斯AB算法两种传统的分类算法,改进的贝叶斯IAB算法对抽取出来的测试集进行分类。由表1可知,IAB所用时间约为传统分类算法所用时间的一半,既我们所提之算法能够在更少的系统响应时间内对数据集进行分类。

我们还将NB和ABA算法用于测试集,它们的性能比如表2。表2中的数据是使用了KDD 99数据集中41个属性得到的。

利用我们提出的IAB算法进行实验,并且分别取KDD99数据集中的12个属性和17个属性组成精简集,得到的数据分类成功率如表3。通过比较可知,IAB算法较之传统的分类算法对数据集进行分类时需求的属性值的个数更少,分类的成功率更高。

使用支持向量机SVM(Support Vector Machine)算法,神经网络NN(Neural Networks)算法,基因算法GA(Gene Algorism),朴素贝叶斯分类器NB算法和改进的自适应贝叶斯IAB算法对我们抽取的数据集进行分类测试实验,实验结果如表4。与传统机器学习方法相比,IAB算法对KDD99数据集的分类测试的成功率更高。

我们还将上述的几种机器学习方法的受试者工作特性ROC(Receiver Operating Characteristics)进行了比较,比较的结果如果图1。在相同的积极错误产生率的情景下,IAB算法的检测效率较之传统算法更高。

4 结论和将来的工作

IAB算法最主要的优点是它为异常网络入侵检测系统产生最小限度的规则集,这些规则集的产生通常是由对以前入侵活动进行检测所得,分析了大量的异常数据,在提高检测速率和检测准确度的性能上,我们考虑了攻击行为的复杂性,提出了一种基于机器学习的非监督算法。我们专注的重点是对自适应贝叶斯分类算法改进,使用新的分类标准对训练数据或测试数据进行分类,当有实例未能归类成功时,我们将重新调整训练实例的权值,直到满足分类需求为止。通过实验证明IAB算法极小化了积极错误的发生,极大化了分类成功率。

将来的工作是利用安全领域的知识来进一步提高检测准确率,将IAB算法可视化,应用于实际的入侵检测系统中。

参考文献

[1] James P. Anderson. Computer Security threat monitoring and surveillance[R] Pennsylvania: James P. Anderson Company, 1980.

[2] 柴晨阳,孙星明,吴志斌.基于神经网络集成的入侵检测研究[J].计算机应用,2007,27(6):1363-1364.

[3] 铙 鲜,董春曦,杨绍全.基于支持向量机的入侵检测系统[J].软件学报,2003,14(4):798-801.

[4] 王桐.基于基因算法的分布式入侵检测系统研究[D].哈尔滨:哈尔滨工程大学,2003.

[5] 段友祥,王海峰,满成城.模糊逻辑在基于AIS的主机入侵检测中的应用[J].计算机工程与设计,2005,26(9):2450-2451.

[6] 罗敏,王丽娜,张焕国.基于无监督聚类的入侵检测方法[J].电子学报,2003,31(11):1713-1716.

[7] Quinlan J R. Induction of Decision[J] Tree. Machine Learning,1986(1):81-106.

[8] Quinlan J R. C4.5:Programs for Machine Learning [M]. San Francisco: Morgan Kaufmann Publishers, 1993.

[9] Farid D M, Rahman M Z. Learning intrusion detection based on adaptive bayesian algorithm[C]//Procceedings of 11th International Conference on Computer and Information Technology. New York: IEEE Press, 2008:652-656.

改进贝叶斯 篇3

加油站储存有大量易燃、易爆、易挥发的油品, 极易引发火灾爆炸事故。1998~2005年期间全国加油站火灾1796起[1], 死亡166人, 伤1030人, 直接经济损失4012.6万元, 导致巨大的财产损失和人员伤亡。因此, 对加油站火灾爆炸事故进行分析, 找出导致其发生的危险因素十分必要。李博[2]、张继明[3]等提出加油站火灾爆炸故障树分析。但故障树分析法只能基于事件二态性分析, 并且不能逆向推理。从推理机制来看, 贝叶斯网络可以弥补事故树的一些不足[4,5]。本文提出将故障树分析 (Fault Tree Analysis, FTA) 方法与贝叶斯网络 (Bayesian Networks, BN) 方法结合起来, 以加油站火灾爆炸事故为目标建立故障树, 然后将故障树转换为贝叶斯网络进行分析。

1 基本方法概述

首先建立加油站火灾爆炸故障树, 并以此为目标将故障树转换为贝叶斯网络进行分析。在转换的过程中对模型条件概率表进行修正, 使得事故发生的因果关系更加合理。故障树分析法是常用分析方法, 在此不再赘述。

BN分析法是一种表示变量之间依赖关系的图形模型。每个节点都带有一张概率表的有向无环图。在BN中, 如果从节点X到节点Y有一条边, 那么X为Y的父节点 (Parent) , 而Y为X的子节点 (Child) 。没有任何导入箭头的节点叫根结点, 没有子节点的节点称为叶节点 (Leaf node) 。每个子节点都有一个在父节点的取值组合下的条件概率分布, 每个条件概率表可以用来描述相关随机变量之间局部联合概率分布集, 代表子结点同其父结点的相关关系[6]。在贝叶斯网络中, 无须求解割集, 利用联合概率分布可以直接计算顶事件T的发生概率。

式中, Xi对应于子节点;F (Xi) 对应于父节点;n为贝叶斯网络中节点的数目。按照贝叶斯公式给出的条件概率定义:

假设A为一个变量, 存在n个状态a1, a2, …, an。则由全概率公式可以得到:

从而根据贝叶斯公式得到后验概率P (B|A) [7]。

1.1 基于故障树的贝叶斯网路

1.1.1 FTA向BN的转化

按照故障树与贝叶斯网络的主要映射关系:事件-节点、逻辑门-连接强度, 将故障树转换为贝叶斯网络。FTA向BN转化算法如下[8]:

1) 对事故树中的基本事件或中间事件, 在贝叶斯网络中建立1个根节点, 并根据该事件名称进行命名, 对于重复事件只建立1个节点。

2) 按照事故树中相应基本事件或中间事件的失效分布确定贝叶斯网络中根节点的先验分布。

3) 对事故树中的逻辑门, 在贝叶斯网络中建立1个相应的节点, 并根据该逻辑门的输出事件名称进行命名, 对于重复的输出事件只建立1个节点。

4) 按照事故树中顶事件, 中间事件和底事件之间的连接关系建立贝叶斯网络中节点之间的连接。

5) 按照事故树中与、或、非以及表决逻辑关系确定贝叶斯网络中非根节点的条件概率分布。

与/或逻辑关系对应的贝叶斯网络拓扑结构及条件概率分布见图1。

1.1.2 BN模型的修正

相对于事故树分析, BN的多态性、条件概率等特性能够为事故发生的因果关系建立更合理的模型[9]。以下是对模型条件概率表进行的修正。

在故障树分析中, 逻辑门处理的是确定性关系。如图1中或门, 只要X1和X2中任意一个发生, 则顶事件T必然发生。在实际中并不一定是这样的, 即使X1与X2都发生, 事件T也有可能不发生。相同的X1与X2都不发生, 事件T未必不发生。BN可以利用条件概率表来处理这一问题, 如表1、表2所示。

在实际的风险评价中, 通过专家打分、历史数据等方式来对概率值进行修订。由此可见, 在事故树模型中难以描述的事件状态多态性和逻辑关系非确定性, 在BN模型中只需要更改相应的条件概率表便可以轻易实现, 且修正后的BN模型更符合实际, 有利于提高概率风险评价定量分析的正确性。

1.2 Ge NIe软件

Ge NIe (Graphical Network Interface) 是美国匹兹堡大学决策系统实验室开发的用以构建图形决策理论模型的软件。Ge NIe具有可视化界面, 方便构建贝叶斯网络模型。同时提供贝叶斯网络学习和推理功能, 其中推理算法应用的是联合树推理算法[10]。

2 实例应用

以某加油站为例, 在建立加油站火灾爆炸故障树的基础上, 利用BN方法对加油站火灾爆炸事故进行分析。

2.1 FT与BN在加油站火灾爆炸事故中建模

加油站火灾爆炸故障树见图2, 事故致因的类型代号、事件名称及概率值见表3。

2.2 FTA向BN转化

2.3 BN推理计算

在Ge NIe软件中建立网络如图3, 为了显示效果更直观, 将显示类型调为Bar Chart。将通过历史数据和专家打分得到的先验概率值以及条件概率表中的数值添加到Ge NIe软件中就能计算出各基本事件的后验概率, 如图5所示, 数据见表3。

以节点A2为例, 有两个父节点A8、A9, 则输入条件概率过程如图4所示。其中state0表示事件不发生, state1表示事件发生。在Ge NIe软件中假定加油站火灾爆炸事故状态为已发生, 即state=0, state=1。利用反向推理, 求出各基事件的后验概率, 如图5所示。

2.4 分析讨论

利用Ge NIe软件可进行后验概率计算、灵敏度及影响力分析。

2.4.1 后验概率计算

后验概率是修正先验概率后所获得的更接近实际情况的概率估计, 表示事件发生的可能性大小。由计算结果可知, 加油站火灾爆炸事故基事件的后验概率中, 发生可能性最大的前七项分别为:①接打手机;②加油冒油;③给塑料容器加油;④油枪渗漏;⑤加油机漏油;⑥机械碰撞;⑦作业前未放电。

由计算结果可知, 该加油站火灾爆炸事故的各基本事件发生概率如图5所示。

2.4.2 灵敏度分析

贝叶斯网络的灵敏性分析是研究模型局部参数或证据微小变化对于目标结点所产生的影响, 以发现复杂系统的重要参数和结构[11]。利用Ge NIe软件对加油站火灾爆炸贝叶斯网络进行灵敏度分析。此处主要对基事件灵敏度进行分析, 可以得出共有18个基事件节点灵敏度较高。分别为X2、X3、X7、X8、X9、X10、X11、X15、X16、X17、X18、X19、X21、X23、X30、X32、X33、X35。可以发现系统的灵敏度较高, 对较多危险因素都很敏感, 符合加油站安全要求高, 较为敏感的特性。

2.4.3 影响力分析

影响力分析是用来判断某事件对后果事件影响的重要程度。贝叶斯网络的影响力分析是研究节点间的相互影响程度。与贝叶斯网络结构和先验概率有关。目的在于找出导致事故发生的最可能途径。在Ge NIe软件中通过弧线的宽窄表示, 如贝叶斯网络拓扑图可知, 产生静电的两条最有可能途径分别为:①X18→A11→A4→A1;②X40→A21→A18→A12→A6→A1。产生油气混合物的最有可能途径为X24 (X25) →A15→A9→A2。经调查该加油站属于大陆性季风气候, 经常发生雷电现象, 同时该加油站位于城乡结合部, 一些农户会使用塑料容器购买油品。评价结果与实际情况相符。

综合后验概率大小、基事件灵敏度和影响力分析, 可以发现三者分析结果基本保持了一致性, 都能够识别出危险性较大的事件。同时依据火灾爆炸发生机理可以得到导致该加油站发生火灾爆炸事故可能性最大的途径如图6所示。

3 结论

基于故障树的贝叶斯网络分析模型, 很好的克服了故障树分析法的局限性, 在故障树分析中难以描述的事件状态多态性和逻辑关系的非确定性, 在贝叶斯网络模型中只需要改变相应的条件概率表便可实现。修正后的贝叶斯网络模型更加符合实际, 提高了加油站安全失效定量分析的准确性。通过利用Ge NIe软件计算分析, 可以得到基本事件的后验概率、灵敏度和影响力的大小。找出了实例加油站敏感性高、危险性大的因素, 详见2.4分析讨论。需要注意的是有一些众所周知的危险因素依然频发, 特别是在加油站使用手机、给塑料容器加油、加油冒油等现象, 依然是该加油站安全预防的重点关注对象, 分析这些敏感、易发危险因素可以发现, 导致加油站发生火灾爆炸事故的原因大多数为常见的危险行为和危险要素, 说明了提高加油站的安全性不仅需要我们找出危险原因, 还需要加强管理, 做好宣传, 规范行为。

参考文献

[1]闫峻, 康茹, 闫峥.加油站火灾爆炸事故的统计分析及消防安全对策[J].消防技术与产品信息, 2008, (4) :40-43YAN Jun, KANG Ru, YAN Zhen.Statistical analysis and safety measures of gas fire and explosion[J].Fire Technique and Products Information, 2008, (4) :40-43

[2]李博, 闫善郁, 解卓明.加油站火灾爆炸故障树分析[J].安全、健康和环境, 2004, (6) :33-36LI Bo, YAN Shan-yu, XIE Zhuo-ming.Fault tree analysis of gas fire and explosion[J].Safety Health&Environment, 2004, (6) :33-36

[3]张继明.运用故障树分析法对加油站火灾爆炸事故原因进行探析[J].消防技术与产品信息, 2013, (11) :52-55ZHANG Ji-ming.The gas station fire and explosion analysis by using FTA[J].Fire Technique and Products Information, 2013, (11) :52-55

[4]王广彦, 马志军, 胡起伟.基于贝叶斯网络的故障树分析[J].系统工程理论与实践, 2004, (6) :78-83WANG Guang-yan, MA Zhi-jun, HU Qi-wei.THE fault tree analysis based on bayesian networks[J].Systems Engineering—Theory&Practice, 2004, (6) :78-83

[5]周忠宝.基于贝叶斯网络的概率安全评估方法及应用研究[D].国防科学技术大学, 2006

[6]张连文, 郭海鹏.贝叶斯网引论[J].北京:科学出版社, 2006:30-42

[7]尹晓伟, 钱文学, 谢里阳.基于贝叶斯网络的多状态系统可靠性建模与评估[J].机械工程学报, 2009, (2) :206-212YIN Xiao-wei, QIAN Wen-xue, XIE Li-yang.Multi-state system reliability modeling and assessment based on bayesian networks[J].Journal of Mechanical Engineering, 2009, (2) :206-212

[8]周忠宝, 周经伦, 金光.基于贝叶斯网络的概率安全评估方法研究[J].系统工程学报, 2006, 21 (6) :636-643+667ZHOU Zhong-bao, ZHOU Jing-lun, JIN Guang.Probabilisfic safety assessment research based on Bayesian networks[J].Journal of Systems Engineering, 2006, 21 (6) :636-643+667

[9]王永刚, 孙瑶.基于BN的FTA在通用航空风险评价中的应用[J].中国安全科学学报, 2010, (3) :19-23WANG Yong-gang, SUN Yao.Application of FTA based on BN to risk assessment of general aviation[J].China Safety Science Journal, 2010, (3) :19-23

[10]http://genie.Sis.pitt.edu/

改进贝叶斯 篇4

1 贝叶斯技术

贝叶斯算法是英国著名数学大师托马斯·贝叶斯提出的一种根据已经发生的事件来预测新事件发生的可能性的基于概率分析的分类理论, 应用于文本分类时, 通过计算文本属于每个类别的概率来将其归入概率最大的一类[4]。算贝叶斯垃圾邮件过滤技术的原理是通过对大量垃圾邮件中的常见关键词进行分析后得出其分布的统计模型, 并根据贝叶斯公式计算目标邮件是垃圾邮件的概率。设dx表示文本集合, 计算文本dx属于某个类别ci的概率的方法如公式 (1) 所示:

其中, 文本dx出现的概率根据全概率公式计算, 如公式 (2) 所示:

ci类的先验概率P (ci) 可以根据历史的经验由训练集估算, 公式如下:

文本的类条件概率由文本中出现的特征的类条件概率求得, 计算方法如式 (4) 所示:

其中, B表示特征词wt在文本中出现的情况, 其值为1表示出现, 否则表示不出现。

P (wt|ci) 表示属于ci类的情况下特征词wt出现的概率, 本文在计算时不考虑特征词出现的先后顺序及在文本中出现的次数, 因此根据公式 (5) 进行计算。

2 贝叶斯垃圾邮件过滤系统

垃圾邮件过滤问题是一个二值分类问题, 最终结果把邮件分为垃圾邮件spam和正常邮件ham。当收到一封新邮件时, 可以通过计算的概率来对邮件进行分类。整个算法分为训练过程和分类过程两个阶段。

2.1 学习训练

(1) 通过各种途径收集大量的垃圾邮件和正常邮件, 建立垃圾邮件集和正常邮件集。 (2) 提取垃圾邮件集和正常邮件集中每封邮件的邮件主题及邮件内容中的独立字符串Token串作为特征词, 如发票, 打折等, 并统计提取出的Token串出现的次数即词频, 形成了特征集合

(3) 为正常邮件和垃圾邮件分别建立一个哈希表, hash_ham对应正常邮件, hash_spam对应垃圾邮件, 存放特征词Token串到字频的映射关系。

(4) 根据公式 (4) 计算特征词wt的类条件概率P (wt|ci) 。

(5) 根据公式 (3) 统计类的先验概率P (ci) 。

2.2 分类过程

(1) 对新邮件提取特征词。

垃圾邮件过滤在具体应用时会面临两个实际问题, 其一, 如果把垃圾邮件判为正常邮件有什么结果, 其二, 如果把正常邮件误判为垃圾邮件有什么后果。把垃圾邮件判定为正常邮件会浪费用户宝贵的时间和精力, 而把正常邮件误判为垃圾邮件可能会耽误用户一些非常重要的事务如开会、应聘等, 显然, 把正常邮件误判为垃圾邮件造成的损失更为严重。因此, 为了降低垃圾邮件过滤结果对个人的风险, 本文对垃圾邮件过滤模型进行了改进, 提出了一种新的基于最小损失的朴素贝叶斯模型。

公式 (7) 变为

分析x、y、z可以看出, x为新邮件中的所有特征词在spam类即垃圾邮件中出现概率的对数和, 反映了新邮件属于spam类的可能性;y为新邮件中的所有特征词在ham类即正常邮件中出现概率的对数和, 反映了未知邮件属于ham的可能性;z反映了spam类和ham类先验概率的差别。任意未知类别邮件经过分类, 就会得到一对 (x, y) , 即对应二维空间的一点。令f (d) =0, 则分类器对应二维空间上的一条直线:x-y+z=0。因此, 对于未知类别邮件的分类, 就可以依据邮件文本所对应的点到分类直线的距离来做出决策。

为了提高垃圾邮件分类的正确率, 引入特征词加权的思想。如果某一个特征词在分类中有很强的辨别能力, 则在计算模型中就要加大该特征词在分类中的作用, 反之则要降低该特征词在分类中的作用, 从而改善邮件分类模型的分类能力。

分类时在计算的过程中引入权值函数W (t) , 加强特征词在分类时的作用, 即将概率计算公式 (1) 变成:

3 实验及结果分析

受东华理工大学校长基金项目“基于贝叶斯的邮件过滤融合模型的研究”资助, 为进行实验仿真, 通过互联网等途径选择了3000封邮件, 其中包括2017封垃圾邮件和983封正常邮件, 垃圾邮件过滤正确率92%。采用改进的垃圾邮件过滤算法对邮件集进行测试, 结果见表1。实验结果表明, 采用改进的贝叶斯算法实现垃圾邮件过滤, 具有较好的过滤性能和较低的邮件误判率。

本文针对贝叶斯垃圾过滤算法在处理垃圾邮件过滤中存在的问题, 对贝叶斯概率估算模型进行了改进, 提出基于特征词权重的最低损失的垃圾邮件过滤算法并应用于邮件过滤。测试结果表明, 该过滤模型具有较高的过滤准确率, 较好地解决了垃圾邮件过滤的问题。

摘要:针对现有朴素贝叶斯贝努利模型在垃圾邮件过滤时存在的不能体现待分类邮件中文本特征词重要性而导致合法邮件误判为垃圾邮件等问题, 引入特征词加权的思想, 提出一种低损失的贝叶斯垃圾邮件过滤算法。实验结果表明:该算法能降低合法邮件被误判而带给用户的损失, 提高过滤的正确性。

关键词:邮件过滤,特征加权,贝叶斯算法

参考文献

[1]中国互联网络信息中心.第31次中国互联网络发展状况统计报告[EB/OL]. (2013-01-15) .http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201301/t20130115_38508.htm

[2]王斌, 潘文峰.基于内容的垃圾邮件过滤技术综述[J].中文信息学报, 2005, 19 (5) :14-17

[3]梁志文.基于多项式模型和低风险的贝叶斯垃圾邮件过滤算法[J].中南大学学报, 2013, 44 (7) :113-116

改进贝叶斯 篇5

贝叶斯网络是20世纪80年代在简单贝叶斯的基础上发展起来的一种新的信息推理方法。同时它也是一种有向无环图,适用于表达与分析不确定性和概率性的事物,因为它是基于概率分析、图论的一种不确定性知识的表达和推理的模型,且同时是一种将因果知识与概率知识相结合的信息表示的框架,故也被称为信念网络。

贝叶斯网络的学习包括两部分:结构学习与参数学习两部分,贝叶斯网络学习的核心问题是结构的学习[1]。目前,现有的贝叶斯网络的结构学习方法可以分成两大类[2]:一类是基于依赖分析的学习方法。它在一些假设下学习效率较高,且能获得全局最优结构,但是它的过程比较复杂。又因为冗余边的检验通常是在确定边的方向之前进行的,这样就导致了大量的高维条件概率的计算,由于这些问题的存在就导致了学习准确性与效率的降低。另一类就是基于打分-搜索的学习方法。它的过程简单规范,只适用于变量少或者在一定范围之内的结构学习。此方法由于搜索空间大,一般是结点有序等诸多的原因,从而导致了学习的效率的降低,且容易陷入局部最优解。

受文献[3]中提出的基于互信息贝叶斯网络结构学习算法的启发,文章提出了一个改进的贝叶斯网络结构学习分类模型,整个算法的核心仍然是相应的贝叶斯网络结构的确定。在该算法中,使用交叉熵这个概念作为判断弧的方向的依据,并且利用环路检验来保证图中不会出现回路,而后利用最小切割集来对已有的图进行相应调整,以此来构造一个与数据具有更好拟合性的贝叶斯网络结构。最后根据该结构和文献[4]中Judea Pearl给出的定理来最终确定一个分类模型。文章把整个算法应用到质量管理数据集中进行了实验,并与基于互信息的贝叶斯网络结构学习算法[3]进行了实验对比和性能分析,结构表明了该算法具有更高的精确性和时效性。

1 贝叶斯网络简述

贝叶斯网络是一个有向无环图(DAG),它可以表示为一个三元组G=(N,E,P)。其中N={x1,x2,…,xn}是一组结点的集合,每个结点代表一个变量(属性)。E={<xi,xj>|xixj,xi,xjN}是一组有向边的集合,每条边<xi,xj>表示xi,xj具有依赖关系xixjP={p(xi|πi)}是一组条件概率的集合,其中p(xi|πi)表示xi的父结点集πixi的影响。

设某系统的结点集合N={x1,x2,…,xn},由联合概率公式表示:

p(x1,x2,,xn)=i=1np(xi|x1,x2,,xi-1)(1)

现在假如对每个结点xi,已知存在某个子集πi⊆{x1,x2,…,xi-1},在给出πi时,xi和{x1,x2,…,xi-1}-πi是条件独立的,即有:

p(xi|x1,x2,…,xi-1)=p(xi|πi) (2)

由式(2)、式(1)可等价为:

p(x1,x2,,xn)=i=1np(xi|πi)(3)

由式(3)可知,贝叶斯网络实质上就是一个联合概率分布p(x1,x2,…,xn)所有条件独立性的图形化表示,其中πixi父亲结点集[5]。

贝叶斯网络结构的学习一般分为以下三个步骤:(1) 确定变量集和变量域;(2) 确定网络结构;(3) 确定局部概率分布。其中确定网络结构有如下三种方法:(1) 根据变量之间的条件独立性确定弧的存在性,根据变量之间条件相对预测能力(或条件相对互信息)确定弧的方向;(2) 用户根据变量之间的因果关系(根据用户的已有知识)来建立网络结构;(3) 结合前两种方法混合使用。

2 信息论基础

从信息论的角度来看,信息就是用来消除不确定性的事物。而对信息不确定性知识的一种度量的就是信息熵。消息被称为信息的载体,信源被称为含有信息的消息集合,信源提供的整个信息的总体度量被称为信源的信息熵。所以如果信源的信息熵越小,则消息消除的不确定性就将越大,则表明信息间的相互依赖性就会越大;反之信息间的相互独立性将会越大。关于“互信息”的定义及特性在文献[3]中给出了介绍。下面给出“交叉熵”[6]及“联合鉴别信息”的具体定义:

定义1 (交叉熵) 假设{a1,a2,…,an}为属性X的值,通常X的分布和假设H1与假设H2有关。当在假设H1下,

(XΡ1(x))=[a1a2akΡ1(a1)Ρ1(a2)Ρ1(ak)]

X的概率分布;然而当在假设H2下,

(XΡ2(x))=[a1a2akΡ2(a1)Ρ2(a2)Ρ2(ak)]

X的概率分布。设p(H2)为H2的概率,且p(H1)为H1的概率,则存在条件概论公式为:

p(Η1|ak)=p(Η1)p(ak|Η1)p(Η1)p(ak|Η1)+p(Η2)p(ak|Η2)(4)

p(Η2|ak)=p(Η2)p(ak|Η2)p(Η1)p(ak|Η1)+p(Η2)p(ak|Η2)(5)

通过式(4)与式(5)可以得出:

lgp(ak|Η2)p(ak|Η1)=lgp(Η2|ak)p(Η1|ak)-lgp(Η2)p(Η1),当akX且存在着鉴别假设H2与H1时,则倾向H2的信息量为lgp(ak|Η2)p(ak|Η1)。在假设H2下lgp(ak|Η2)p(ak|Η1)的鉴别信息值或数学期望值为I(p1,p1;X)=k=1Κp2(ak)lgp2(ak)p1(ak)。在信息论当中,鉴别信息又叫方向散度,故它是有方向的。

定义2 (联合鉴别信息) 假设存在Xi,Xj两个离散随机变量,它们的取值分别为:

Xi:{xi1,xi2…,xim}

Xj:{xj1,xj2…,xjm}

再假设H1与H2下,Xi的联合概率分布为p1(xim,xjn),且Xj的联合概率分布为p2(xim,xjn)。其中m=1,2,…,M,n=1,2,…,N。则公式:

I(p2,p1;Xi,Xj)=m=1Μn=1Νp2(xim,xjn)logp2(xim,xjn)p1(xim,xjn)(6)

为随机变量XiXj的联合鉴别信息。

在上面提到过可以使用鉴别信息来定向,在这里将给出具体的定向过程,如下:

在网络中任意选择一对有弧连接的节点Xi,Xj,用式(6)计算联合鉴别信息。同时可把假设H1与H2分别看作是XiXjXiXj这样两种情况。在这里箭头的方向就是表示两个节点之间弧的方向,则式(6)可相应地转化为:

I(p1,p2;Xi,Xj)=m=1Μn=1Νp(Xi)p(Xj|Xi)logp(Xi)p(Xj|Xi)p(Xj)p(Xi|Xj)

I(p2,p1;Xi,Xj)=m=1Μn=1Νp(Xj)p(Xi|Xj)logp(Xj)p(Xi|Xj)p(Xi)p(Xj|Xi)

定理1 如果I(p1,p2;Xi,Xj)>I(p2,p1;Xi,Xj),则定向为XiXj,否则为XiXj

3 改进的贝叶斯网络结构学习算法

3.1 相关概念

概念1 (D分离) 在有向无环图G中,设U存在三个不相交的子集分别为X,YZ,如果从属于X中一个节点到属于Y中的一个节点的所有路径之间,存在节点M满足以下条件之一:

(1)M属于Z中,且M不是一个汇聚节点;

(2)M或任何M的子节点都不属于Z,且M是一个汇聚节点,则称XY对于ZD分离,记为<X|Z|Y>G[7]。

概念2 (邻接路径) 指的是在不考虑边方向的情况下,连接两结点之间的路径。

概念3 (碰撞结点) 任意一个结点x,如果有两个结点都指向它,则称结点x为碰撞结点或者是汇聚结点。

概念4 (开放路径) 指的是在两结点之间,构成的无向路径上所有的结点都是活跃的,则称这样的路径为开放路径。

概念5 (闭路路径) 指的是在两结点之间,构成的无向路径上所有的结点都是不活跃的,则称这样的路径为闭路路径。

概念6 (割集) 在一个图G中,存在着一个结点集SD分离XY,则称SXY的割集[8]。

割集是一个很重要的概念,要通过它来确定最小切割集。而算法中有用到最小割集,下面是确定最小切割集的算法:

(1) 令D(xi,xj)为结点xi与结点xj 的切割集,并将结点xi到结点xj的路径放入集合Si,j中。

(2) 将从结点xi到结点xj且将经过xij,j=1,…,r的非碰撞路径放入集合Si,j 中。

(3) 在Si,j中,设有路径都经过同一个结点x,将结点x放入D中,则从Si,j中删除经过结点x的所有路径。

(4) 重复(3),直到遍历整个Si,j中的路径。

(5) 设结点∏xi能阻塞最多的路径,则将结点∏xi放入D中,同时移除经过该结点的所有路径。

(6) 重复以上的步骤,直至Si,j为空。

改进的贝叶斯网络结构学习分类模型算法中引用了鉴别信息来确定弧的方向,因为鉴别信息的应用还不是很广泛,因此对扩大信息论理论知识的用途有很重要的意义。

为了更加准确地找出贝叶斯网络的分类模型,算法还使用了环路检验,最后算法用最小切割集作为条件来检测两结点的弧是否是多余的。算法大致分为三步:第一步是构建无向图,通过利用条件互信息来确定属性结点的顺序;第二步是构建有向图,其中利用鉴别信息来确定边的方向,并使用了环路检验来提高结构学习的准确性;第三步利用最小切割集来调整图的结构。

3.2 算法步骤描述

第一步:构建无向图

(1) 设一个数据集DN个变量{X1,X2,…,Xn},所建立的无向图为P={<Xi,Xj>},其中i,j=1,2,…,n,且ij

(2) 设N为属性全集,Xi,XjU(i,j=1,2,…,n),XiXj,且Ck(i=1,2,…,n)∈C,其中Ck是类属性集。计算I(Xi,Yj|Ck)的值,并按条件互信息的值进行非递增进行排列,并依次放入集合S中。

(3) 在集合S中,依次计算属性对中的互信息。如果I(Xm,Xq)≤ε1(m,q=1,2,…,n),将属性对(Xm,Xq)从E中放入集合R中,否则在(Xm,Xq)中增加相应的弧。

(4) 返回(3),遍历集合E中的结点对。

第二步:构建有向图

(1) 对于在集合E中的每一对结点(xi,xj)∈E,假设(xixj)的概率是p1且(xixj)的概率是p2,则计算它们的交叉熵I(p1,p2;xi,xj)和I(p2,p1;xj,xi)。

(2) 如果I(p1,p2;xi,xj)> I(p2,p1;xj,xi),且两结点之间没有形成开放路径,则两结点的方向为(xixj)。否则为(xixj)。

(3) 重复上面的过程,直到遍历集合E中的每一对结点对。

第三步:调整图的结构(增加和删除)

增加:通过切割集来判断。

删除:冗余检验。删除不必要的边。

(1) 取E中的一条边(xe,xf),并找出两结点的割集D(xe,xf)。

(2) 计算条件互信息I(xe,xf|D(xe,xf))。如果I(xe,xf|D(xe,xf))<ε3,则将边(xe,xf)从E中删除。否则保留此边。

(3) 重复上面的步骤,直到遍历整个E

3.3 算法主要伪代码

Input: 数据训练集D,非类属性集X,类属性C,阈值ε1,ε2。

Output: 贝叶斯网络图P*。

/*调用数据离散化方法*/

Discretize(D);

/* 构造无向图P */

FOR i FROM 1 To n /*其中n是非类属性的属性个数*/

FOR j FROM i+1 to n

Calculate I(Xi,Yj|C);

S=S∪{<Xi,Xj>};

Order by the value of I(Xi,Yj|C)

ASC in S;

If I(Xm,Xq)≤ε1(m,q=1,2,…,n)

S=S-{<Xi,Xj>};

R=R∪{<Xi,Xj>};

Else

S=S∪{<Xi-Xj>};

END IF

END FOR;

FOR k FROM 1 TOm /*其中m是类属性的属性个数*/

IF I(Xi,Ck)>ε1

S=S∪{<Cj-Xi>};

END IF;

END FOR;

END FOR;

/*将无向图转变为有向图P**/

E=E-{<C-X>}

E=E∪{<C→X>}

FOR i FROM 1 TO n-1

FOR j FROM i+1 TO n

P(xi→xj)=p1;

P(xi←xj)=p2;

vij=I(p1,p2;xi,xj);

vji=I(p2,p1;xj,xi);

If vij>vji and NOP(xi,xj)

/* NOP(xi,xj)确定两结点xi,xj之间没有开放路径*/

E=E-{<xi-xj>};

E=E∪{<xi→xj>};

Else

E=E-{<xi-xj>}

E=E∪{<xi←xj>}

END IF

END FOR

END FOR

/* 对有向图进行调整 */

FOR i FROM 1 TO n-1

FOR j FROM i+1 TO n

D(xi,xj); /*D(xi,xj)确定两结点xi,xj的割集 */

vij=I(xi,xj|D(xi,xj));

If vij<ε2

E=E-{xi,xj};

END FOR;

END FOR;

4 应用实验与分析

改进的贝叶斯网络结构学习分类模型仍然采用质量管理中的“产品硬度”数据表作为训练数据集,把训练数据集D、类属性C和非类属性X作为整个算法的输入。

算法中对训练数据集D的类属性C “产品硬度”进行离散化操作后得到五个离散值,分别用C1,C2,C3,C4,C5来表示,结合领域知识,用C1,C2,C3,C4,C5来分别代表一等品,二等品,三等品,四等品和五等品,算法最终把测试数据集进行分类,指出每一个数据对象归属于某一类,也即是找出一个产品是属于几等品。

算法首先构建一个无向图,利用条件互信息来确定属性结点的顺序,设置阈值参数ε1=0.010,执行过程中得到的无向图如图1所示。

对建立的无向图1利用鉴别信息来确定边的方向,并利用环路检验来保证图中不会出现回路,最终确立的有向图如图2所示。

对有向图2利用最小切割集来调整其结构,也相当于对有向图进行剪枝,设置阈值参数ε2=0.020,得到调整后的有向图如图3所示。

经过调整,删除了“添加量”到“材料硬度”的有向边、“材料硬度”到“加工温度3”的有向边、“材料纯度”到“加工温度2”的有向边、“加工温度1”到“加工温度2”的有向边,同时结点“加工温度2”被孤立,因此也被删除。

最终得到的贝叶斯网络结构如图3所示,对比文献[3]中MIBNS算法得到的结果可以看出两算法得到的结果并不完全相同,本算法把“材料硬度”到“加工温度3”的有向边也删除了,实验结果及结合质量管理领域知识证明这样得到的结果会更加精确。

根据上面得到的有向图,使用Judea Pearl在文献[4]中给出的定理构建贝叶斯网络分类器的方法得到的贝叶斯网络分类器式子如下:

argmaxC(X1,X2,,X6,){Ρ(C)Ρ(X1|C)Ρ(X2|X1,C)Ρ(X3|X1,C)Ρ(X4|X2,C)Ρ(X5|X1,X4,C)Ρ(X6|X2,X3,C)}

其中,X1代表结点“产品硬度”,X2代表结点“材料硬度”,X3代表结点“添加量”,X4代表结点“材料纯度”,X5代表结点“加工温度3”,X6代表结点“加工温度1”。

由以上得到的贝叶斯网络分类器,抽取“产品硬度”数据表中20条数据作为测试数据集,最终得到的分类结果如表1所示。

由以上结果可以看出,经过算法输出把测试数据集中的第3、7、16、19个产品归属到类别C1(一等品)中,把第1、4、5、9、10、14、15、17、18个产品归属到类别C2(二等品)中,把第2、6、11、12、13、20个产品归属到类别C3(三等品)中,把第8个产品归属到类别C4(四等品)中,没有产品属于类别C5(五等品)。

为了和文献[3]中MIBNS算法进行比较,使用同样的数据集对MIBNS算法进行实验,结果如表2所示。

对比MIBNS算法的结果可以看出,两算法得到的结果只存在一个产品数据分类的差异,这也正是由于两算法确定的贝叶斯网络结构存在微小差异造成的。根据实际的数据值和领域知识可知把产品数据d1归属到类别C2中更符合实际情况。实验结果表明本算法在保证得到正确结果的条件下又提高了效率,是对MIBNS算法的一个较成功的改进。

5 性能分析

改进的贝叶斯网络结构学习算法分类模型仍然以训练数据集D、以及D的非类属性集X和类属性C作为输入,在给定阈值ε1,ε2时,输出相应的贝叶斯网络结构图P*。整个分类模型的构建就是结合这个贝叶斯网络结构和Judea Pearl在文献[4]中给出的定理来最终确定的。通过将本算法与文献[1]中的MIBNS算法相比较可知,MIBNS算法在最坏的情况下要进行n(m+n)+2mn2次的运算,而该算法的时间复杂度为n(m+n)+2n(n-1)次的运算,其中n是训练数据集非类属性的属性个数,m是类属性的属性个数。因此,该算法较MIBNS算法在时间复杂度方面有明显的提高。另外该算法只需要设置两个阈值参数ε1,ε2,提高了算法的易用性,减少了用户的参与。从以上分析中可见,影响整个算法性能的一个最重要的因素就是数据集中类属性和非类属性的个数,即数据集的维数。综上所述,该算法在提高了结构学习准确率的同时,时效性方面也优于MIBNS算法。

6 结 语

改进的贝叶斯结构学习分类模型的核心仍然是相应的贝叶斯网络结构的确定,文章提出的改进的贝叶斯网络结构学习算法是受了文献[3]中提出的基于互信息贝叶斯网络的分类模型的启发。在该算法中,引用了交叉熵这个概念做依据来判断弧的方向,并且利用环路检验来保证图中不会出现回路。并合理地利用最小切割集的知识来对已有的图进行调整,以此来构造了一个与数据具有拟合性更好的一个贝叶斯网络结构。文章最后把改进的贝叶斯网络结果学习分类模型与基于互信息的贝叶斯网络的分类模型在算法的性能上作了对比,通过对比发现本文算法在面对数据量大且属性之间不具有确定性时具有较高的精确性。

参考文献

[1]Neil M,Fenton N,Nielsen L.Building large-scale Bayesian networks[J].The Knowledge Engineering Review,2000,15(3):257-284.

[2]Tsamardinos I,Brown E,Aleferis CF.The max-min hill-climbing Bayesian network structure learning algorithm[J].Machine Learning,2006,65(1):31-78.

[3]王越,谭暑秋,刘亚辉.基于互信息的贝叶斯网络结构学习算法及应用[J].计算机工程,2011,7(37):62-64.

[4]Pearl J.Probabilistic Reasoning in intelligent systems[M].Morgan Kaufann,San Francisco,Calif,1988.

[5]刘惟一,田雯.数据模型[M].北京:科学出版社,2001.

[6]Rao J R,Rohatgi P,Scherzer H.Partitioning Attacks:Or How to Rapidly Clone Some GSM Cards[C]//Proc of IEEE Symp on Securi-ty and Privacy,2002:31234.

[7]姜丹,钱玉美.信息论与编码[M].北京:科学出版社,1992.

改进贝叶斯 篇6

关键词:垃圾短信过滤,Android,朴素贝叶斯算法

0 引言

自动高效的过滤垃圾短信是当前手机应用中必须解决问题之一。目前使用较多的垃圾短信过滤技术普遍缺乏自适应学习能力, 不能应对当前发展迅速、形式多样的垃圾短信。本文在规则过滤的基础上, 结合基于文本分类以及朴素贝叶斯理论的过滤方法对垃圾短信进行分类, 并提出了进一步的改善措施。

1 朴素贝叶斯算法

1.1 贝叶斯定理

贝叶斯算法是以著名数学家托马斯.贝叶斯 (Thomas贝叶斯) (1702-1761) 命名的一种基于概率分析的可能性推理理论, 通过分析过去事件的知识, 来预测未来的事件。贝叶斯过滤法对大量用户已经判定的垃圾短信和正常短信进行学习, 根据垃圾短信和正常短信中相同词语出现的概率对比来确定垃圾短信的可能性。

贝叶斯定理描述如下:

其中p (A) >0, 由全概率公式可得

在公式 (1-2) 中, p (Bi|A) 为后验概率, p (A|Bi) 为似然概率, p (Bi) 为先验概率。

1.2 朴素贝叶斯定理

朴素贝叶斯过滤技术以贝叶斯定理为基础, 并假定各个属性直接是独立地来进行预测, 把从训练样本中计算出的各个属性值和类别频率比作为先验概率, 然后利用贝叶斯公式计算出其后验概率, 并选取具有最大后验概率的类别作为预测值, 在垃圾短信过滤应用中有广泛应用。

设有m个样本空间{c1, c2, …cm}, 短信d中有n个特征项{w1, w2, …wn}, 对于给定的类ck (k=1, 2, …, m) , d属于类ck的概率为

由贝叶斯概率公式可得:

其中:

公式 (1-4) 中, p (ck) 为先验概率, 很容易计算, 但p (d|ck) 的计算比较困难。为了简化计算, 引入了条件概率独立假设, 即假定各特征项之间是相互独立的, 这就是朴素贝叶斯过滤器, 那么公式 (1-5) 就可以转换为:

其中, |Sk|表示类别ck中的训练文本数量;|S|表示训练文本集总数量。

在短信训练集中只有两个样本空间, 一个是正常短信, 另一个是垃圾短信, 所以对于样本空间m的值在实际应用中应为2。

1.3 朴素贝叶斯算法应用于短信拦截的缺陷

朴素贝叶斯文本分类算法:

p (ck) 为先验概率, p (d|ck) 为类条件概率, p (ck|d) 为后验概率。对于短信训练集来说, 朴素贝叶斯算法的样本空间只分为垃圾短信和非垃圾短信两部分。为了保证公平性, 训练集中正常短信的文本个数和垃圾短信的文本个数是相同的, 即p (cspam) =p (c1egit) , 对同一文本p (d) 不变, 因此后验概率的大小主要是由类条件概率决定, 但由于它过多的简化使用对于分类很有用的信息都丧失了, 进而使得分类效果不是很明显, 误判率难以降低。

2 朴素贝叶斯算法的改进

2.1 类条件概率

p (xi|cj) 为属性xi在类别cj出现的概率, 其中, N (X=xi, C=cj) 表示类别cj中包含属性xi的训练文本数量;N (C=cj) 表示类别中cj的训练文本数量;M值用于避免N (X=xi, C=cj) 过小所引发的问题;V表示类别的总数。

2.2 长度特征提取

每条短信长度为70个中文字符, 通过对短信长度统计, 得到如下结果。

从上图可以看出, 不同的短信长度所对应的为正常短信或垃圾短信的概率都有所不同, 因此, 垃圾和非垃圾短信在长度上有很明显的区别, 正常短信的长度一般集中在30个字符以内, 垃圾短信则集中在40~70个字符之间。对于70个字符以上的短信, 可能是祝福类的短信或者是手机通信套餐之类的短信, 这些都属于正常短信, 所以放宽了它的概率值。

2.3 改进的朴素贝叶斯算法

首先利用求得的正常短信中最大的p (xi|cj) 并将此概率对应的词语与垃圾词库中的词语相匹配, 如果匹配成功那么在得到的各个属性的总和的类条件概率的基础上再加上一定概率的值, 此值必须通过多次的测验来给出。以此来扩大相应类别的概率值, 避免出现大的错误率。经过调查发现不同长度的短信对应为垃圾短信或正常短信有一定的概率值, 因此, 当求得后验概率后还应加上相应短信长度所对应的概率来加大分类的精确度。

3 短信过滤处理过程及结果

算法改进后, 短信误判率明显降低, 测试短信数量及实际测试结果如表2所示。

4 结束语

本文针对传统的朴素贝叶斯算法对垃圾短信的分类精准度与识别率不足的确定, 提出了基于改进朴素贝叶斯算法的垃圾短信过滤技术, 该算法通过改进概率算法将朴素贝叶斯算法更好地适用于垃圾短信过滤器, 并且根据短信的长度, 在求得的后验概率的基础上提高一定的概率值, 降低正常短信被判为垃圾短信的概率, 从而最大程度减少误判率。

参考文献

[1]张东亮, 董礼.基于改进的朴素贝叶斯算法在垃圾短信过滤中的研究[J].计算机测量与控制.2012, 20 (02)

[2]丁岳伟, 潘涛.利用贝叶斯算法过滤报文内容分析系统中的垃圾短信[J].上海理工大学学报.2008 (01)

[3]郑炜, 沈文, 张英鹏.基于改进朴素贝叶斯算法的垃圾邮件过滤器的研究[J].西北工业大学学报.2010 (08)

改进贝叶斯 篇7

朴素贝叶斯分类器(Naive Bayesian Classifier,NBC)是一种简单而有效的概率分类方法,由于其计算高效、精确度高,并具有坚定的理论基础得到了广泛应用。然而,朴素贝叶斯分类方法基于条件独立性假设,即假设一个属性对给定类的影响独立于其他属性,而这在现实问题中往往并不成立。

文献[1]给出了基于偏最小二乘回归(PLS)的属性求解算法。该算法用回归系数度量了条件属性与决策属性之间的相关程度。但忽略了冗余属性对回归分析的影响,为此,本文在分析属性相关性度量的基础上,通过属性约简的方法找出一组最近似独立的属性约简子集,从而删除冗余属性和无关属性,弱化了朴素贝叶斯分类器的独立性假设条件的限制。在约简的数据集上,在条件属性与决策属性之间建立基于属性约简的偏最小二乘回归方程,以回归系数作为条件属性的权值,进一步改进朴素贝叶斯的分类测试能力。并通过实验与朴素贝叶斯分类器进行比较。

1 朴素贝叶斯分类及加权贝叶斯分类模型

1.1 朴素贝叶斯分类算法

贝叶斯分类是一种基于统计方法的分类模型,贝叶斯定理是贝叶斯学习方法的理论基础。朴素贝叶斯分类模型在贝叶斯定理的基础上,通过条件独立性假设,降低计算开销,预测未知数据样本属于最高后验概率的类。

设每个数据样本用一个n维特征向量X={x1,x2,…,xn}表示,分别描述对n个属性A1,A2,…An样本的n个度量。假定有m个类C1,C2,…,Cm,给定一个未知的数据样本X,分类法将预测X属于具有最高后验概率的类。即朴素贝叶斯分类将未知的样本分配给类Ci,当且仅当P(Ci│X)>P(Cj│X),1燮j燮m,j≠i,这样,最大化P(Ci│X)。其中P(Cj│X)最大的类Ci称为最大后验假定。根据贝叶斯定理得:

由于P(X)为常数,只需P(X│Ci)P(Ci)最大即可。给定具有许多属性的数据集,计算P(X│Ci)的开销可能非常大。为降低计算P(X│Ci)的开销,可以做类条件独立的朴素假设。给定样本的类标号,假设属性值相互条件独立,即在属性间,不存在依赖关系。这样,,概率P(x1│Ci),P(x2│Ci),…,P(xn│Ci)可以由训练样本估值。为对未知样本X分类,对每个类Ci,计算P(X│Ci)P(Ci)。样本X被指派到类Ci,当且仅当P(X│Ci)P(Ci)>P(X│Cj)P(Cj),1燮j燮m,j≠i

朴素贝叶斯分类比较简单,可操作性比较强,分类准确性较好,与其他分类算法相比,具有最小的误分类率。

1.2 加权朴素贝叶斯分类器

在实际应用中不同的条件属性与决策属性之间的相关程度是不同的,当条件属性与决策属性的相关程度高,它对分类的影响就要更大些,反之,如果条件属性与决策属性的相关程度较小,那么它对分类的影响就会很小。由于在实际中难于满足朴素贝叶斯条件独立性的假设,可给不同的属性赋不同的权值使朴素贝叶斯得以扩展,则加权朴素贝叶斯模型为:

其中,wi代表属性Ai的权值,属性的权值越大,该属性对分类的影响就越大。加权朴素贝叶斯的关键问题就在于如何确定不同属性的权值。

2 改进的贝叶斯分类算法

2.1 属性约简方法

属性约简是在保持分类能力不变的前提下,依次从数据表中删去属性,每删除一个属性即刻检查新的信息表,如果不出现新的不一致,则删除该属性,然后对新表重复前面的操作;否则该属性不能被删除,信息表要恢复到前一个,再继续对另一个属性重复操作;直到不再有冗余的属性,此时可以得到属性的约简集。

设S为一个信息系统,S=(U,A,V,f)。其中:U为对象集,U={x1,x2,…,xn};A为属性集,A=C∪D,A={a1,a2,…,an},C为条件属性集,D为决策属性集,C∩D=覫;V=∪Va(a∈A),Va为属性a的值域;f:U×A→V为一信息函数,f为一映射。

给定信息系统S中包含一组条件属性C和决策属性D,要从C中找出最优约简,先计算所有条件属性和决策属性之间的属性相关度[2],并且根据将所有条件属性降序排列得到条件属性序列Attri Set,然后选择Attri Set中的第一个属性A1,依次计算该属性与其他属性的相关度,从Attri Set中删除A1的冗余属性,对于Attri Set中的其余属性,按照同理依次删除其它冗余属性,最后得到最优约简子集Red Attri Set。

2.2 偏最小二乘回归方法

偏最小二乘回归[3](PLS)是一种多元统计数据分析方法,集多元回归分析、典型相关分析和主成分分析的基本功能于一体,将建模预测类型的数据分析方法与非模型式的数据认识性分析方法有机地结合起来,提供了一种多对多线性回归建模的方法,特别当变量个数很多,且都存在多重相关性时,用偏最小二乘回归建立的模型具有传统的经典回归分析等方法所没有的优点。

在一种简化PLS算法基础上,研究了一种基于粗糙集改进偏最小二乘回归算法[4],以减少PLS建模的计算量,提高在线建模速度。

改进的PLS算法步骤如下:

(1)根据粗糙集理论,利用属性相关性的约简方法对数据进行约简,在经过知识约简后,进行数据标准化处理,得到标准化后的自变量矩阵E0和因变量矩阵F0,在此基础上对向量进行成分提取。从E0中抽取一个成分,

(3)检查收敛性,若Y对t1的回归方程已达到满意的精度,则进行下一步;否则,以E1取代E0,以F1取代F0实施与第(1)步基本相同的算法,对残差矩阵进行新一轮的成分提取和回归分析;

(4)依此类推,在第h步(h=2,3,…,s),方程满足精度要求,则可得到s个成分t1,t2,…,ts实施F0在t1,t2,…,ts上的回归得F0=t1r1+t2r2+…+tsrs+Fs

(5)按照标准化的逆过程,将F(y*)的回归方程还原为y对x的回归方程:y*=α1x1+α2x2+…+αsxs,α为xi的回归系数;

(6)对权数归一化进行处理,即为第i个属性所占权重,且满足。

由于权数的实质是结构相对数,且线性变换并不影响权数的作用结果,所以当权数为负时,先通过平移使之归结为结构相对数,再对权数作归一化处理。

2.3 算法实现

属性约简在不影响分类能力的前提下,对决策表中空值属性做了处理,去除了冗余的属性和完全依赖属性,又删选了部分依赖属性集。通过以上操作,降低干扰信息对PLS提取成分的影响,提高了回归建模精度。在约简的数据集上,建立偏最小二乘的加权朴素贝叶斯分类器(PLS-NBC),算法具体步骤如下:

Step1:求最优约简子集Red Attri Set;

Step2:在最优约简子集的基础上构建加权朴素贝叶斯分类器;

Step3:分类器的构造:如果是分类任务,则转Step6,如果是训练任务,则转Step4:;

Step4:概率表学习:对所有训练样本,计算所有的先验概率p(xi│Cj),即在类别Cj下属性Ai的属性值xi出现的概率,及类别Cj出现的概率p(Cj);

Step5:权重的学习:扫描所有训练样本,计算属性Ai的权值ωi,生成加权朴素贝叶斯概率表及属性权值列表,即构造PLS加权朴素贝叶斯分类模型;

Step6:分类:调用概率表及属性权值列表,得出分类结果。

3 实验结果及分析

为了验证算法的有效性,对算法进行测试。本实验数据集选自UCI机器学习数据库,从中选取了5个数据集分别为Car,heart,Tic-Tac-Toe,Zoo,Kr-vs-kp。实验在matlab7.10平台下完成。首先求出朴素贝叶斯器的分类正确率(NBC/%);其次对实验数据集进行属性的约简,约简结果如表1。计算每个属性的权重,在此基础上构建加权朴素贝叶斯分类器,并对每个数据集进行分类正确率测试(PLS-NBC/%);最后将两个分类器的分类结果进行比较如表1。

基于属性约简的PLS加权朴素贝叶斯分类器与基本的朴素贝叶斯分类器相比,一方面通过属性约简改善条件属性间的依赖性,找到一组最近似独立的属性约简子集,另一方面基于PLS加权的贝叶斯分类,考虑条件属性和决策属性的相关关系,充分利用类之间的信息,放松了条件独立性假设。实验结果表明,基于属性约简的PLS加权朴素贝叶斯分类器具有较高的分类准确率。

4 改进的算法在边坡稳定性识别中的应用

山体滑坡和泥石流具有分布广、破坏性强、隐蔽性等特点,严重威胁着人民群众的生命财产安全。根据“预防为主,防治结合”的地质灾害防治方针,山体滑坡的预报问题成为山体滑坡防治的重要环节。加强偏坡的稳定性识别对山体滑坡的预报有着重要意义。对边坡稳定性进行分析,可以预测滑坡事故,采取防护措施,避免或者减少人员伤亡与经济损失。因此,提高偏坡稳定性识别率成为有效防灾的关键问题[5]。这里,将决策树分类算法(C4.5)、神经网络模型(BP)、朴素贝叶斯分类算法(NBC)和PLS-NBC算法分别用于偏坡的稳定性识别,比较各个分类算法的偏坡稳定性识别正确率。

根据工程经验[6],边坡稳定的因素有岩石的容重、内聚力、内摩擦角、边坡角、边坡高度、孔隙压力等。从文献[6]收集得到一个含有82个实例的数据集。其中,有44个实例为破坏边坡,38个为稳定边坡。在matlab7.10平台上对数据集进行分类,分类结果比较如表2所示。

由实验结果可知,C4.5算法和PLS-NBC具有较高的分类准确率,其中PLS-NBC分类准确率最好。在后续的研究中,考虑数据集的缺失值的处理,进一步提高分类准确率。

摘要:朴素贝叶斯算法是一种简单而高效的分类算法,但它的属性独立性假设,影响了它的分类性能。针对这个问题,提出一种基于属性约简的PLS加权朴素贝叶斯分类算法。该算法首先分析属性之间的相关性,通过属性约简选择一组近似独立的属性约简子集,提出改进的偏最小二乘回归加权朴素贝叶斯分类算法,实验结果表明,改进算法具有较高的分类准确度。并将改进的算法应用于边坡识别问题中。

关键词:加权朴素贝叶斯分类,属性约简,偏最小二乘回归,边坡识别

参考文献

[1]李雪莲.基于PLS的加权朴素贝叶斯分类测试算法[J].电子质量,2010,(07):4-6.

[2]张静,王建民,何华灿.基于属性相关性的属性约简新方法[J].计算机工程与应用,2005,28:55-57.

[3]王惠文.偏最小二乘回归方法及应用[M].北京:国防工业出版社,1999:150-169.

[4]张小海.基于粗糙集的偏最小二乘回归方法[J].上海交通大学学报,2010,44(12):1680-1681.

[5]高岩.基于因子分析的NBC及其在边坡识别中的应用[J].计算机工程与设计,2011,32(11):3830.

【改进贝叶斯】推荐阅读:

教育改进07-21

制作改进05-09

机架改进05-12

有效改进05-21

运行改进05-21

护理改进05-24

改进意见05-28

电路改进06-24

改进想法06-27

改进步长07-13

上一篇:少年体育舞蹈下一篇:设备与方法