贝叶斯最小错误概率分类器设计

合集下载

最小风险的Bayes决策

最小风险的Bayes决策

0-1·损失函数
c
P(j X ) j1, ji
两种判决方式等价! 9
3.3 Bayes分类器和判别函数
分类器设计:利用决策规则对观察向量 X 进行分类
d 维特征空间
决策规则
c 个决策域
决策面:划分决策域的边界面 决策面方程:决策面的数学解析形式 判别函数:表达决策规则的函数
用正态分布模型描述训练样本集与测试样本集在数 学上实现起来也比较方便
23
物理上的合理性 如果同一类样本在特征空间 内的确较集中地分布在其类均值的附近,远离 均值处分布较少,那么一般情况下以正态分布 模型近似往往是比较合理的
人们也往往因数学分析复杂程度考虑而不得不 采用这种模型,当然使用时应注意结果是否合 理或关注其可接受的程度
A [1 ,. . . ,a ] T ,1 ,. . . ,a为 a 个 决 策 状 态
损失函数 (i ,j ) : 真 实 状 态 为 j 而 判 断 为 i 的 损 失 ( i j )
期望损失(条件风险)
c
R (i|X )E [(i,j)] (i,j)P (j|X ) j 1
分割它们的决策面方程应满足:
gi(x) gj(x)
11
最小错误概率决策
判别函数的不同形式:
gi(x)P(i |x)
gi(x)P(xi)P(i)
g i(x ) lo g P (xi) lo g P (i)
12
最小风险决策
判别函数
gi(x)R(i |x)
判别函数不唯一,更一般地,f ( gi ( x)) (其中 f ( x ) 为 单调增函数)均可作为判别函数
18
后验概率:

基于最小错误率的贝叶斯决策

基于最小错误率的贝叶斯决策

基于最⼩错误率的贝叶斯决策理论上的东西,就不写了,也写不出什么有价值的东西,资料太多了。

后⽂很多关于原理的讲述都给出了其他⽂章的引⽤。

分享⼀个⽐较简单易懂的。

数据集:328 个同学的⾝⾼、体重、性别数据(78 个⼥⽣、250 个男⽣)124 个同学的数据(40 ⼥、84 男)90 个同学的数据(16 ⼥,74 男)问题描述:以dataset1为训练数据库,假设⾝⾼与体重满⾜⾼斯分布,进⾏⾼斯分布的参数估计,并进⾏基于最⼩错误率的贝叶斯分类,分别考虑男⼥的先验概率,0.5-0.5;0.6-0.4;0.7-0.3,0.8-0.2,并以dataset2和dataset3为测试数据库分析分类性能,并探讨先验概率对分类性能的影响需要解决的问题:通过⽂章开头提供的资料可以看出,其实判别的函数就是下图,就是给定⼀个待测向量X,它是类别Wi的概率。

等号右边,P(Wi)就是先验概率,⽽p(X|Wi)则需要根据⾼斯概率密度函数(什么是⾼斯分布?)进⾏估计:然⽽,上⾯常见的⾼斯概率密度函数只是针对⼀维的参数X,对于⼤多数情况,输⼊参数会是多维的,多元⾼斯概率密度函数怎么求解呢?可以参考这篇⽂章:。

于是,我们得到针对⼆元变量的概率密度函数求解为:重点说明下,上⾯的参数,是多元变量间的相关性参数,设定值应该⼩于1。

