作业1-贝叶斯分类器

合集下载

贝叶斯分类器MATLAB经典程序

贝叶斯分类器MATLAB经典程序

function Bayes2%为了提高实验样本测试的精度,故采用多次模拟求平均值的方法N=input('实验模拟次数N(N最好为奇数)=');Result(1:3,1:3)=0; %判别矩阵的初始化for k=1:N %控制程序模拟次数N%生成二维正态分布的样本2 X N 维的矩阵X1=mvnrnd([1 2],[4 0;0 6],300)'; %2 X NX2=mvnrnd([5 3],[5 0;0 1],200)';X3=mvnrnd([4 7],[2 0;0 9],500)'; %样本程序%---------------------------------------------------%%测试样本X10=mvnrnd([1 2],[4 0;0 6],100)'; %2 X NX20=mvnrnd([5 3],[5 0;0 1],100)';X30=mvnrnd([4 7],[2 0;0 9],100)';%先验概率P(1)=length(X1)/(length(X1)+length(X2)+length(X3));P(2)=length(X2)/(length(X1)+length(X2)+length(X3));P(3)=length(X3)/(length(X1)+length(X2)+length(X3));%计算相关量cov(X):协方差矩阵Ave:均值%--------------------------------------------------------%W1=-1/2*inv(cov(X1')); W2=-1/2*inv(cov(X2')); W3=-1/2*inv(cov(X3'));%Ave1=(sum(X1')/length(X1))';Ave2=(sum(X2')/length(X2))';Ave3=(sum(X3')/length(X3))';%计算平均值(2维列向量)w1=inv(cov(X1'))*Ave1;w2=inv(cov(X2'))*Ave2;w3=inv(cov(X3'))* Ave3;%2w10=-1/2*Ave1'*inv(cov(X1'))*Ave1-1/2*log(det(cov(X1')))+log(P(1 ));w20=-1/2*Ave2'*inv(cov(X2'))*Ave2-1/2*log(det(cov(X2')))+log(P(2 ));w30=-1/2*Ave3'*inv(cov(X3'))*Ave3-1/2*log(det(cov(X3')))+log(P(3 ));%-----------------------------------------------------------%for i=1:3for j=1:100if i==1g1=X10(:,j)'*W1*X10(:,j)+w1'*X10(:,j)+w10;g2=X10(:,j)'*W2*X10(:,j)+w2'*X10(:,j)+w20;g3=X10(:,j)'*W3*X10(:,j)+w3'*X10(:,j)+w30;if g1>=g2&g1>=g3Result(1,1)=Result(1,1)+1;elseif g2>=g1&g2>=g3Result(1,2)=Result(1,2)+1;%记录误判情况elseResult(1,3)=Result(1,3)+1;%记录误判情况endelseif i==2g1=X20(:,j)'*W1*X20(:,j)+w1'*X20(:,j)+w10;g2=X20(:,j)'*W2*X20(:,j)+w2'*X20(:,j)+w20;g3=X20(:,j)'*W3*X20(:,j)+w3'*X20(:,j)+w30;if g2>=g1&g2>=g3Result(2,2)=Result(2,2)+1;elseif g1>=g2&g1>=g3Result(2,1)=Result(2,1)+1;elseResult(2,3)=Result(2,3)+1;endelseg1=X30(:,j)'*W1*X30(:,j)+w1'*X30(:,j)+w10;g2=X30(:,j)'*W2*X30(:,j)+w2'*X30(:,j)+w20;g3=X30(:,j)'*W3*X30(:,j)+w3'*X30(:,j)+w30;if g3>=g1&g3>=g2Result(3,3)=Result(3,3)+1;elseif g2>=g1&g2>=g3Result(3,2)=Result(3,2)+1;elseResult(3,1)=Result(3,1)+1;endendendendend%画出各样本的分布情况subplot(2,1,1)plot(X1(1,:),X1(2,:),'r.','LineWidth',2),hold onplot(X2(1,:),X2(2,:),'go','LineWidth',2),hold onplot(X3(1,:),X3(2,:),'b+','LineWidth',2),hold ontitle('训练样本分布情况')legend('训练样本1','训练样本2','训练样本3') subplot(2,1,2)plot(X10(1,:),X10(2,:),'r.','LineWidth',2),hold onplot(X20(1,:),X20(2,:),'go','LineWidth',2),hold onplot(X30(1,:),X30(2,:),'b+','LineWidth',2),hold ontitle('测试样本分布情况')legend('测试样本1','测试样本2','测试样本3')%由于多次循环后存在小数,根据实际情况判别矩阵须取整%如果N为偶数,可能出现小数为0.5的情况,此时将无法更加准确判断矩阵Result=Result/N %判别矩阵,反映Bayes的判别效果for i=1:length(Result)if round(sum(Result(i,:)-fix(Result(i,:))))==1[m,n]=find(max(Result(i,:)-fix(Result(i,:)))==(Result(i,:)-fix(Result( i,:))));n=min(n);%存在小数点相同的情况随即选取一个for j=1:length(Result)if j==nResult(i,j)=fix(Result(i,j))+1;elseResult(i,j)=fix(Result(i,j));endendelseif round(sum(Result(i,:)-fix(Result(i,:))))==2[m,n1]=find(max(Result(i,:)-fix(Result(i,:)))==(Result(i,:)-fix(Resul t(i,:))));[m,n2]=find(min(Result(i,:)-fix(Result(i,:)))==(Result(i,:)-fix(Result (i,:))));n1=min(n1);n2=min(n2);%如果有存在小数点相同的情况,随即选取一个for j=1:length(Result)if j==n1Result(i,j)=fix(Result(i,j))+1;elseif j==n2Result(i,j)=fix(Result(i,j));elseResult(i,j)=fix(Result(i,j))+1;endendelsecontinue,endend总结的来说,我们都知道,只要有意义,那么就必须慎重考虑。

模式识别第一次作业报告

模式识别第一次作业报告

模式识别第一次作业报告姓名:刘昌元学号:099064370 班级:自动化092班题目:用身高和/或体重数据进行性别分类的实验基本要求:用famale.txt和male.txt的数据作为训练样本集,建立Bayes分类器,用测试样本数据test1.txt和test2.txt该分类器进行测试。

调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。

一、实验思路1:利用Matlab7.1导入训练样本数据,然后将样本数据的身高和体重数据赋值给临时矩阵,构成m行2列的临时数据矩阵给后面调用。

2:查阅二维正态分布的概率密度的公式及需要的参数及各个参数的意义,新建m函数文件,编程计算二维正态分布的相关参数:期望、方差、标准差、协方差和相关系数。

3.利用二维正态分布的相关参数和训练样本构成的临时数据矩阵编程获得类条件概率密度,先验概率。

4.编程得到后验概率,并利用后验概率判断归为哪一类。

5.利用分类器训练样本并修正参数,最后可以用循环程序调用数据文件,统计分类的男女人数,再与正确的人数比较得到错误率。

6.自己给出决策表获得最小风险决策分类器。

7.问题的关键就在于利用样本数据获得二维正态分布的相关参数。

8.二维正态分布的概率密度公式如下:试验中编程计算出期望,方差,标准差和相关系数。

其中:二、实验程序设计流程图:1:二维正态分布的参数计算%功能:调用导入的男生和女生的身高和体重的数据文件得到二维正态分布的期望,方差,标准差,相关系数等参数%%使用方法:在Matlab的命令窗口输入cansu(male) 或者cansu(famale) 其中 male 和 famale%是导入的男生和女生的数据文件名,运用结果返回的是一个行1行7列的矩阵,其中参数的顺序依次为如下:%%身高期望、身高方差、身高标准差、体重期望、体重方差、体重标准差、身高和体重的相关系数%%开发者:安徽工业大学电气信息学院自动化 092班刘昌元学号:099064370 %function result=cansu(file)[m,n]=size(file); %求出导入的数据的行数和列数即 m 行n 列%for i=1:1:m %把身高和体重构成 m 行 2 列的矩阵%people(i,1)=file(i,1);people(i,2)=file(i,2);endu=sum(people)/m; %求得身高和体重的数学期望即平均值%for i=1:1:mpeople2(i,1)=people(i,1)^2;people2(i,2)=people(i,2)^2;endu2=sum(people2)/m; %求得身高和体重的方差、%x=u2(1,1)-u(1,1)^2;y=u2(1,2)-u(1,2)^2;for i=1:1:mtem(i,1)=people(i,1)*people(i,2);ends=0;for i=1:1:ms=s+tem(i,1);endcov=s/m-u(1,1)*u(1,2); %求得身高和体重的协方差 cov (x,y)%x1=sqrt(x); %求身高标准差 x1 %y1=sqrt(y); %求身高标准差 y1 %ralation=cov/(x1*y1); %求得身高和体重的相关系数 ralation %result(1,1)=u(1,1); %返回结果 :身高的期望 %result(1,2)=x; %返回结果 : 身高的方差 %result(1,3)=x1; %返回结果 : 身高的标准差 %result(1,4)=u(1,2); %返回结果 :体重的期望 %result(1,5)=y; %返回结果 : 体重的方差 %result(1,6)=y1; %返回结果 : 体重的标准差 %result(1,7)=ralation; %返回结果:相关系数 %2:贝叶斯分类器%功能:身高和体重相关情况下的贝叶斯分类器(最小错误率贝叶斯决策)输入身高和体重数据,输出男女的判断%%使用方法:在Matlab命令窗口输入 bayes(a,b) 其中a为身高数据,b为体重数据。

贝叶斯分类

贝叶斯分类

详解贝叶斯分类器1.贝叶斯决策论贝叶斯分类器是一类分类算法的总称,贝叶斯定理是这类算法的核心,因此统称为贝叶斯分类。

贝叶斯决策论通过相关概率已知的情况下利用误判损失来选择最优的类别分类。

“风险”(误判损失)= 原本为cj的样本误分类成ci产生的期望损失,期望损失可通过下式计算:为了最小化总体风险,只需在每个样本上选择能够使条件风险R(c|x)最小的类别标记。

最小化分类错误率的贝叶斯最优分类器为:即对每个样本x,选择能使后验概率P(c|x)最大的类别标记。

利用贝叶斯判定准则来最小化决策风险,首先要获得后验概率P(c|x),机器学习要实现的是基于有限的训练样本集尽可能准确的估计出后验概率P(c|x)。

主要有两种模型:一是“判别式模型”:通过直接建模P(c|x)来预测,其中决策树,BP神经网络,支持向量机都属于判别式模型。

另外一种是“生成式模型”:通过对联合概率模型P(x,c)进行建模,然后再获得P(c|x)。

对于生成模型来说:基于贝叶斯定理,可写为下式(1)通俗的理解:P(c)是类“先验”概率,P(x|c)是样本x相对于类标记c的类条件概率,或称似然。

p(x)是用于归一化的“证据”因子,对于给定样本x,证据因子p(x)与类标记无关。

于是,估计p(c|x)的问题变为基于训练数据来估计p(c)和p(x|c),对于条件概率p(x|c)来说,它涉及x所有属性的联合概率。

2.极大似然估计假设p(x|c))具有确定的形式并且被参数向量唯一确定,则我们的任务是利用训练集估计参数θc,将P(x|c)记为P(x|θc)。

令Dc表示训练集D第c类样本的集合,假设样本独立同分布,则参数θc对于数据集Dc的似然是对进行极大似然估计,就是去寻找能最大化P(Dc|θc)的参数值。

直观上看,极大似然估计是试图在θc所有可能的取值中,找到一个能使数据出现的“可能性”最大的值。

上式的连乘操作易造成下溢,通常使用对数似然:此时参数θc的极大似然估计为在连续属性情形下,假设概率密度函数,则参数和的极大似然估计为:也就是说,通过极大似然法得到的正态分布均值就是样本均值,方差就是的均值,在离散情况下,也可通过类似的方式估计类条件概率。

贝叶斯分类器

贝叶斯分类器

贝叶斯分类器 本⽂主要介绍⼀个常见的分类框架--贝叶斯分类器。

这篇⽂章分为三个部分:1. 贝叶斯决策论;2. 朴素贝叶斯分类器; 3. 半朴素贝叶斯分类器 贝叶斯决策论 在介绍贝叶斯决策论之前,先介绍两个概念:先验概率(prior probability)和后验概率(posterior probability)。

直观上来讲,先验概率是指在事件未发⽣时,估计该事件发⽣的概率。

⽐如投掷⼀枚匀质硬币,“字”朝上的概率。

后验概率是指基于某个发⽣的条件事件,估计某个事件的概率,它是⼀个条件概率。

⽐如⼀个盒⼦⾥⾯有5个球,两个红球,三个⽩球,求在取出⼀个红球后,再取出⽩球的概率。

在wiki上,先验概率的定义为:A prior probability is a marginal probability, interpreted as a description of what is known about a variable in the absence of some evidence。

后验概率的定义为:The posterior probability is the conditional probability of the variable taking the evidence into account. The probability is computed from the prior and the likelihood function via Baye's theorem. 现在以分类任务为例。

⾸先假设有N种可能的类别标签,即y={c1, c2, ..., cN}, λij 表⽰将⼀个真实标记为cj的样本误分类为ci时产⽣的损失。

后验概率p(ci|x)表⽰将样本x分类给ci是的概率。

那么将样本x分类成ci产⽣的条件风险(conditional risk)为: 其中,P(cj|x) 表⽰样本x分类成cj类的概率,λij 表⽰将真实cj类误分类为ci类的损失。

二分类朴素贝叶斯例题

二分类朴素贝叶斯例题

二分类朴素贝叶斯例题《二分类朴素贝叶斯例题》在机器学习领域中,分类是一个重要的任务,它可以将数据集划分为不同的类别。

朴素贝叶斯分类器是一种基于概率的分类方法,它采用了贝叶斯定理,并假设特征之间是相互独立的。

本文将介绍一个关于二分类朴素贝叶斯的例题。

假设我们有一个邮件分类的数据集,它包含了许多已被标记为垃圾邮件和非垃圾邮件的样本。

每个样本都有多个特征,比如邮件的主题、发送者、内容等。

我们的目标是根据这些特征来对新的邮件进行分类。

首先,我们需要准备数据集并进行预处理。

预处理包括去除噪声、标准化数据等步骤。

在这个例题中,我们假设已经完成了预处理,并得到了一个包含特征和标签的训练集。

特征被表示为一个向量,而标签则用0表示非垃圾邮件,用1表示垃圾邮件。

接下来,我们可以使用朴素贝叶斯分类器对训练集进行训练。

朴素贝叶斯分类器的基本思想是通过计算给定特征的概率来预测新样本的类别。

这里的朴素贝叶斯假设指的是假设每个特征的出现概率是相互独立的。

训练步骤涉及计算每个类别的先验概率和每个特征在给定类别下的条件概率。

先验概率表示的是某个样本属于某个类别的概率,而条件概率则表示的是在已知类别的情况下,某个特征出现的概率。

这些概率可以通过统计训练集中的样本来进行估计。

在训练完成后,我们可以使用分类器对新的样本进行预测。

预测步骤包括计算新样本属于每个类别的概率,并选择具有最高概率的类别作为预测结果。

在实际应用中,我们可以使用不同的评价指标来评估分类器的性能,比如准确率、精确率、召回率等。

此外,可以通过调整分类器的参数或选择其他特征来改进分类器的性能。

通过这个例题,我们可以了解到朴素贝叶斯分类器的基本原理和应用方法。

它是一种简单而有效的分类算法,在文本分类、垃圾邮件过滤等领域中有广泛应用。

通过适当地调整参数和特征选择,我们可以提高分类器的性能,并对新的样本进行准确的分类预测。

模式识别大作业

模式识别大作业

模式识别大作业(总21页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--作业1 用身高和/或体重数据进行性别分类(一)基本要求:用和的数据作为训练样本集,建立Bayes分类器,用测试样本数据对该分类器进行测试。

调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。

具体做法:1.应用单个特征进行实验:以(a)身高或者(b)体重数据作为特征,在正态分布假设下利用最大似然法或者贝叶斯估计法估计分布密度参数,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到测试样本,考察测试错误情况。

在分类器设计时可以考察采用不同先验概率(如对, 对, 对等)进行实验,考察对决策规则和错误率的影响。

图1-先验概率:分布曲线图2-先验概率:分布曲线图3--先验概率:分布曲线图4不同先验概率的曲线有图可以看出先验概率对决策规则和错误率有很大的影响。

程序:和2.应用两个特征进行实验:同时采用身高和体重数据作为特征,分别假设二者相关或不相关(在正态分布下一定独立),在正态分布假设下估计概率密度,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。

比较相关假设和不相关假设下结果的差异。

在分类器设计时可以考察采用不同先验概率(如 vs. , vs. , vs. 等)进行实验,考察对决策和错误率的影响。

训练样本female来测试图1先验概率 vs. 图2先验概率 vs.图3先验概率 vs. 图4不同先验概率对测试样本1进行试验得图对测试样本2进行试验有图可以看出先验概率对决策规则和错误率有很大的影响。

程序和3.自行给出一个决策表,采用最小风险的Bayes决策重复上面的某个或全部实验。

W1W2W10W20close all;clear all;X=120::200; %设置采样范围及精度pw1=;pw2=; %设置先验概率sample1=textread('') %读入样本samplew1=zeros(1,length(sample1(:,1)));u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1); %类条件概率分布figure(1);subplot(2,1,1);plot(X,y1);title('F身高类条件概率分布曲线');sample2=textread('') %读入样本samplew2=zeros(1,length(sample2(:,1)));u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2); %类条件概率分布subplot(2,1,2);plot(X,y2);title('M身高类条件概率分布曲线');P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);figure(2);subplot(2,1,1);plot(X,P1);title('F身高后验概率分布曲线');subplot(2,1,2);plot(X,P2);title('M身高后验概率分布曲线');P11=pw1*y1;P22=pw2*y2;figure(3);subplot(3,1,1);plot(X,P11);subplot(3,1,2);plot(X,P22);subplot(3,1,3);plot(X,P11,X,P22);sample=textread('all ') %读入样本[result]=bayes(sample1(:,1),sample2(:,1),pw1,pw2);%bayes分类器function [result] =bayes(sample1(:,1),sample2(:,1),pw1,pw2); error1=0;error2=0;u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1); %类条件概率分布u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2); %类条件概率分布P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);for i = 1:50if P1(i)>P2(i)result(i)=0;pe(i)=P2(i);elseresult(i)=1;pe(i)=P1(i);endendfor i=1:50if result(k)==0error1=error1+1;else result(k)=1error2=error2+1;endendratio = error1+error2/length(sample); %识别率,百分比形式sprintf('正确识别率为%.2f%%.',ratio)作业2 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。

