基于朴素贝叶斯模型的两类问题分类.docx_第1页
基于朴素贝叶斯模型的两类问题分类.docx_第2页
基于朴素贝叶斯模型的两类问题分类.docx_第3页
基于朴素贝叶斯模型的两类问题分类.docx_第4页
基于朴素贝叶斯模型的两类问题分类.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于朴素贝叶斯模型的两类问题分类一、实验目的通过实验,加深对统计判决与概率密度估计基本思想、方法的认识,了解影响Bayes分类器性能的因素,掌握基于Bayes决策理论的随机模式分类的原理和方法,并理解ROC曲线的意义二、实验内容通过Bayes决策理论的分类器,从给定样本集选择训练集以及测试集进行训练并分类,用matlab实现,绘制ROC曲线,得到最优的分类阈值三、实验原理Bayes分类器的基本思想是依据类的概率、概密,按照某种准则使分类结果从统计上讲是最佳的。换言之,根据类的概率、概密将模式空间划分成若干个子空间,在此基础上形成模式分类的判决规则。准则函数不同,所导出的判决规则就不同,分类结果也不同。使用哪种准则或方法应根据具体问题来确定朴素贝叶斯的一个基本假设是所有特征在类别已知的条件下是相互独立的,即pxwi=px1,x2,xdwi=j=1dpxjwi在构建分类器时,只需要逐个估计出每个类别的训练样本在每一维上的分布形式,就可以得到每个类别的条件概率密度,大大减少了需要估计的参数的数量。朴素贝叶斯分类器可以根据具体问题确定样本在每一维特征上的分布形式,最常用的一种假设是每一个类别的样本都服从各维特征之间相互独立的高斯分布,即pxwi=j=1dpxjwi=j=1d12ijexp-xj-ij22ij式中 uij第i类样本在第j维特征上的均值 ij相应的方差可以得到对数判别函数: gix=lnpxwi+lnPwi =j=1d-12ln2-lnij-xj-ij22ij+lnPwi=-d2ln2-j=1dlnij-j=1dxj-ij22ij+lnPwi其中的第1项与类别无关,可以忽略,由此得到判别函数: gix=lnPwi-j=1dlnij-j=1dxj-ij22ij四、实验步骤1、用给定的两类样本集,各选取前400个作为训练样本,通过调用MATLAB工具箱的NaiveBayes类的fit函数训练分类器2、通过1得到的训练器,选取样本集后100个样本作为测试样本,得到分类结果。3、对测试集的分类结果进行统计,计算正确率。4、绘制相应的ROC曲线五、实验代码function Train,TrainLabel = getTrain(c1,c2)%UNTITLED 得到训练样本% 根据给定两类样本集 各选取前400行样本作为训练样本c1 = c1(1:400,:);c2 = c2(1:400,:);c =c1;c2;Train=c(:,2:25);TrainLabel=c(:,1);endfunction FirstTest,FirstTestLabel = getFirstTest( c1 )%UNTITLED2 得到第一类测试集% 选取第一类样本集的后100行作为测试集c1 = c1(401:500,:);FirstTest=c1(:,2:25);FirstTestLabel=c1(:,1);endfunction SecondTest,SecondTestLabel = getSecondTest( c2 )%UNTITLED3 得到第二类测试集% 选取第二类最后100行作为第二类测试集c2 = c2(401:500,:);SecondTest=c2(:,2:25);SecondTestLabel=c2(:,1);endfunction right = getRight(l,realLabel)%UNTITLED4 得到正确率% 根据预测结果以及真实类别标号 统计预测正确个数 得到正确率count=0;for i=1:100 if(l(i)=realLabel) count=count+1; endend right=count/100;endfunction Fright,Sright,pl,rl = predict(c1,c2)%UNTITLED5 得到两类预测正确率Train,TrainLabel=getTrain(c1,c2); %得到训练样本以及类别标号N=NaiveBayes.fit(Train,TrainLabel); %利用函数进行分类器训练ft,fl= getFirstTest(c1); %得到第一类测试样本以及真实类别标号fpl=predict(N,ft); %得到第一类测试样本预测类别标号Fright = getRight(fpl,fl); %得到第一类测试样本分类正确率st,sl= getSecondTest(c2); %得到第二类测试样本以及真实类别标号spl=predict(N,st); %得到第二类测试样本预测类别标号Sright = getRight(spl,sl); %得到第二类测试样本分类正确率pl=fpl;spl; %将两类预测标号合并rl=fl;sl; %将两类真实标号合并end Fright,Sright,predictLabel,realLabel = predict(c1,c2); FrightFright = 1 SrightSright = 1 plotroc(predictLabel-1,realLabel-1);在命令行窗口得到两类样本的分类正确率 都为100% 可知对于这些测试样本分类效果比较理想,但是如果需要对所有进行比较好的分类的话,应该采取交叉验证的方法。绘制ROC曲线沿着坐标轴从(0,0)到(1,1) 却接近左上角分类效果越好,所以应该选择左上角坐标对应的阈值进行分类。基于BP神经网络的多类问题划分一、实验目的通过实验,加深对BP神经网络方法的认识,了解BP神经网络的训练过程,会使用得到的分类器对给定样本进行分类。二、实验内容通过BP神经网络的分类器,从给定样本集选择训练集以及测试集进行训练并分类,用matlab实现,得到分类正确率以及混淆矩阵。 三、实验原理采用BP算法的神经网络模型称为BP神经网络,一般由输入层、隐层和输出层组成,隐层可以是一层或者多层,每个层中又包含许多单个神经元,在BP神经网络中,层与层之间的神经元是全连接,层内部的神经元之间是无连接的。各隐层节点的激活函数使用Sigmoid函数,其输入层和输出层激励函数可以根据应用的不同需要而异。因此,BP神经网络是前向反馈网络的一种,其网络结构可以采用简要的形式来描述,如图输入层 隐层 输出层BP神经网络结构BP算法即误差反向传播(Back Propagation)算法,其主要思想是是把学习过程分为两个阶段:第一阶段(正向传播过程),给出输入信息通过输入层经隐含层处理并计算每个单元的实际输出值;第二阶段(反向过程),若在输出层未能得到期望的输出值,则逐层递归地计算实际输出与期望输出之差值(即误差),以便根据此差值调节权值。BP算法的基本步骤如下:1) 设置初始权值W(0)为较小的随机非零值。2) 给定输入/输出样本集合, 误差指标 总误差指标 重复下列过程直至满足收敛条件()a) 对于任意一个样本p,计算正向过程 反向过程 b) 修正权值对给定测试集利用得到的分类器进行分类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论