⼆元变量相关系数求法:解决问题(python,numpy库⽀持):#-*-encoding:utf-8-*-import numpyimport mathdef importdata(filename = 'dataset1.txt') :'''导⼊训练集'''f = open(filename,'r')dataset = []arr = []for item in f :vars = item.split()dataset.append([float(vars[0]), float(vars[1]), vars[2].upper()])return datasetdef getParameters(dataset) :'''从训练集分别获取不同类别下的期望、⽅差、标准差、类别的先验概率以及变量间相关系数'''class1 = []class2 = []class_sum = []for item in dataset :class_sum.append([item[0],item[1]])if item[-1] == 'F' :class1.append([item[0],item[1]])if item[-1] == 'M' :class2.append([item[0],item[1]])class1 = numpy.array(class1)class2 = numpy.array(class2)class_total = numpy.array(class_sum)mean1 = numpy.mean(class1,axis=0)variance1 = numpy.var(class1,axis=0)stand_deviation1 = numpy.std(class1,axis=0)mean2 = numpy.mean(class2,axis=0)variance2 = numpy.var(class2,axis=0)stand_deviation2 = numpy.std(class2,axis=0)class_total = (len(class1) + len(class2)) * 1.0mean = numpy.mean(class_sum, axis=0)stand_deviation = numpy.std(class_sum, axis=0)new_arr = [ ((item[0] - mean[0]) * (item[1] - mean[1]) / stand_deviation[0] / stand_deviation[1]) for item in dataset]coefficient = numpy.mean(new_arr)return (mean1,mean2),(variance1,variance2),(stand_deviation1, stand_deviation2),(len(class1)/class_total,len(class2)/class_total),coefficient def GaussianFunc(mean, variance, stand_deviation, coefficient) :'''根据指定参数(期望、⽅差、标准差、多元向量间的相关性)⽣成⾼斯函数多元变量的⾼斯函数'''def func(X) :X = [X[0] - mean[0], X[1] - mean[1]]B = [[variance[0], coefficient * stand_deviation[0] * stand_deviation[1]],[coefficient * stand_deviation[0] * stand_deviation[1], variance[1]]] inv_B = numpy.linalg.inv(B)A = inv_BB_val = (1.0 - coefficient**2) * variance[0] * variance[1]tmp1 = 2*math.pi * (B_val ** 0.5)X = numpy.array([X])tmp2 = (-0.5) * numpy.dot(numpy.dot(X, A), X.T)res = 1.0 / tmp1 * (math.e ** tmp2)return resreturn funcdef f(X, funcs, class_ps, index) :'''贝叶斯概率计算函数'''tmp1 = funcs[index](X) * class_ps[index]tmp2 = funcs[0](X) * class_ps[0] + funcs[1](X) * class_ps[1]return tmp1 / tmp2def classify(X,funcs,class_ps,labels) :'''基于最⼩错误率的贝叶斯判别分类。

实验一图像的贝叶斯分类一、实验目...

实验一图像的贝叶斯分类一、实验目...

实验一图像的贝叶斯分类一、实验目的将模式识别方法与图像处理技术相结合,掌握利用最小错分概率贝叶斯分类器进行图像分类的基本方法,通过实验加深对基本概念的理解。

二、实验仪器设备及软件HP D538、MATLAB三、实验原理1 基本原理阈值化分割算法是计算机视觉中的常用算法,对灰度图象的阈值分割就是先确定一个处于图像灰度取值范围内的灰度阈值,然后将图像中每个像素的灰度值与这个阈值相比较。

并根据比较的结果将对应的像素划分为两类,灰度值大于阈值的像素划分为一类,小于阈值的划分为另一类,等于阈值的可任意划分到两类中的任何一类。

此过程中,确定阈值是分割的关键。

对一般的图像进行分割处理通常对图像的灰度分布有一定的假设,或者说是基于一定的图像模型。

最常用的模型可描述如下:假设图像由具有单峰灰度分布的目标和背景组成,处于目标和背景内部相邻像素间的灰度值是高度相关的,但处于目标和背景交界处两边的像素灰度值有较大差别,此时,图像的灰度直方图基本上可看作是由分别对应于目标和背景的两个单峰直方图混合构成。

而且这两个分布应大小接近,且均值足够远,方差足够小,这种情况下直方图呈现较明显的双峰。

类似地,如果图像中包含多个单峰灰度目标,则直方图可能呈现较明显的多峰。

上述图像模型只是理想情况,有时图像中目标和背景的灰度值有部分交错。

这时如用全局阈值进行分割必然会产生一定的误差。

分割误差包括将目标分为背景和将背景分为目标两大类。

实际应用中应尽量减小错误分割的概率,常用的一种方法为选取最优阈值。

这里所谓的最优阈值,就是指能使误分割概率最小的分割阈值。