贝叶斯分类器(3)朴素贝叶斯分类器

贝叶斯分类器(3)朴素贝叶斯分类器

贝叶斯分类器(3)朴素贝叶斯分类器根据,我们对贝叶斯分类器所要解决的问题、问题的求解⽅法做了概述,将贝叶斯分类问题转化成了求解P(x|c)的问题,在上⼀篇中,我们分析了第⼀个求解⽅法:极⼤似然估计。

在本篇中,我们来介绍⼀个更加简单的P(x|c)求解⽅法,并在此基础上讲讲常⽤的⼀个贝叶斯分类器的实现:朴素贝叶斯分类器(Naive Bayes classifier)。

1 朴素贝叶斯分类原理1.1 分类问题回顾我们的⽬标是通过对样本的学习来得到⼀个分类器,以此来对未知数据进⾏分类,即求后验概率P(c|x)。

在中,我们描述了贝叶斯分类器是以⽣成式模型的思路来处理这个问题的,如下⾯的公式所⽰,贝叶斯分类器通过求得联合概率P(x,c)来计算P(c|x),并将联合概率P(x,c)转化成了计算类先验概率P(c)、类条件概率P(x|c)、证据因⼦P(x)。

h∗(x)=\argmax c∈Y P(c|x)=\argmax c∈Y P(x,c)P(x)=\argmaxc∈YP(c)∗P(x|c)P(x)其中的难点是类条件概率P(x|c)的计算,因为样本x本⾝就是其所有属性的联合概率,各种属性随意组合,变幻莫测,要计算其中某⼀种组合出现的概率真的是太难了,⽽朴素贝叶斯的出现就是为了解决这个问题的。

