实验三 最小错误率的贝叶斯分类

实验三 最小错误率的贝叶斯分类

一、实验题目
利用贝叶斯后验概率确定分类:
在这里插入图片描述
设有19人进行体检,结果如下表。但事后发现4人忘了写性别,试问,这4人是男是女?
在这里插入图片描述
二、实验代码

clc;clear;
 male_data = importdata('male.txt');
 female_data = importdata('female.txt');
 male_avr = mean(male_data);
 female_avr = mean(female_data);
 pw1_1 = 10/15; pw2_1 = 1-pw1_1;
 % 协方差矩阵
juzhen_male = cov(male_data); juzhen_male_det = det(juzhen_male);
 juzhen_male_ni = juzhen_male^(-1);
 juzhen_female = cov(female_data);juzhen_female_det = det(juzhen_female);
 juzhen_female_ni = juzhen_female^(-1);pw1_1 = 10/15; pw2_1 = 1-pw1_1;%根据样本的数据算出来的%读test2
 test2 = fopen('test2.txt');
 T2=textscan(test2,'%d%d%s','Delimiter',{':',';'});
 fclose(test2);
 test2_H=double([T2{1,1}]);
 test2_W=double([T2{1,2}]);
 man_woman = char([T2{1,3}]);
 hei_wei = [test2_H,test2_W];
 PXk_W1 = zeros(1,300);
 PXk_W2 = zeros(1,300);
 error =0;num_woman = 0;num_man  = 0;
 % 红色代表女的,蓝色代表男的  如果判断错了,弄成黑色星号
figure(1);
 for i = 1:300
     if(man_woman(i)=='F')
         num_woman = num_woman +1;
         plot(test2_H(i),test2_W(i),'r.');
     else
         num_man = num_man +1;
         plot(test2_H(i),test2_W(i),'b.');
     end
     hold on;
     PXk_W1(i) = 1/sqrt(4*pi*pi*juzhen_male_det)*exp(-0.5*(hei_wei(i,:)-male_avr)*juzhen_male_ni* (hei_wei(i,:)-male_avr)' );
     PXk_W2(i) = 1/sqrt(4*pi*pi*juzhen_female_det)*exp(-0.5*(hei_wei(i,:)-female_avr)*juzhen_female_ni* (hei_wei(i,:)-female_avr)' );
     PW1_Xi = PXk_W1(i)*pw2_1;
     PW2_Xi = PXk_W2(i)*pw1_1;
     if(PW1_Xi>PW2_Xi)
         fprintf('第 %d个是男的\n',i);
         if(man_woman(i)=='F')
             error = error+1;
             plot(test2_H(i),test2_W(i),'k*');
         end
     else
         fprintf('第 %d个是女的\n',i);
         if(man_woman(i)=='M')
             error= error+1;
             plot(test2_H(i),test2_W(i),'k*');
         end
     end
 end
 fprintf('共测试了%d个数据\r男性为%d 女性为%d\r',length(man_woman),num_man,num_woman)
 fprintf('           test2\n  ')
 fprintf('总  数  %5d\n  ',length(man_woman))
 fprintf('男  性  %5d\n  ',num_man)
 fprintf('女  性  %5d\n  ',num_woman)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值