资源描述:
《基于概率统计的贝叶斯分类器设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于概率统计的贝叶斯分类器设计张斌驰电信0901200984250121摘要:贝叶斯决策理论是统计模式识别中的一个基本方法。依据贝叶斯决策理论设计的分类器具有最优的性能,即所实现的分类错误率或风险在所有可能的分类器中是最小的,因此经常被用来衡量其他分类器设计方法的优劣。关键词:贝叶斯分类器后验概率贝叶斯公式随着计算机与信息技术的发展,及时处理数据效率更高,分类技术能对大量的数据进行分析,并建立相应问题领域中的分类模型。在各种分类方法中基于概率的贝叶斯分类方法比较简单,得到了广泛的应用。一原理概述:贝叶斯分类器是基于贝叶斯网络所构建的
2、分类器,贝叶斯网络是描述数据变量之间关系的图形模型,是一个带有概率注释的有向无环图。贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。 (1)贝叶斯分类并不把一个对象绝对地指派给某一类,而是通过计算得出属于某一类的概率,具有最大概率的类便是该对象所属的类;(2)一般情况下在贝叶斯分类中所有的属性都潜在地起作用,即并不是一个或几个属性决定分类,而是所有的属性都参与分类;(3)贝叶斯分类对象的属性可以是离散的、连续的,也可以是混合的..二
3、计算方法:1、贝叶斯分类的先决条件:9(1)决策分类的类别数是一定的,设有c个模式类ωi(i=1,2,…,c)(2)各类别总体的概率分布已知,待识别模式的特征向量x的状态后验概率P(ωi
4、x)是已知的;或各类出现的先验概率P(ωi)和类条件概率密度函数p(x
5、ωi)已知2、两类分类的最小错误率Bayes分类决策规则的后验概率形式:设N个样本分为两类ω1,ω2。每个样本抽出n个特征,x=(x1,x2,x3,…,xn)T其中,P(ωi
6、x)为状态后验概率。由Bayes公式:两类分类的贝叶斯决策函数:三实例说明:一数据集有两类,每个样本有
7、两个特征,类别1(class1.txt文件)含有150个样本,类别2(class2.txt文件)含有250个样本(.txt文件可以直接在Matlab中读入),分别取类别1的前100个和类别2的前200个样本作为训练样本,剩下的作为测试样本。要求:9(1)根据基于最小错误率的贝叶斯决策理论设计分类器;(2)叙述实验具体步骤,给出所设计的分类器对训练样本和测试样本的错误率;(3)提交的作业需包含Matlab程序代码(4)绘制分类结果(包含决策边界)的图像1、实验原理多元正太分布的概率密度函数由下式定义由最小错误概率判决规则,可得采用如下
8、的函数作为判别函数这里,为类别发生的先验概率,为类别的类条件概率密度函数,而N为类别数。设类别,i=1,2,……,N的类条件概率密度函数,i=1,2,……,N服从正态分布,即有~,那么上式就可以写为由于对数函数为单调变化的函数,用上式右端取对数后得到的新的判别函数替代原来的判别函数不会改变相应分类器的性能。因此,可取显然,上式中的第二项与样本所属类别无关,将其从判别函数中消去,不会改变分类结果。这样,判别函数可简化为以下形式92、实验步骤(1)求出两类样本的均值(2)求每一类样本的协方差矩阵式中,l代表样本在类中的序号,其中代表类的
9、第l个样本,第j个特征值;代表类的个样品第j个特征的平均值代表类的第l个样品,第k个特征值;代表类的个样品第k个特征的平均值。类的协方差矩阵为(3)计算出每一类的协方差矩阵的逆矩阵以及协方差矩阵的行列式(4)求出每一类的先验概率(5)将各个数值代入判别函数判别边界为3、实验结果根据matlab的计算结果可得9类别1训练样本的错误率为4%,类别2训练样本的错误率为5%;类别1测试样本的错误率为6%,类别2训练样本的错误率为4%。实验图图1训练样本分类结果如上图所示,“.”代表类别1的训练样本,“*”代表类别2的训练样本,绿线为决策边界
10、;图2测试样本分类结果9如上图所示,“.”代表类别1的测试样本,“*”代表类别2的测试样本,绿线为决策边界;4、实验程序代码functiong=pattern(x,y)%clear;S1=load('e:lwzclass1.txt');%原始数据class1导入S1S2=load('e:lwzclass2.txt');%原始数据class2导入S2fori=1:100forj=1:2type1(i,j)=S1(i,j);%将class1的前100个数据导入type1当中,作为训练样本endendfori=1:200forj=
11、1:2type2(i,j)=S2(i,j);%将class2的前200个数据导入type2当中,作为训练样本endend%求训练样本的均值sumx1=sum(type1,1);meanx1=sumx1(1,1)/100;9meany1