要想计算联合概率P(a,b),我们肯定是希望事件a与事件b是相互独⽴的,可以简单粗暴的P(a,b)=P(a)P(b),多想对着流星许下⼼愿:让世界上复杂的联合概率都变成简单的连乘!1.2 朴素贝叶斯朴素贝叶斯实现了我们的梦想!朴素贝叶斯中的朴素就是对多属性的联合分布做了⼀个⼤胆的假设,即x的n个维度之间相互独⽴:P([x1,x2,...,x n]|c)=P(x1|c)P(x2|c)...P(x1|c)朴素贝叶斯通过这⼀假设⼤⼤简化了P(x|c)的计算,当然,使⽤这个假设是有代价的,⼀般情况下,⼤量样本的特征之间独⽴这个条件是弱成⽴的,毕竟哲学上说联系是普遍的,所以我们使⽤朴素贝叶斯会降低⼀些准确性;如果实际问题中的事件的各个属性⾮常不独⽴的话,甚⾄是⽆法使⽤朴素贝叶斯的。

贝叶斯分类器例题

贝叶斯分类器例题

贝叶斯分类器例题
1.朴素贝叶斯分类器:一个例子是识别垃圾邮件。

给定一封邮件,可以根据邮件中的关键词和主题来判断该邮件是否为垃圾邮件。