图像的直方图可以看成是对灰度值概率分布密度函数的一种近似。

如一幅图像中只包含目标和背景两类灰度区域,那么直方图所代表的灰度值概率密度函数可以表示为目标和背景两类灰度值概率密度函数的加权和。

如果概率密度函数形式已知,就有可能计算出使目标和背景两类误分割概率最小的最优阈值。

假设目标与背景两类像素值均服从正态分布且混有加性高斯噪声,上述分类问题可以使用模式识别中的最小错分概率贝叶斯分类器来解决。

模式识别习题及答案

模式识别习题及答案

模式识别习题及答案第⼀章绪论1.什么是模式具体事物所具有的信息。

模式所指的不是事物本⾝,⽽是我们从事物中获得的___信息__。

2.模式识别的定义让计算机来判断事物。

3.模式识别系统主要由哪些部分组成数据获取—预处理—特征提取与选择—分类器设计/ 分类决策。

第⼆章贝叶斯决策理论1.最⼩错误率贝叶斯决策过程答:已知先验概率,类条件概率。

利⽤贝叶斯公式得到后验概率。

根据后验概率⼤⼩进⾏决策分析。

2.最⼩错误率贝叶斯分类器设计过程答:根据训练数据求出先验概率类条件概率分布利⽤贝叶斯公式得到后验概率如果输⼊待测样本X ,计算X 的后验概率根据后验概率⼤⼩进⾏分类决策分析。

3.最⼩错误率贝叶斯决策规则有哪⼏种常⽤的表⽰形式答:4.贝叶斯决策为什么称为最⼩错误率贝叶斯决策答:最⼩错误率Bayes 决策使得每个观测值下的条件错误率最⼩因⽽保证了(平均)错误率最⼩。

Bayes 决策是最优决策:即,能使决策错误率最⼩。

5.贝叶斯决策是由先验概率和(类条件概率)概率,推导(后验概率)概率,然后利⽤这个概率进⾏决策。

