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

一、实验内容
用 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:35for j=1:3gender{i,j}=fscanf(fid,'%s',[1,1]);%以字符方式读取每个值,遇空格完成每个值的读取%gender{i,j}=str2double(gender{i,j});%将文本格式转为数字格式endA=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 1tline = fgetl(fid);  %从文件中读取一行数据,并去掉行末的换行符。  if ~ischar(tline) %如果tline不指向字符变量了,就结束此前的循环breakendheight_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:35A=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==Berror = error +1;fprintf('把第 %d个男生判断为女生了\n',i);end
else
%     fprintf('第 %d个是女的\n',i);num_woman = num_woman +1;B=char('m');if A==Berror = 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)

2.运行结果
①测试样本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%

②测试样本二:共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,操作更方便哦

模式识别实验报告--贝叶斯分类器设计相关推荐

  1. 模式识别实验matlab报告,西安交大模式识别实验报告.doc

    西安交大模式识别实验报告 西安交大模式识别实验报告 模式识别实验报告 实 验 报 告 实验课程名称: 模式识别 姓名: 王宇 班级:号: 2011081325 注:1.每个实验中各项成绩按照5分制评定 ...

  2. 用matlab设计滤波器实验报告,数字信号出来实验报告--matlab滤波器设计

    数字信号出来实验报告--matlab滤波器设计 广 西 工 学 院 实 验 报 告 用 纸 实验名称 IIR数字滤波器的设计 实验成绩 指导老师 陈艳 系(院) 计算机工程系 班级 学号 学生姓名 一 ...

  3. 计算机综合布线实验报告,综合布线设计实验报告.doc

    综合布线设计实验报告.doc 桂林电子科技大学综合布线实验报告实验名称布线工程图设计制作实验辅导员意见电子信息工程系通信技术专业班第2实验小组作者张三学号091同作者辅导员实验日期2011年5月31日 ...

  4. 数据挖掘实验:贝叶斯分类器算法的实现

    一.实验原理 贝叶斯分类器是各种分类器中分类错误概率最小或者在预先给定代价的情况下平均风险最小的分类器.它的设计方法是一种最基本的统计分类方法.其分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其 ...

  5. java课程设计实验报告_javaweb课程设计实验报告

    javaweb课程设计实验报告 1 湖南科技大学计算机科学与工程学院 WEB 编程课程设计报告 题目: 网上购物商店 学 号:1111111111 姓 名: 1 指导老师: 1 完成时间: 11111 ...

  6. 计算机网络设计校园网实验报告,计算机网络课程设计实验报告---校园网网络构建方案设计和实现...

    计算机网络课程设计实验报告---校园网网络构建方案设计和实现 计算机网络课程设计计算机网络课程设计 校园网网络构建方案设计和实现 一一. .实验实验题目题目 校园网网络构建方案设计与实现 二二. .实 ...

  7. c语言单源最短路径问题实验报告,数据结构课程设计最短路径问题实验报告-20210320182652.docx-原创力文档...

    IMB standardization office[IMB 5AB- IMBK 08- IMB 2C] IMB standardization office[IMB 5AB- IMBK 08- IM ...

  8. java课程设计实验报告_java课程设计实验报告样例

    分数_______ 嘉应学院计算机学院实验报告 课程名称:面向对象程序设计课程设计(Java) 实验名称:"动物换位"程序设计 指导教师:肖振球 实验地点:_居家学习_实验时间:2 ...

  9. c语言综合合计实验报告,C语言设计实验报告(第一次)

    C程序设计实验报告 实验项目:PPT实验:1.3.2:1.3.3:1.3.4:2.3.1:2.3.2 姓名:  龚政  实验地点:家   实验时间:2020.02.25 一.实验目的与要求 1.实验目 ...

  10. 实验五 贝叶斯分类器(模式识别与机器学习)

    目录 实验一  离散型数据的朴素贝叶斯分类 实验步骤: NBtrain.m NBtest.m main.m 实验二  连续型数据的朴素贝叶斯分类 实验步骤: naiveBayestrain.m nav ...

最新文章

  1. unbuntu下安装flash插件
  2. Android中service应用
  3. php 反序列化工具 phpggc 简介
  4. 【论文相关】盘点AAAI2020中的四篇推荐系统好文
  5. JS判断上传文件类型
  6. 什么是用户账户?-联科教育
  7. 第五十五期:区块链将在2020年实现的重大改变
  8. LeetCode20——Valid Parentheses(括号匹配问题,使用栈的知识)
  9. 解决 screen 连接不上,提示“There is no screen to be resumed matching 18352.” 的问题
  10. 封神:人在朝歌,皇宫签到六十年
  11. 毕达哥拉斯定理/勾股定理
  12. linux内核堆栈空间设置,linux内核堆栈设置过程
  13. python爬取千图网图片(出现HTTP Error 403怎么解决)
  14. vue实现icon刷新动画
  15. Leetcode| 216. 组合总和III、17. 电话号码的字母组合 Day25
  16. mysql 大量写入 优化_MYSQL大批量写入之性能优化
  17. 程序员的高逼格头像——自制八爪鱼少年
  18. 6本豆瓣高分书,国内外的技术大牛都在看!
  19. web服务器项目常见面试题目(C++)
  20. Neo4j安装与配置

热门文章

  1. Android 自动接听来电
  2. VARCHART XGantt 甘特图中的数据表介绍
  3. 计算机中汉字的顺序用什么牌,最常用汉字频率排序
  4. python3-matplotlib手册
  5. 世界顶级图表-华尔街日报配色方案详解
  6. Word中的Visio图直接转换为图片
  7. JavaEE Day10 JavaScript高级
  8. 微信小程序车牌号输入组件(虚拟键盘)
  9. python把经纬度生成shp,利用Python实现Shp格式向GeoJSON的转换方法
  10. 知网被引第一、第二的论文,都出自这位双一流大学教授