通过朴素贝叶斯分类器,可以将邮件分为垃圾邮件和非垃圾邮件两类。

2.贝叶斯网络分类器:另一个例子是疾病诊断。

给定一个病人的症状和病史,可以根据贝叶斯网络分类器来预测该病人可能患有哪种疾病。

通过计算每个疾病的概率,可以得出最可能的诊断结果。

3.信用卡欺诈识别:在这个例子中,我们使用贝叶斯分类器来识别信用卡欺诈行为。

给定一系列交易数据,包括交易金额、交易地点、交易时间等,我们需要判断这些交易是否为欺诈行为。

通过训练一个贝叶斯分类器,可以学习到正常交易和欺诈交易的特征,并利用这些特征来预测新的交易是否为欺诈行为。

4.情感分析:在这个例子中,我们使用贝叶斯分类器来进行情感分析。

给定一篇文章或一段评论,我们需要判断该文本的情感倾向是积极还是消极。

通过训练一个贝叶斯分类器,可以学习到积极和消极文本的特征,并利用这些特征来预测新的文本的情感倾向。

5.基因分类:在这个例子中,我们使用贝叶斯分类器来进行基因分类。

给定一个基因序列,我们需要将其分类为不同的基因家族或亚家族。

通过训练一个贝叶斯分类器,可以学习到不同基因家族或亚家族的特征,并利用这些特征来预测新的基因序列的家族或亚家族归属。

以上这些例题只是贝叶斯分类器的一些应用示例,实际上贝叶斯分类器的应用非常广泛,它可以应用于任何需要分类的领域,如金融、医疗、社交媒体等。

贝叶斯分类器与决策树分类器的比较

贝叶斯分类器与决策树分类器的比较

贝叶斯分类器与决策树分类器的比较一原理:1.1贝叶斯分类器的原理:贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类,是通过某些特征对不同的内容进行分类。

特征的定义任何可以用来判断内容中具备或缺失的东西。

如要对文档进行分类时,所谓的内容就是文档,特征就是文档中的单词(当然你也可以选择其他合理的东西)。

当向贝叶斯分类器输入一个要进行分类的样本后,分类器会先对该样本进行分析,确定其特征,然后将根据这些特征时,计算样本属于各分类的概率。

条件概率:定义:设A, B是两个事件,且P(A)>0 称P(B∣A)=P(AB)/P(A)为在条件A 下发生的条件事件B发生的条件概率。

乘法公式:设P(A)>0,则有P(AB)=P(B∣A)P(A)全概率公式和贝叶斯公式:定义设S为试验E的样本空间,B1, B2, …Bn为E的一组事件,若BiBj=Ф, i≠j, i, j=1, 2, …,n; B1∪B2∪…∪Bn=S则称B1, B2, …, Bn为样本空间的一个划分。

定理设试验E的样本空间为,A为E的事件,B1, B2, …,Bn为的一个划分,且P(Bi)>0 (i=1, 2, …n),则P(A)=P(A∣B1)P(B1)+P(A∣B2)+ …+P(A∣Bn)P(Bn)称为全概率公式。

定理设试验E的样本空间为S,A为E的事件,B1, B2, …,Bn为的一个划分,则P(Bi∣A)=P(A∣Bi)P(Bi)/∑P(B|Aj)P(Aj)=P(B|Ai)P(Ai)/P(B)称为贝叶斯公式。

说明:i,j均为下标,求和均是1到n。

