当前位置:   article > 正文

模式识别实验报告--贝叶斯分类器设计_基于身高体重数据直接设计分类器实验

基于身高体重数据直接设计分类器实验

模式识别实验报告–贝叶斯分类器设计

一、实验内容
用 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');
female_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列的所有元素,是一个列向量。
figure(1);subplot(211);
plot(X ,male_norm,'r-','LineWidth',3 );title('男生身高')
female_norm = normpdf(X,female_avr(:,1),female_v(:,1));
subplot(212);
plot(X ,female_norm,'r-','LineWidth',3 );title('女生身高')

 
%读入测试数据并显示
fid = fopen('D:\Desktop\模式识别\shiyanyi\test1.txt','r','n','UTF-8');
gender=cell(35,3);
for i=1:35
    for j=1:3
        gender{i,j}=fscanf(fid,'%s',[1,1]);%以字符方式读取每个值,遇空格完成每个值的读取
        %gender{i,j}=str2double(gender{i,j});%将文本格式转为数字格式
    end
     A=char(gender(i,3));
     fprintf('%c\n',A);
end
fclose (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);%35行1列的0矩阵
%weight_test1 = zeros(35,1);
 
 
fid = fopen('D:\Desktop\模式识别\shiyanyi\test1.txt','r','n','UTF-8');
i=1;
while 1
     tline = fgetl(fid);  %从文件中读取一行数据,并去掉行末的换行符。  
    if ~ischar(tline) %如果tline不指向字符变量了,就结束此前的循环
        break
    end
    height_test1(i) = str2double(tline(:,1))*100+str2double(tline(:,2)).*10+str2double(tline(:,3));%求身高的类条件概率
    %weight_test1(i) = str2double(tline(:,5))*10+str2double(tline(:,6));%str2double是一种函数,其功能是把字符串转换数值
    i=i+1;
end
fclose(fid);
%根据贝叶斯公式,求后验概率p(w/X)
PXi_W1 = 1/sqrt(2*pi*male_v(1))*exp(-(height_test1-male_avr(1)).^2/2/male_v(1));
PXi_W2 = 1/sqrt(2*pi*female_v(1))*exp(-(height_test1-female_avr(1)).^2/2/female_v(1));
PW1_Xi = PXi_W1.*pw2_1;
PW2_Xi = PXi_W2.*pw1_1;
 
 %对测试样本进行判断

A=0;error =0;num_woman = 0;num_man  = 0;
for i = 1:35
 A=char(gender(i,3));
if PW1_Xi(i)>PW2_Xi(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);
    end
else
%     fprintf('第 %d个是女的\n',i);
    num_woman = num_woman +1;
    B=char('m');
    if A==B
        error = error +1;
        fprintf('把第 %d个女生判断为男生了\n',i);
    end
end
end
fprintf('共测试了%d个数据,测试结果为:\r男性人数为%d 女性人数为%d\r',num_man+num_woman,num_man,num_woman)
fprintf('错误率  %0.2f%%\n ',error/(num_man+num_woman)*100)
fprintf('错误数为%d\n',error)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89

2.运行结果
①测试样本1:共20位男生、15位女生。
在这里插入图片描述

                       (男女身高正态分布图)
  • 1

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%

②测试样本二:共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/1BVvTW93-70XGx5Gpkk-ZIA
提取码:6666
复制这段内容后打开百度网盘手机App,操作更方便哦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/354628
推荐阅读
相关标签
  

闽ICP备14008679号