首页 > 编程知识 正文

基于贝叶斯决策的像素点分类,贝叶斯分类器设计

时间:2023-05-06 08:51:28 阅读:151474 作者:449

模式识别实验报告贝叶斯分类器设计一、实验内容

以FAMALE.TXT和MALE.TXT数据作为训练样本集建立Bayes分类器,并利用测试样本数据对该分类器进行测试。 具体而言,采用单一特征进行实验。 假设身高与体重不相关,(a )以身高或(b )体重数据为特征,贝叶斯方法在正态分布假设下估计概率密度函数,建立最小误码率Bayes分类器。 在设计分类器时可以使用不同的先验概率进行实验,考察先验概率的不同对误码率的影响。

所需的数据文件:

培训样本集:

FAMALE.TXT 50名女性的身高、体重数据

MALE.TXT 50名男生的身高、体重数据

测试样品集:

test1.txt 35位同学的身高、体重、性别数据(女生15人,男生20人)。

test2.txt 300名同学的身高、体重、性别数据(女生50人,男生250人) )。

1、源代码

%与身高、体重无关,以身高为特征的clc; clear all; %均值和方差及正态分布图male _ data=importdata (d : (desktop )模式识别(Shiyanyi(male.txt ) ); fmale _ data=importdata (d : (desktop )模式识别(Shiyanyi(female.txt ) ); male_AVR=mean(male_data; 每%列的平均值female_AVR=mean(female_data ); male_v=var(male_data; 按%列分布female_v=var(female_data ); X=0:300; male_norm=normpdf(x,male _ AVR (:1 ),male_v ) :1 ); %求正态分布,(:1 )表示第一列的所有元素,是一个列向量。 图形(1); 辅助(211; plot(x,male_norm,' r-',' LineWidth ',3 ); title (男子身高) ) female_norm=normpdf(X ) x,female_AVR ) 3360,1 ),female_v ) 3360,1 ) ); 辅助(212; plot(x,female_norm,' r-',' LineWidth ',3 ); title (女子身高) ) %读取测试数据,FID=fopen(d: ) desktop )模式识别(Shiyanyi ) test1.txt )、) r )、(n )、) UTF-8 ) fori=1:35 forj=1:3 gender { I,j}=FSCANF(FID,' %s ',[ 1,1 ] ); %用文字读取各值,如果有空间就完成各值的读取%gender{i,j}=str2double(gender{I,j} ); %文本格式为数字格式enda=char(gender(I,3 ) ); fprintf(%c(n ),a ); endfclose(FID; disp(gender; %计算%先验概率PW1,PW2 pw1_1=15/35; pw2_1=1-pw1_1; %pw1_2=50/250; pw2_2=1-pw1_1; 阅读% test height _ test1=zeros (35,1 ); 5行1列的0矩阵% weight _ test1=zeros (35,1 ); FID=fopen(d:(desktop )模式识别(Shiyanyi ) test1.txt )、r )、n )、UTF-8 ); i=1; while1tline=fgetl(FID; 从%文件读取一行数据,并删除行尾的换行符。 如果if~ischar(tline ) tline不再指向字符变量,则之前的循环breakendheight_test1(I )=str2double(tline ) 3360,1 ) 100str2double %str2double是具有将字符串转换为数值i=i 1的功能的函数。 endfclose(FID; 从%贝叶斯公式计算后验概率p(w/x ) PXI_w1=1/sqrt )2*pi*male_v )1) ) exp(-(height_test1-male_avr ) ). PW1_Xi=PXi_W1.*pw2_1; PW2_Xi=PXi_W2.*pw1_1; 判断%测试样品的A=0; 错误=0; num_woman=0; num_man=0; forI=1:35a=char(gender(I,3 ); ifpw1_Xi(I ) PW2_Xi(i ) I ) % fprintf ) '第%d个是男人n ',I ); num_man=num_man 1; b=char(f ); %a=char(gender(I,3 ); if A==B error=error 1; fprintf ()已将第%d个男性确定为女性(n ),I ); endelse% fprintf ('第%d个是女性n ',I ); num_woman=num_woman 1; b=char(m ); if A==B error=error 1; fprintf ()判断第%d个女孩为男性(n ),I ); endendendendfprintf (合计)对d个数据进行了测试,结果为(r男性数量(d女性数量) d ) r )、num_man num_woman、num_man、num_woman ) fprintttf

测试样品1 :男20名,女15名。

(男女身高正态分布图) pw1 pw2判定错误个数错误率

5/35 30/35 4 11.43%

10/35 25/35 3 8.57%

15/35 20/35 2 5.71%

20/35 15/35 3 8.57%

25/35 10/35 4 11.43%

测试样本2 :男性250名,女性50名

Text2测试结果:

pw1 pw2判定错误个数错误率

10/300 290/300 24 8%

30/300 270/300 17 5.67%

50/300 250/300 15 5%

80/300 220/300 20 6.67%

150/300 150/300 27 9%

数据集和matlab程序文件

链接: https://pan.Baidu.com/s/1 bvv tw93-70 xgx 5gp kk-tz dlm

抽屉代码: 6666

复制此内容后,打开百度网盘的手机APP,操作起来会更方便哦

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。