1.2 决策树分类器的原理:树:树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。

把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

(完整版)贝叶斯统计方法

(完整版)贝叶斯统计方法

贝叶斯方法贝叶斯分类器是一种比较有潜力的数据挖掘工具,它本质上是一种分类手段,但是它的优势不仅仅在于高分类准确率,更重要的是,它会通过训练集学习一个因果关系图(有向无环图)。

如在医学领域,贝叶斯分类器可以辅助医生判断病情,并给出各症状影响关系,这样医生就可以有重点的分析病情给出更全面的诊断。

进一步来说,在面对未知问题的情况下,可以从该因果关系图入手分析,而贝叶斯分类器此时充当的是一种辅助分析问题领域的工具。

如果我们能够提出一种准确率很高的分类模型,那么无论是辅助诊疗还是辅助分析的作用都会非常大甚至起主导作用,可见贝叶斯分类器的研究是非常有意义的。

与五花八门的贝叶斯分类器构造方法相比,其工作原理就相对简单很多。

我们甚至可以把它归结为一个如下所示的公式:选取其中后验概率最大的c,即分类结果,可用如下公式表示贝叶斯统计的应用范围很广,如计算机科学中的“统计模式识别”、勘探专家所采用的概率推理、计量经济中的贝叶斯推断、经济理论中的贝叶斯模型等。

上述公式本质上是由两部分构成的:贝叶斯分类模型和贝叶斯公式。

下面介绍贝叶斯分类器工作流程:1.学习训练集,存储计算条件概率所需的属性组合个数。

2.使用1中存储的数据,计算构造模型所需的互信息和条件互信息。

3.使用2种计算的互信息和条件互信息,按照定义的构造规则,逐步构建出贝叶斯分类模型。

4.传入测试实例5.根据贝叶斯分类模型的结构和贝叶斯公式计算后验概率分布。

6.选取其中后验概率最大的类c,即预测结果。

一、第一部分中给出了7个定义。

定义1 给定事件组,若其中一个事件发生,而其他事件不发生,则称这些事件互不相容。

定义 2 若两个事件不能同时发生,且每次试验必有一个发生,则称这些事件相互对立。

定义 3 若定某事件未发生,而其对立事件发生,则称该事件失败定义4 若某事件发生或失败,则称该事件确定。

定义 5 任何事件的概率等于其发生的期望价值与其发生所得到的价值之比。

定义6 机会与概率是同义词。

贝叶斯分类器ppt课件

贝叶斯分类器ppt课件
对不相关属性的鲁棒性
各类在不相关属性上具有类似分布
类条件独立假设可能不成立
使用其他技术,如贝叶斯信念网络( Bayesian Belief Networks,BBN)
贝叶斯误差率
13
贝叶斯分类器最小化分类误差的概率 贝叶斯分类使决策边界总是位于高斯分布下两类
1和2的交叉点上
类C2 类C1
计算P(X| No)P(No)和P(X| Yes)P(Yes)
P(X| No)P(No)=0.0024 0.7=0.00168 P(X| Yes)P(Yes)=0 0.3=0
因为P(X| No)P(No)>P(X| Yes)P(Yes), 所以X分类为No
贝叶斯分类器
10
问题
如果诸条件概率P(Xi=xi |Y=yj) 中的一个为0,则它 们的乘积(计算P(X |Y=yj)的表达式)为0
设C=0表示真实账号,C=1表示不真实账号。
15
1、确定特征属性及划分
区分真实账号与不真实账号的特征属性, 在实际应用中,特征属性的数量是很多的,划分也会比
较细致 为了简单起见,用少量的特征属性以及较粗的划分,并
对数据做了修改。
16
选择三个特征属性:
a1:日志数量/注册天数 a2:好友数量/注册天数 a3:是否使用真实头像。
P( y j | X) P( yi | X), 1 i k, i j
根据贝叶斯定理, 我们有
P(y j
|
X)
P(X
| y j )P( y j ) P(X)
由于P(X) 对于所有类为常数, 只需要最大化P(X|yj)P(yj)即可.
朴素贝叶斯分类(续)
4
估计P(yj) 类yj的先验概率可以用 P (yj)=nj/n 估计

朴素贝叶斯分类器详细介绍

朴素贝叶斯分类器详细介绍

实例[编辑]
性别分类[编辑]
问题描述:通过一些测量的特征,包括身高、体重、脚的尺寸,判定一个人是男 性还是女性。 训练[编辑] 训练数据如下: 性别 身高(英尺) 体重(磅) 脚的尺寸(英寸) 男 男 男 男 女 6 180 12 11 12 10 6 5.92 (5'11") 190 5.58 (5'7") 170 5.92 (5'11") 165 5 100
我们希望得到的是男性还是女性哪类的后验概率大。男性的后验概率通过下面 式子来求取
女性的后验概率通过下面式子来求取
证据因子(通常是常数)用来使各类的后验概率之和为 1.
证据因子是一个常数(在正态分布中通常是正数),所以可以忽略。接下来我 们来判定这样样本的性别。
,其中 , 是训练集样本的正态分布参数. 注意,这里 的值大于 1 也是允许的 – 这里是概率密度而不是概率,因为身高是一个连续 的变量.
用朴素的语言可以表达为:
实际中,我们只关心分式中的分子部分,因为分母不依赖于 而且特征 的值 是给定的,于是分母可以认为是一个常数。这样分子就等价于联合分布模型。
重复使用链式法则,可将该式写成条件概率的形式,如下所示:
现在“朴素”的条件独立假设开始发挥作用:假设每个特征 是条件独立的。这就意味着
对于其他特征
样本修正[编辑]
如果一个给定的类和特征值在训练集中没有一起出现过,那么基于频率的估计 下该概率将为 0。这将是一个问题。因为与其他概率相乘时将会把其他概率的 信息统统去除。所以常常要求要对每个小类样本的概率估计进行修正,以保证 不会出现有为 0 的概率出现。
从概率模型中构造分类器[编辑]
讨论至此为止我们导出了独立分布特征模型,也就是朴素贝叶斯概率模型。朴 素贝叶斯分类器包括了这种模型和相应的决策规则。根据分类决策规则的不同, 贝叶斯分类有多种形式: 最小错误率贝叶斯分类器, 最大似然比贝叶斯分类 器,最小风险贝叶斯分类器。 一个普通的规则就是选出最有可能的那个,即将一个待分类样本划归到后验概 率最大的那一类中:这就是大家熟知的最大后验概率(MAP)决策准则,真正分 类器称为最大后验概率分类器,与最小错误率贝叶斯分类器是等价的。当采取 最大后验概率决策时,分类错误概率取得最小值。相应的分类器便是如下定义 的 公式:

模式识别实验报告 实验一 BAYES分类器设计

模式识别实验报告 实验一 BAYES分类器设计

P (i X )
P ( X i ) P (i )
P( X ) P( )
j 1 i i
c
j=1,…,x
(2)利用计算出的后验概率及决策表,按下面的公式计算出采取 ai ,i=1,…,a 的条件风 险
R (a i X ) (a i , j ) P ( j X ) ,i=1,2,…,a
1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -5 正常细胞 异常细胞 后验概率分布曲线
后验概率
-4
-3
-2
-1 0 1 细胞的观察值
2
3
4
5
图 1 基于最小错误率的贝叶斯判决

最小风险贝叶斯决策 风险判决曲线如图 2 所示,其中带*的绿色曲线代表异常细胞的条件风险曲线;另一条
光滑的蓝色曲线为判为正常细胞的条件风险曲线。 根据贝叶斯最小风险判决准则, 判决结果 见曲线下方,其中“上三角”代表判决为正常细胞, “圆圈“代表异常细胞。 各细胞分类结果: 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 其中,0 为判成正常细胞,1 为判成异常细胞
实验一 Bayes 分类器设计
【实验目的】
对模式识别有一个初步的理解, 能够根据自己的设计对贝叶斯决策理论算法有一个深刻 地认识,理解二类分类器的设计原理。
【实验原理】
最小风险贝叶斯决策可按下列步骤进行: (1)在已知 P (i ) , P ( X i ) ,i=1,…,c 及给出待识别的 X 的情况下,根据贝叶斯公 式计算出后验概率:
4 0
请重新设计程序, 完成基于最小风险的贝叶斯分类器, 画出相应的条件风险的分布曲线和分 类结果,并比较两个结果。

贝叶斯分类例题

贝叶斯分类例题

贝叶斯分类例题以下是一个贝叶斯分类的例子:假设我们要根据一个人的身高和体重来判断其性别,已知训练集中有一些人的身高、体重以及性别的标签。

我们可以使用贝叶斯分类器来预测新样本的性别。

训练集如下:人1:身高160cm,体重50kg,性别女性人2:身高175cm,体重70kg,性别男性人3:身高168cm,体重55kg,性别女性人4:身高180cm,体重80kg,性别男性现在我们希望根据一个新样本(身高170cm,体重65kg)来预测其性别。

首先,我们需要计算训练集中男性和女性各自的先验概率P(男性)和P(女性)。

训练集中有2个男性和2个女性,所以P(男性) = 2/4 = 0.5,P(女性) = 2/4 = 0.5。

接下来,我们需要计算对于每个特征值的条件概率P(特征值|男性)和P(特征值|女性)。

对于身高特征值170cm,训练集中男性中有1个人的身高大于170cm,所以P(身高 > 170cm|男性) = 1/2 = 0.5,女性中有0个人的身高大于170cm,所以P(身高 > 170cm|女性) = 0/2 = 0。

对于体重特征值65kg,男性中有1个人的体重大于65kg,所以P(体重 > 65kg|男性) = 1/2 = 0.5,女性中有0个人的体重大于65kg,所以P(体重 > 65kg|女性) = 0/2 = 0。

最后,我们可以使用贝叶斯公式来计算新样本为男性和女性的后验概率,然后选择后验概率较大的性别作为预测结果。

P(男性|170cm, 65kg) = P(身高 > 170cm|男性) * P(体重 > 65kg|男性) * P(男性) = 0.5 * 0.5 * 0.5 = 0.125P(女性|170cm, 65kg) = P(身高 > 170cm|女性) * P(体重 > 65kg|女性) * P(女性) = 0 * 0 * 0.5 = 0因此,根据贝叶斯分类器,我们预测新样本的性别为男性。

机器学习导论 第5章 贝叶斯分类器与贝叶斯网络

机器学习导论 第5章  贝叶斯分类器与贝叶斯网络
第5章 贝叶斯分类器与贝叶斯网络
本章学习目标
掌握贝叶斯公式和朴素贝叶斯分类器原理。 熟悉朴素贝叶斯分类器的优缺点及应用领域。 了解贝叶斯网络的构建方法及推理过程。
第5章贝叶斯分类器与贝叶斯网络
5.1 贝叶斯方法 5.2 贝叶斯分类器 5.3 贝叶斯网络
5.1 贝叶斯方法
贝叶斯(1702-1761) Thomas Bayes,英国数学家。1742 年成为英国皇家学会会员。1761年4月7日逝世。贝叶斯在 数学方面主要研究概率论。他首先将归纳推理法用于概率论 基础理论,并创立了贝叶斯统计理论,对于统计决策函数、 统计推断、统计的估算等做出了贡献。他死后,理查德·普莱 斯 (Richard Price) 于 1763 年 将 他 的 著 作 《 An essay towards solving a problem in the doctrine of chances 》寄给了英国皇家学会,对于现代概率论和数理统计产生了 重要的影响。
j 1
P(ti ri C2 ) P ti1 r1 C2 P ti2 r1 C2
m
P tim r1 C2 P tij r1 C2
j 1
P(ti ri Ck ) P ti1 r1 Ck P ti2 r1 Ck
条件独立性假设: “朴素”贝叶斯名字由来,牺牲分类准确性。 贝叶斯定理: 代入上式:
5.2 贝叶斯分类器
贝叶斯分类器: 分母对所有ck都相同:
5.2 贝叶斯分类器
朴素贝叶斯分类模型是一种简单的构造分类器的方法。朴素贝叶 斯分类模型是将问题分为特征向量和决策向量两类,并假设问题 的特征向量都是相互独立地作用于决策向量的,即问题的特征之 间都是互不相关的。
如果我们已经知道事件 A 和 B 各自发生的概率,已知当事件 A 发生前提下事件 B 也发生的条件概率,那么就可以用贝叶斯公式求 得在事件 B 发生前提下事件 A 发生的概率。 贝叶斯公式提供了从先验概率计算后验概率的方法。

贝叶斯分类器代码

贝叶斯分类器代码