6.利⽤乘法法则和全概率公式证明贝叶斯公式答:∑====m j Aj p Aj B p B p A p A B p B p B A p AB p 1)()|()()()|()()|()(所以推出贝叶斯公式7.朴素贝叶斯⽅法的条件独⽴假设是(P(x| ωi) =P(x1, x2, …, xn | ωi)= P(x1| ωi) P(x2| ωi)… P(xn| ωi))8.怎样利⽤朴素贝叶斯⽅法获得各个属性的类条件概率分布答:假设各属性独⽴,P(x| ωi) =P(x1, x2, …, xn | ωi) = P(x1| ωi) P(x2| ωi)… P(xn| ωi)后验概率:P(ωi|x) = P(ωi) P(x1| ωi) P(x2| ωi)… P(xn| ωi)类别清晰的直接分类算,如果是数据连续的,假设属性服从正态分布,算出每个类的均值⽅差,最后得到类条件概率分布。

最小风险贝叶斯决策判决规则

最小风险贝叶斯决策判决规则

最小风险贝叶斯决策判决规则1. 走进最小风险的世界你有没有过这种经历?你站在一个十字路口,不知道该往哪边走。

左边可能有更美丽的风景,但也可能遇到堵车;右边看似平淡无奇,但也许会有惊喜。

决定究竟走哪边,真是让人抓狂。

其实,这就像是贝叶斯决策中的一个经典问题:如何在不确定的情况下做出最优选择?听起来复杂对吧?别担心,让我们一步步来解开这个谜团。

2. 贝叶斯决策规则大揭秘2.1 贝叶斯的魔法贝叶斯决策规则的核心思想就是最小化风险。

我们先得了解什么是风险。

想象一下,你在赌场里,拿着一把筹码,面前有一副扑克牌。

你能选择赌一手,但不确定对手的牌有多强。

你知道,如果你选择错了,可能会输钱;如果选择对了,可能会赢大钱。

最小风险的意思就是在这张扑克牌游戏中,怎么才能让你输钱的概率最小,也就是风险最小。

2.2 如何选择最小风险的路径回到我们的十字路口问题。

假如你想用贝叶斯决策规则来决定走哪条路,首先,你需要知道每条路的可能结果和这些结果的概率。

简单来说,你得了解每条路可能带来的好事和坏事的概率。

比如,左边的路你知道可能会遇到拥堵,概率是50%,而右边的路,你知道它的拥堵概率只有20%。

这时候,你就需要计算走每条路的期望风险。

期望风险就是对所有可能结果的风险进行加权平均。

简单点说,就是把每条路的所有可能坏结果的风险加起来,看哪个路的综合风险最小。

听起来是不是有点像在做数学题?别担心,做这种选择题其实就像是你在超市挑选打折商品,挑那个最划算的就对了。

3. 风险最小化的妙招3.1 把风险控制在合理范围内在现实生活中,我们面临的风险多得数不过来,比如投资股市、选择工作、甚至是买房子。

最小风险贝叶斯决策规则就像是你手里的一个万能工具,可以帮助你在这些选择中做出更理智的决定。

想象一下,你要投资一个新项目。

你可以用贝叶斯方法来估算这个项目的成功概率和可能带来的损失。

你计算出每种可能结果的风险,然后把它们加权,看看哪种投资最能让你的钱包安稳。

贝叶斯决策(1)

贝叶斯决策(1)
因此,P(e)=1-P(c)
贝叶斯决策(1)
基于最小风险的贝叶斯决策
上述分类基于错误率最小化的所得到规则,但有
时要考虑比错误率更广泛的概念-----风险。风险与
损失密切相连。
比如对细胞分类固然尽可能正确判断,但判错了 的后果将怎样?
正常异常:精神负担; 异常正常:失去进一步治疗的机会。
显然这两种不同的错误判断所造成损失的严重程 度是有显著差别的,后者的损失比前者更严重。
v 决策:是从样本空间S,到决策空间Θ的一个 映射,表示为:D: S -> Θ。
v 评价决策有多种标准,对于同一个问题,采 用不同的标准会得到不同意义下“最优”的 决策。
贝叶斯决策(1)
Bayes决策常用的准则
v 主要有:
基于最小错误率的贝叶斯决策
基于最小风险的贝叶斯决策
在限定一类错误率条件下使另一类错误率为最小的 两类别决策(Neyman—Pearson决策)
贝叶斯决策(1)
2. 利用后验概率P(j/x)与损失函数,计算出 每个条件期望风险R(i/x)(一共有a个决策)。
3. 在a个R(i/x)相互比较,找出最小的决策k, 完成最小风险贝叶斯决策。
贝叶斯决策(1)
❖ 注意:最小风险贝叶斯决策除了先验概
率 P(j) 和 类 条 件 概 率 密 度 p(x/j) 外 , 还需要有合适的损失函数(j,j)。
1、先验形式
贝叶斯决策(1)
2、似然比 似然比
似然比阈值
由先验形式易知: 即:
贝叶斯决策(1)
3、似然对数
贝叶斯决策(1)
❖例:某地区细胞识别; P(ω1)=0.9, P(ω2)=0.1 未知 细胞x,先从类条件概率密度分布曲线上查到: P(x/ω 1)=0.2, P(x/ω 2)=0.4 问该细胞属于正常细胞还是异常细胞。 解:先计算后验概率:

机器学习实验2-贝叶斯分类器设计

机器学习实验2-贝叶斯分类器设计

一、实验意义及目的1、掌握贝叶斯判别定理2、能利用matlab编程实现贝叶斯分类器设计3、熟悉基于matlab的算法处理函数,并能够利用算法解决简单问题二、算法原理贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。

其中P(A|B)是在B发生的情况下A发生的可能性公式为:贝叶斯法则:当分析样本大到接近总体数时,样本中事件发生的概率将接近于总体中事件发生的概率。

内容:(1)两类w服从正态分布,设计基于最小错误率的贝叶斯分类器,对数据进行分类。

(2)使用matlab进行Bayes判别的相关函数,实现上述要求。

(3)针对(1)中的数据,自由给出损失表,并对数据实现基于最小风险的贝叶斯分类。

三、实验内容(1)尝两类w服从正态分布,设计基于最小错误率的贝叶斯分类器,对数据进行分类。

代码清单:clc;clear all;meas=[0 0;2 0;2 2;0 2;4 4;6 4;6 6;4 6];%8x2矩阵这里一行一行2个特征[N n]=size(meas);species={'one';'one';'one';'one';'two';'two';'two';'two'};%这里也对应一行一行的sta=tabulate(species)[c k]=size(sta);priorp=zeros(c,1);for i=1:cpriorp(i)=cell2mat(sta(i,k))/100;%计算概率end%cell2mat(sta(:,2:3)) 提取数组中的数据本来sta数组中数据为矩阵不能直接用%估算类条件概率参数cpmean=zeros(c,n);cpcov=zeros(n,n,c);for i=1:ccpmean(i,:)=mean(meas(strmatch(char(sta(i,1)),species,'exact'),:));%exact精确查找cpmean放的每一类的均值点几类就几行cpcov(:,:,i)=cov(meas(strmatch(char(sta(i,1)),species,'exact'),:))*(N*priorp(i)-1)/(N*priorp(i));end%求(3 1)的后验概率x=[3 1];postp=zeros(c,1);for i=1:cpostp(i)=priorp(i)*exp(-(x-cpmean(i,:))*inv(cpcov(:,:,i))*(x-cpmean(i,:))'/2)/((2*pi)^(n/2)*det(cpcov(:,:,i)));endif postp(1)>postp(2)disp('第一类');elsedisp('第二类');end运行结果:(2)使用matlab进行Bayes判别的相关函数,实现上述要求。

贝叶斯决策理论

贝叶斯决策理论
两类分类器的功能:计算判别函数,再根据计算 结果的符号将 x 分类
g(x)
判别计算
阈值单元
决策
贝叶斯决策理论
2.3 正态分布时的统计决策
重点分析正态分布情况下统计决策的原因是: ①正态分布在物理上是合理的、广泛的 ②正态分布 数学表达上简捷,如一维情况下只
有均值和方差两个参数,因而易于分析
贝叶斯决策理论
贝叶斯决策理论
目标:所采取的一系列决策行动应该使期 望风险达到最小
手段:如果在采取每一个决策时,都使其 条件风险最小,则对所有的 x 作决策时, 其期望风险也必然达到最小
决策:最小风险Bayes决策
贝叶斯决策理论
最小风险Bayes决策规则:
其中
采取决策
贝叶斯决策理论
最小风险Bayes决策的步骤
2.2.6 分类器设计
要点: • 判别函数 • 决策面(分类面) • 分类器设计
贝叶斯决策理论
决策面(分类面)
对于 c 类分类问题,按照决策规则可以把 d 维特 征空间分成 c 个决策域,我们将划分决策域的 边界面称为决策面(分类面)
贝叶斯决策理论
判别函数
用于表达决策规则的某些函数,则称为判别 函数
E{ xi xj } = E{ xi } E{ xj }
贝叶斯决策理论
相互独立
成立
成立?? 多元正态分布的任
不相关
意两个分量成立!
贝叶斯决策理论
说明:正态分布中不相关意味着协方差矩阵
是对角矩阵
并且有
贝叶斯决策理论
④边缘分布(对变量进行积分)和条件分布(固定变 量)的正态性
⑤线性变换的正态性
y=Ax A为线性变换的非奇异矩阵。若 x 为正态分布,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、 实验目的1. 掌握密度函数监督参数估计方法;2. 掌握贝叶斯最小错误概率分类器设计方法。

二、 实验原理贝叶斯分类器是各种分类器中分类错误概率最小或者在预先给定代价的情况下平均风险最小的分类器。

它的设计方法是一种最基本的统计分类方法。

其分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。

对于两类分类问题,已知先验概率P (ω1)和 P (ω2),以及类别标号 ω1和ω2,得到相应的类条件概率密度P (x |ω1), P (x|ω2), 由贝叶斯公式:计算得到条件概率P (ωi |x) (i=1,2),又称为后验概率。

如果:P (ωi |x)=max P (ωi |x),x ∈ ωi或者:P (ω1|x) > P (ω2|x),x ∈ ω1P (ω2|x) > P (ω1|x),x ∈ ω2三、 实验内容对于一个两类分类问题,设两类的先验概率相同(12()()P P ωω=),两类的类条件概率密度函数服从二维正态分布,即111(|)~(,)P N ωx μΣ 222(|)~(,)P N ωx μΣ其中,1[3,6]T =μ,10.5002⎡⎤=⎢⎥⎣⎦Σ,1[3,2]T =-μ,12002⎡⎤=⎢⎥⎣⎦Σ。

1.生成两类模式随机样本点并进行分类;2.设计最大似然估计算法对两类类条件概率密度函数进行估计;3.用2中估计的类条件概率密度函数设计最小错误概率贝叶斯分类器,实现对两类样本的分类。

四、实验步骤1.产生训练样本根据实验提供的先验均值向量和协方差矩阵,利用编写的multivrandn函数构造二维正态分布,分别产生N=500及N=1000个样本,所得结果如图1.1及1.2所示。

图1.1两类训练样本(N=500)图1.2两类训练样本(N=1000)2. 参数估计对产生的样本进行最大似然估计,估计出样本二维正态分布的均值向量和协方差矩阵。

其中,。

对于样本N=500估计结果如下:μ1=[3.0575 6.0294],μ2=[2.9404 −1.9881],∑1=[0.47340.00520.0052 2.1152],∑2=[2.1241−0.1233−0.1233 2.0153]对于样本N=1000估计结果如下:μ1=[3.0072 5.9923],μ2=[2.9869 −1.9336],∑1=[0.54990.04880.0488 2.0033],∑2=[1.98410.05250.0525 1.8102]3. 分类器设计根据上面得出的参数估计结果和贝叶斯最大后验概率判决准则设计分类器。

当,则。

设计分类函数,对样本进行分类判决。

例如对类别1中的第一个样本进行分类,结果如图2所示:图2.分类结果对两组样本进行分类,运用matlab 理论分别计算出N=500及N=1000个样本的分界线,结果如图3.1及3.2所示:图3.1两组样本分类结果(N=500)图3.2两组样本分类结果(N=1000)五、实验分析1.在产生样本的过程中,利用二维正态分布函数函数产生大量样本,经过均值和协方差矩阵的估计后可以看出:①随着样本数量N的增加,估计出的均值μ更接近于真实值;②方差相对变化较大,即样本数据的波动较大,不确定性越大。

故样本数越多,分类器将两类样本分离的会更加清楚,分类器的性能越好。

2.参数估计完全按照最大似然估计过程,结果如上所示,由于样本产生较好且数量较大,估计值也比较准确,从反面验证了参数估计过程的正确性。

3.根据最大后验概率判决准则,利用估计出的参数设计分类器,两组样本分类结果如图3.1及3.2所示,可以看出:①N=500和N=1000时均有个别误差,大部分样本分类正确;②随着样本数的增加,分类错误的样本数越少,即错误率越小,分类器的性能越好。

4.添加干扰,检测实验结果在产生样本时,添加均匀分布的一个干扰项,再次验证参数估计和分类结果如下:μ1=[8.5751 11.6213],μ2=[8.4160 3.7158],∑1=[7.4464−0.8548−0.85488.9503],∑2=[9.1159 1.24931.24938.8853]可以看出,得到的均值及方差估计值与真实值差距较大。

分类结果如图4所示:图4样本分类结果(有干扰)从分类结果可知,样本混淆现象严重,分类错误的样本数较多。

因此,在有干扰的情况下该分类器的训练误差较大,错误率高,性能较差。

六、程序代码本次实验程序代码共分为三部分:主程序及两个函数程序。

1.主程序如下:①N=500clear all;close all;clc;d=2; %二维pw1=0.5;pw2=0.5;u1=[3,6];u2=[3,-2]; %均值向量sigma1=[0.5,0;0,2]; %协方差矩阵sigma2=[2,0;0,2];N=500; %训练样本数samples1=multivrandn(u1,sigma1,N);samples2=multivrandn(u2,sigma2,N);figure(1);for i=1:Nplot(samples1(i,1),samples1(i,2),'b*');hold on;plot(samples2(i,1),samples2(i,2),'ro');hold on;endlegend('训练样本1','训练样本2');hold on;u_1=mean(samples1,1); %估计均值u_2=mean(samples2,1);sig1=zeros(2,2); %协方差矩阵的估计for i=1:Ntemp=(samples1(i,:)-u_1)'*(samples1(i,:)-u_1);sig1=sig1+temp;endsig1=sig1/N; %估计协方差矩阵sig2=zeros(2,2);for i=1:Ntemp=(samples2(i,:)-u_2)'*(samples2(i,:)-u_2);sig2=sig2+temp;endsig2=sig2/N;%% 画出实际分类线syms x1 x2f1=(1/(sqrt(2*pi).^d)./det(sig1).*exp(-1/2*([x1 x2]-u_1)*inv(sig1)*([x1 x2]-u_1)')); f2=(1/(sqrt(2*pi).^d)./det(sig2).*exp(-1/2*([x1 x2]-u_2)*inv(sig2)*([x1 x2]-u_2)')); f3=f2/f1-pw1/pw2;ezplot(f3,[-4,10]);hold on;text(-2,4,'分界线');②N=1000clear all;close all;clc;d=2; %二维pw1=0.5;pw2=0.5;u1=[3,6];u2=[3,-2]; %均值向量sigma1=[0.5,0;0,2]; %协方差矩阵sigma2=[2,0;0,2];N=1000; %训练样本数samples1=multivrandn(u1,sigma1,N);samples2=multivrandn(u2,sigma2,N);figure(1);for i=1:Nplot(samples1(i,1),samples1(i,2),'b*');hold on;plot(samples2(i,1),samples2(i,2),'ro');hold on;endlegend('训练样本1','训练样本2');hold on;u_1=mean(samples1,1); %估计均值u_2=mean(samples2,1);sig1=zeros(2,2); %协方差矩阵的估计for i=1:Ntemp=(samples1(i,:)-u_1)'*(samples1(i,:)-u_1);sig1=sig1+temp;endsig1=sig1/N; %估计协方差矩阵sig2=zeros(2,2);for i=1:Ntemp=(samples2(i,:)-u_2)'*(samples2(i,:)-u_2);sig2=sig2+temp;endsig2=sig2/N;%% 画出实际分类线syms x1 x2f1=(1/(sqrt(2*pi).^d)./det(sig1).*exp(-1/2*([x1 x2]-u_1)*inv(sig1)*([x1 x2]-u_1)'));f2=(1/(sqrt(2*pi).^d)./det(sig2).*exp(-1/2*([x1 x2]-u_2)*inv(sig2)*([x1 x2]-u_2)'));f3=f2/f1-pw1/pw2;ezplot(f3,[-4,10]);hold on;text(-2,4,'分界线');2.二维正态分布样本产生函数multivrandnfunction Y = multivrandn(u,R,M)% this function draws M samples from N(u,R)% where u is the mean vector(row) and R is the covariance matrix which must be positive definite n = length(u); % get the dimensionC = chol(R); % perform cholesky decomp R = C'CX = randn(M,n); % draw M samples from N(0,I)Z=unifrnd(1,10,M,n);Y = X*C +Z+ ones(M,1)*u;end3.分类判决函数分类fenlei( samples1(1,:),pw1,pw2,u_1,u_2,sig1,sig2,d )function fenlei(samples1(1,:),pw1,pw2,u_1,u_2,sig1,sig2,d )%UNTITLED2 Summary of this function goes here% Detailed explanation goes heref1=(1/(sqrt(2*pi).^d)./det(sig1).*exp(-1/2*(x-u_1)*inv(sig1)*(x-u_1)')); f2=(1/(sqrt(2*pi).^d)./det(sig2).*exp(-1/2*(x-u_2)*inv(sig2)*(x-u_2)')); if (f1/f2)>(pw2/pw1)disp('样本属于第一类');elsedisp('样本属于第二类');endend。

相关文档
最新文档