没有合适的资源?快使用搜索试试~ 我知道了~
首页基于matlab的贝叶斯分类器设计.docx
资源详情
资源评论
资源推荐
第 1 页 共 20 页
实验一:身高和体重为独立变量的贝叶斯决策
实验二:身高和体重为相关变量的贝叶斯决策
需要用到的数据文件:
FAMALE.TXT 50 个女生的身高、体重数据
MALE.TXT 50 个男生的身高、体重数据
----- 训练样本集
test1.txt 35 个同学的身高、体重、性别数据(15 个女生、20 个男生)
test2.txt 300 个同学的身高、体重、性别数据(50 个女生、250 个男生)
----- 测试样本集
基本要求:
用 FAMALE.TXT 和 MALE.TXT 的数据作为训练样本集,建立 Bayes 分类器,用测试
样本数据对该分类器进行测试。调整特征、分类器等方面的一些因素,考察它们对分类器
性能的影响,从而加深对所学内容的理解和感性认识。
具体做法:
应用单个特征进行实验:以(a)身高或者(b)体重数据作为特征,在正态分布假设
下利用最大似然法或者贝叶斯估计法估计分布密度参数,建立最小错误率 Bayes 分类器,
写出得到的决策规则,将该分类器应用到测试样本,考察测试错误情况。在分类器设计时
可以考察采用不同先验概率(如 0.5 对 0.5, 0.75 对 0.25, 0.9 对 0.1 等)进行实验,考察对决
策规则和错误率的影响。
应用两个特征进行实验:同时采用身高和体重数据作为特征,分别假设二者相关或不
相关,在正态分布假设下估计概率密度,建立最小错误率 Bayes 分类器,写出得到的决策
规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。比较相关假设和不相关
假设下结果的差异。在分类器设计时可以考察采用不同先验概率(如 0.5 vs. 0.5, 0.75 vs.
0.25, 0.9 vs. 0.1 等)进行实验,考察对决策和错误率的影响。
自行给出一个决策表,采用最小风险的 Bayes 决策重复上面的某个或全部实验。
第 2 页 共 20 页
实施方法一(应用单个特征进行试验):
以(a)身高或者(b)体重数据作为特征,在正态分布假设下利用贝叶斯估计法估计
分布密度参数,建立最小错误率 Bayes 分类器。
1:正态分布的监督参数估计
根据训练样本的数据分别求得本实验符合的各类的正态分布的参数估计值:
、 ,从而求得符合要求的正态
分布函数 和 。
2:设定女生和男生的先验概率 (这两个值是人为设定的)的
值,满足 的条件。
3: 将 训 练 数 据 带 入 两 分 布 函 数 , 分 别 求 得 类 条 件 概 率 密 度
。其中 i 为第 i 个训练数据, ,
为第 个类别。
4:根据贝叶斯公式: 求出训练数据对每个
类别的后验概率 。其中,L 为总的类别(这里 L=2), 为第 个类。
5:分类。根据:若 ,则 ,反之 。
实验 1 结果:
分别 test1 和 test2 共 335 个测试样本。以身高或体重为特征实验结果如
下:
以身高为特征的实验结果
Test1 总人数
35
Test2 总人数
300
第 3 页 共 20 页
Test1 男生测试人数
23
Test2 男生测试人数
247
Test1 女生测试人数
12
Test2 女生测试人数
53
错误率
0.0857
错误率
0.0633
以体重为特征的实验结果:
Test1 总人数
35
Test2 总人数
300
Test1 男生测试人数
35
Test2 男生测试人数
300
Test1 女生测试人数
0
Test2 女生测试人数
0
错误率
0.4286
错误率
0.1667
结论:从上表可以看出,应用单个特征进行试验时,以身高为特征的错误
率比以体重为特征的错误率要低,因此,以身高为特征进行试验更好.
具体实现程序如下:
%% 应用单个特征(身高)
clear all; clc;
%读入男生的身高、体重
%用样本数据取均值和方差
male = importdata('MALE.TXT');
%读入女生的身高、体重
female = importdata('FEMALE.TXT');
% %先验概率
p_w1 = 0.75; %pw1 表示男生的先验概率
p_w2 = 0.25; %pw2 表示女生的先验概率
% %均值
male_num = size(male,1);
female_num = size(female,1);
male_sum = zeros(1,2);
female_sum = zeros(1,2);
for i = 1 : male_num
male_sum = male_sum + male(i,:);
end
for j = 1 : female_num
第 4 页 共 20 页
female_sum = female_sum + female(j,:);
end
ex_male = male_sum / male_num;
ex_female = female_sum / female_num;
average_m_height = ex_male(1,1); %男生身高的均值
average_m_weight = ex_male(1,2); %男生体重的均值
average_f_height = ex_female(1,1); %女生身高的均值
average_f_weight = ex_female(1,2); %女生体重的均值
% %方差
male_sum2 = zeros(1,2);
female_sum2 = zeros(1,2);
for i = 1 : male_num
male_sum2 = male_sum2 + (male(i)-ex_male) .* (male(i)-ex_male);
end
for j = 1 : female_num
female_sum2 = female_sum2 + (female(i)-ex_female) .* (female(i)-ex_female);
end
dx_male = male_sum2 / male_num;
dx_female = female_sum2 / female_num;
dx_male_height = dx_male(1,1)^0.5;%男生身高的标准差
dx_male_weight = dx_male(1,2)^0.5;%男生体重的标准差
dx_female_height = dx_female(1,1)^0.5;%女生身高的标准差
dx_female_weight = dx_female(1,2)^0.5;%女生体重的标准差
%测试数据 身高
% test = '.\test1.txt';
test = '.\test2.txt';
[data1,data2,data3]=textread(test,'%n%n%s');
test_num = size(data1,1);
error = 0;
m = 0;
f = 0;
px_w1=normpdf(data1,average_m_height,dx_male_height);%类条件概率分布
px_w2=normpdf(data1,average_f_height,dx_female_height);
px=px_w1*p_w1+px_w2*p_w2;
pw1_x=px_w1*p_w1./px;%后验概率
pw2_x=px_w2*p_w2./px;
for i=1:test_num
if(pw1_x(i)>pw2_x(i))
gender = 'M';
m = m + 1;
else
gender = 'F';
f = f + 1;
剩余19页未读,继续阅读
远方上&肖
- 粉丝: 110
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0