贝叶斯分类器代码贝叶斯分类器是一种基于贝叶斯定理的机器学习算法,它可以用于分类、预测等任务。

在实际应用中,我们通常需要编写代码来实现贝叶斯分类器。

以下是一个简单的贝叶斯分类器代码示例:```import numpy as npclass NaiveBayesClassifier:def __init__(self):self.classes = Noneself.class_priors = Noneself.mean = Noneself.variance = Nonedef fit(self, X, y):self.classes = np.unique(y)n_classes = len(self.classes)# 计算每个类别的先验概率class_counts = np.zeros(n_classes)for i in range(n_classes):class_counts[i] = np.sum(y == self.classes[i])self.class_priors = class_counts / len(y)# 计算每个类别下每个特征的均值和方差n_features = X.shape[1]self.mean = np.zeros((n_classes, n_features)) self.variance = np.zeros((n_classes, n_features))for i in range(n_classes):X_i = X[y == self.classes[i], :]self.mean[i, :] = np.mean(X_i, axis=0)self.variance[i, :] = np.var(X_i, axis=0)def predict(self, X):n_samples, n_features = X.shapey_pred = np.zeros(n_samples)for i in range(n_samples):posteriors = []# 计算每个类别的后验概率for j in range(len(self.classes)):prior = np.log(self.class_priors[j])likelihood = np.sum(np.log(self._gaussian_pdf(X[i, :], self.mean[j, :], self.variance[j, :])))posterior = prior + likelihoodposteriors.append(posterior)# 选择后验概率最大的类别作为预测结果y_pred[i] = self.classes[np.argmax(posteriors)]return y_preddef _gaussian_pdf(self, x, mean, variance):exponent = -0.5 * ((x - mean) ** 2 / variance)coeff = 1.0 / np.sqrt(2.0 * np.pi * variance)return coeff * np.exp(exponent)```该代码实现了一个简单的高斯朴素贝叶斯分类器。

基于贝叶斯决策理论的分类器(1)

基于贝叶斯决策理论的分类器(1)

测量从待分类向量x到每一类均值向量的欧氏距
离,把x分到距离最近的类,
mi是从训
练样本集中得到的。也称最小距离分类器。
若把每个均值向量mi看作一个典型的样本(模板)
,则这种分类方法也称为模板匹配技术。
② P(wi)≠P(wj)
欧氏距离的平方必须用方差s2规范化后减去 lnP(wi)再用于分类。因此,如果待分类的向量x
①最小错误概率情况下阈值x0 (取对数运算)
②最小风险情况下阈值x0
• 如果这两类不是等概率,
P(w1)< P(w2),阈值左移
也就是说扩大最大可能 类的区域。可能性大的 类可产生更小的误差。
阈值左移
⑶拒绝决策 • 在某些情况下拒绝决策比错误判别风险要小。 • 样本x在各种判别条件下的平均风险
• 当i=c+1时,如果R(ac+1|x)< R(ai|x), i=1,2,···,c则 对x作出拒绝判别。
4. 最小风险的Bayes决策 ⑴把分类错误引起的“损失”加入到决策中去。
决策论中: 采取的决策称为动作,用ai表示;
每个动作带来的损失,用l表示。
归纳数学符号:
• 一般用决策表或损失矩阵表示上述三者关系。 决策表表示各种状态下的决策损失,如下表:
• 由于引入了“损失”的概念 (即在错判时造成的损 失),不能只根据后验概率来决策,必须考虑所 采取的决策是否使损失最小。
c×(c-1)项组成,计算量大。
• 用平均正确分类率P(c)计算只有c 项:
例1:细胞识别
已知:正常类P(w1)=0.9; 异常类P(w2)=0.1
待识别细胞 x, 从类条件概率密度曲线上查得
p(x|w1)=0.2; p(x|w2)=0.4

第3章 朴素贝叶斯分类器

第3章  朴素贝叶斯分类器

pre=[]#存储预测结果 count_good=count_bad=0 for index in range(len(dataTrain)):
color=dataTrain[index,0] sound = dataTrain[index, 2] lines = dataTrain[index, 3] #统计在好瓜和坏瓜的情况下不同特征的概率 c_good,c_bad=featureFrequency(color,'c',dataTrain,y) p_c_good,p_c_bad=feaConProbability(c_good,c_bad,dataTrain,y) print('颜色概率', p_c_good, p_c_bad)
3.1贝叶斯定理相关概念
一个单变量正态分布密度函数为: 其正态分布的概率密度函数如图所示。
与μ越近的值,其概率越大,反之,其概率值越小。σ描述数据分布的离散程度,σ越 大,数据分布越分散,曲线越扁平;σ越小,数据分布越集中,曲线越瘦高。
3.1贝叶斯决策理论基础
对于多变量的正态分布,假设特征向量是服从均值向量为 态分布,其中,类条件概率密度函数为:
perch_Variance_Light=np.var(perch_train[:,1]) print('鲈鱼长度均值:',perch_Mean_Length) print('鲈鱼亮度均值:',perch_Mean_Light) print('鲈鱼长度方差:',perch_Variance_Length) print('鲈鱼亮度方差:',perch_Variance_Light) print('鲈鱼长度均值:',perch_Mean_Length) print('鲈鱼亮度均值:',perch_Mean_Light) print('鲈鱼长度方差:',perch_Variance_Length) print('鲈鱼亮度方差:',perch_Variance_Light)

贝叶斯分类器设计原理与实现

贝叶斯分类器设计原理与实现

贝叶斯分类器设计原理与实现贝叶斯分类器是一种基于贝叶斯定理的机器学习算法,常被用于文本分类、垃圾邮件过滤等任务。

本文将介绍贝叶斯分类器的设计原理和实现。

一、贝叶斯分类器的原理贝叶斯分类器基于贝叶斯定理,该定理描述了在已知一些先验条件下,如何通过新的观测数据来更新我们对于某个事件发生概率的判断。

在分类任务中,我们希望通过已知的特征,预测出一个样本属于某一类别的概率。

在贝叶斯分类器中,我们通过计算后验概率来决定样本的分类。

后验概率是指在已知某个条件下,事件发生的概率。

根据贝叶斯定理,后验概率可以通过先验概率和条件概率来计算。

先验概率是指在没有任何其他信息的情况下,事件发生的概率;条件概率是指在已知其他相关信息的情况下,事件发生的概率。

贝叶斯分类器根据特征的条件独立性假设,将样本的特征表示为一个向量。

通过训练数据,我们可以计算出每个特征在不同类别中的条件概率。

当有一个新的样本需要分类时,我们可以根据贝叶斯定理和特征的条件独立性假设,计算出该样本属于每个类别的后验概率,从而实现分类。

二、贝叶斯分类器的实现贝叶斯分类器的实现主要包括训练和预测两个步骤。

1. 训练过程训练过程中,我们需要从已知的训练数据中学习每个特征在不同类别下的条件概率。

首先,我们需要统计每个类别出现的频率,即先验概率。

然后,对于每个特征,我们需要统计它在每个类别下的频率,并计算出条件概率。

可以使用频率计数或者平滑方法来估计这些概率。

2. 预测过程预测过程中,我们根据已训练好的模型,计算出待分类样本属于每个类别的后验概率,并选择具有最大后验概率的类别作为最终的分类结果。

为了避免概率下溢问题,通常会将概率取对数,并使用对数概率进行计算。

三、贝叶斯分类器的应用贝叶斯分类器在自然语言处理领域有广泛的应用,尤其是文本分类和垃圾邮件过滤。

在文本分类任务中,贝叶斯分类器可以通过学习已有的标记文本,自动将新的文本分类到相应的类别中。

在垃圾邮件过滤任务中,贝叶斯分类器可以通过学习已有的垃圾邮件和正常邮件,自动判断新的邮件是否为垃圾邮件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作业1、BAYES分类器
算法1.
%绘图,从多个视角观察上述3维2类训练样本
clear all;
close all;
N1=440;
x1(1,:)=-1.7+0.9*randn(1,N1); % 1 类440 个训练样本,3 维正态分布
x1(2,:)= 1.6+0.7*randn(1,N1);
x1(3,:)=-1.5+0.8*randn(1,N1);
N2=400;
x2(1,:)= 1.3+1.2*randn(1,N2); % 2 类400 个训练样本,3 维正态分布
x2(2,:)=-1.5+1.3*randn(1,N2);
x2(3,:)= 1.4+1.1*randn(1,N2);
plot3(x1(1,:),x1(2,:),x1(3,:),'*',x2(1,:),x2(2,:),x2(3,:),'o');
grid on;
axis equal;
axis([-5 5 -5 5 -5 5]);
xlabel('x ');ylabel('y ');zlabel('z ');
%假定2类的类条件概率分布皆为正态分布,分别估计2类的先验概率、均值向量、协方差矩阵
p1=N1/(N1+N2); % 1 类的先验概率
p2=N2/(N1+N2); % 2 类的先验概率
u1=sum(x1')/N1; % 1 类均值估计
u1=u1'
for i=1:N1 xu1(:,i)=x1(:,i)-u1;end;
e1=(xu1*xu1')/(N1-1) % 1 类协方差矩阵估计
u2=sum(x2')/N2; % 2 类均值估计
u2=u2'
for i=1:N2 xu2(:,i)=x2(:,i)-u2;end;
e2=(xu2*xu2')/(N2-1) % 2 类协方差矩阵估计
%求解2类的BAYES分类器的决策(曲)面,并绘图、从多个视角观察决策面
%bayse 概率概率分布函数
w10=-(1/2)*u1'*(inv(e1))*u1-0.5*log(det(e1))+log(0.52);
w20=-(1/2)*u2'*(inv(e2))*u2-0.5*log(det(e2))+log(0.48);
W1=-(0.5)*inv(e1);
W2=-(0.5)*inv(e2);
w1=inv(e1)*u1;
w2=inv(e2)*u2;
temp=-5:0.1:5;
[x1,y1,z1]=meshgrid(temp,temp,temp);
val=zeros(size(x1));
for k=1:(size(x1,1)^3)
X=[x1(k),y1(k),z1(k)]';
val(k)=X'*W1*X+w1'*X+w10-X'*W2*X-w2'*X-w20;
end
bv=isosurface(x1,y1,z1,val,0);
patch(bv,'facecolor','none','EdgeColor','y');
算法2.
clear all;
close all;
N1=440;
x1(1,:)=-1.7+0.9*randn(1,N1);
x1(2,:)= 1.6+0.7*randn(1,N1); % 1 类440 个训练样本,3 维正态分布
x1(3,:)=-1.5+0.8*randn(1,N1);
N2=400;
x2(1,:)= 1.3+1.2*randn(1,N2); % 2 类400 个训练样本,3 维正态分布
x2(2,:)=-1.5+1.3*randn(1,N2);
x2(3,:)= 1.4+1.1*randn(1,N2);
plot3(x1(1,:),x1(2,:),x1(3,:),'*',x2(1,:),x2(2,:),x2(3,:),'o');
grid on;
axis equal;
axis([-5 5 -5 5 -5 5]);
u1=sum(x1')/N1 ; % 1 类均值估计
u1=u1'
for i=1:N1 xu1(:,i)=x1(:,i)-u1;end;
e1=(xu1*xu1')/(N1-1) % 1 类协方差矩阵估计
e10=det(e1) ; %协方差行列式
e11=inv(e1) %协方差逆阵
u2=sum(x2')/N2; % 2 类均值估计
u2=u2';
for i=1:N2 xu2(:,i)=x2(:,i)-u2;end;
e2=(xu2*xu2')/(N2-1); % 2 类协方差矩阵估计
e20=det(e2); %协方差行列式
e21=inv(e2) ; %协方差逆阵
px1=N1/(N1+N2) %先验概率x1
px2=N2/(N1+N2) %先验概率x2
%bayse 概率概率分布函数
syms x y z real;
h1=-0.5.*([x y z]-u1')*e11*[[x y z]-u1']'-0.5*log(e10)+log(px1)-0.5*3*log(2*pi); h2=-0.5.*([x y z]-u2')*e21*[[x y z]-u2']'-0.5*log(e20)+log(px2)-0.5*3*log(2*pi);
f=h1-h2; %决策函数
[x,y,z]=meshgrid(-5:.5:5);
f=subs(simplify(vpa(f)))
p=patch(isosurface(x,y,z,f,0));
set(p,'FaceColor','black');
grid on;
view(3) %决策面
xlabel('X');
ylabel('Y') ;zlabel('Z');title('bayes 分类器');。

相关文档
最新文档