用身高与体重数据进行性别分类的实验报告.docx
《用身高与体重数据进行性别分类的实验报告.docx》由会员分享,可在线阅读,更多相关《用身高与体重数据进行性别分类的实验报告.docx(7页珍藏版)》请在冰豆网上搜索。
用身高与体重数据进行性别分类的实验报告
资料范本
本资料为word版本,可以直接编辑和打印,感谢您的下载
用身高与体重数据进行性别分类的实验报告
地点:
__________________
时间:
__________________
说明:
本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容
用身高和体重数据进行性别分类的实验报告
姓名:
刘懿郴学号:
2009302308
范英学号:
2009302316
胡亮学号:
2009302319
班级:
9391
基本要求用FAMALE.TXT和MALE.TXT的数据作为训练样本集,建立Bayes分类器,用测试样本数据对该分类器进行测试。
调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。
2、具体做法
(1)应用两个特征进行实验:
同时采用身高和体重数据作为特征,分别假设二者相关或不相关,在正态分布假设下估计概率密度,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。
比较相关假设和不相关假设下结果的差异。
在分类器设计时可以考察采用不同先验概率(如0.5vs.0.5,0.75vs.0.25,0.9vs.0.1等)进行实验,考察对决策和错误率的影响。
自行给出一个决策表,采用最小风险的Bayes决策重复上面的实验。
3、实验原理
已知样本服从正态分布,
(1)
所以可以用最大似然估计来估计μ和Σ两个参数
样本类分为男生和女生两类,利用最大似然估计分别估计出男生样本的,,和女生样本的,,然后将数据带入
(1)公式分别计算两者的类条件概率密度和,然后根据贝叶斯公式
计算出两类的后验概率和
实验一:
对于两类情况,我们可以仅定义一个判别函数:
其中=
=
并将决策规则表示为
如果>0,则决策;
<0,则决策。
实验二:
我们定义一个决策表如下图
我们定义判别函数
并将决策规则表示为
如果>0,则决策;
<0,则决策。
N
Y
实验流程图
4、实验结果
利用matlab我们计算出了male.txt 和female.txt的均值和协方差,和,,这样我们可以利用公式和判别函数与决策规则对训练/测试样本集进行分类,结果如下:
当体重和身高相关的时候
对于test1测试集,总体来说,对样本集的判断正确率随着男性的先验概率的增加(女性先验概率的减少)先增大后减小,而对于男性或者女性的的个体判别随着男性的先验概率的增加而正确率不断增加或不断减小(也就是随着男性先验概率的增加,将男性判断为女性的概率越来越少,甚至没有;而把女性判别为男性的概率越来越大)而对于test1测试集,对样本集的判断正确率随着男性的先验概率的增加(女性先验概率的减少)而不断增加,而对于男性或者女性的的个体判别随着男性的先验概率的增加而正确率不断增加或不断减小(也就是随着男性先验概率的增加,将男性判断为女性的概率越来越大;而把女性判别为男性的概率越来越小)
(2)当体重和身高不相关的时候
对于test1测试集,总体来说,对样本集的判断正确率随着男性的先验概率的增加(女性先验概率的减少)先增大后减小,而对于男性或者女性的的个体判别随着男性的先验概率的增加而正确率不断增加或不断减小(也就是随着男性先验概率的增加,将男性判断为女性的概率越来越少,甚至没有;而把女性判别为男性的概率越来越大)而对于test1测试集,对样本集的判断正确率随着男性的先验概率的增加(女性先验概率的减少)而不断增加,而对于男性或者女性的的个体判别随着男性的先验概率的增加而正确率不断增加或不断减小(也就是随着男性先验概率的增加,将男性判断为女性的概率越来越大;而把女性判别为男性的概率越来越小)
(3)当体重和身高相关的时候
对于test1测试集,总体来说,对样本集的判断正确率随着男性的先验概率的增加(女性先验概率的减少)先增大后减小,而对于男性或者女性的的个体判别随着男性的先验概率的增加而正确率不断增加或不断减小(也就是随着男性先验概率的增加,将男性判断为女性的概率越来越少,甚至没有;而把女性判别为男性的概率越来越大)而对于test1测试集,对样本集的判断正确率随着男性的先验概率的增加(女性先验概率的减少)而不断增加,而对于男性或者女性的的个体判别随着男性的先验概率的增加而正确率不断增加或不断减小(也就是随着男性先验概率的增加,将男性判断为女性的概率越来越大;而把女性判别为男性的概率越来越小)
(4)当体重和身高不相关的时候
对于test1测试集,总体来说,对样本集的判断正确率随着男性的先验概率的增加(女性先验概率的减少)先增大后减小,而对于男性或者女性的的个体判别随着男性的先验概率的增加而正确率不断增加或不断减小(也就是随着男性先验概率的增加,将男性判断为女性的概率越来越少,甚至没有;而把女性判别为男性的概率越来越大)而对于test1测试集,对样本集的判断正确率随着男性的先验概率的增加(女性先验概率的减少)而不断增加,而对于男性或者女性的的个体判别随着男性的先验概率的增加而正确率不断增加或不断减小(也就是随着男性先验概率的增加,将男性判断为女性的概率越来越大;而把女性判别为男性的概率越来越小)。
5.结果总体分析
由实验结果可知,对测试集的测试数据表明,最小错误率的贝叶斯分类器在假设两特征相关的情况下,男生类与女生类的先验概率与事实越接近既各为0.5时其准确率越高,当男生的先验概率大于女生时,容易将女生误判为男生,当男生的先验概率小于女生时,容易将男生误判为女生,在假设两特征不相关时分类器对先验概率依赖较小且准确率较高。
而对样本集的测试数据则表明女生先验概率大于男生时分类器的准确率较高,假设两类特征不相关时其准确率变化不大,但女生先验概率较大时对男生的误判较多,男生的先验概率较大时对女生的误判较多。
最小风险的贝叶斯分类器假设两类特征相关时,男生类与女生类的先验概率与事实接近既各为0.5时其准确率较高,由于男生误判为女生的损失较大,所以男生的先验概率越大则将女生误判为男生的概率越高,准确率则较低,女生的先验概率较高时分类器准确率较高,假设两类特征相关时,情况与不相关时类似,说明最小风险的贝叶斯分类器对先验概率依赖程度较高而对特征之间是否相互独立关系不大。
另外,对样本集的分类测试正确率明显低于测试集,分析认为是由于样本分布并不十分近似正态分布,且数据分布比较分散,而测试集的数据却恰好较严格服从正态分布且数据分布比较集中。
6.实验心得
通过实验更加深刻地理解了贝叶斯分类器的设计过程以及模式识别的流程,通过实验了解了所学知识的实用价值,明白了最大似然估计,最小错误率的贝叶斯分类器与最小风险的贝叶斯分类器的优缺点与适用情况。
通过讨论解决实验中遇到的问题,明白了书中的公式不止需要记忆,还需要理解,明白了团队分工协作的重要性。
7.相关实验代码
(1)当体重和身高相关的最小错误率分类期代码
clearall;
pw1=input('ÄÐÉúµÄÏÈÑé¸ÅÂÊ£º')
pw2=input('Å®ÉúµÄÏÈÑé¸ÅÂÊ£º')
male1=0;female1=0;error11=0;error12=0;male2=0;female2=0;error21=0;error22=0;
%²âÊÔÑù±¾
[t1Ht1W]=textread('E:
\´óÈýÏÂѧÆÚ\ģʽʶ±ð\ģʽʶ±ðʵÑé\test1.txt','%f%f%*s');
[t2Ht2W]=textread('E:
\´óÈýÏÂѧÆÚ\ģʽʶ±ð\ģʽʶ±ðʵÑé\test2.txt','%f%f%*s');
HW1=[t1Ht1W];HW1=HW1';
HW2=[t2Ht2W];HW2=HW2';
number1=length(HW1);%%%%%%%%%%%%%%%test1(15,20)µÄ¸öÊý
number2=length(HW2);%%%%%%%%%%%%%%%test2(50,250)µÄ¸öÊý
forn=1:
20
a=HW1(:
n);
u11=[173.9200;65.5020];thegema11=[20.753623.0582;23.058259.8982];%%%ÄÐÉú
u12=[162.8400;52.5960];thgema12=[43.934415.5254;15.525431.1285];%%%%Å®Éú
det11=det(thegema11);det12=det(thgema12);
p(11)=1/((2*pi)*(det11^0.5))*exp(-1/2*((a-u11)'/thegema11)*(a-u11));
p(12)=1/((2*pi)*(det12^0.5))*exp(-1/2*((a-u12)'/thgema12)*(a-u12));
pz=p(11)*pw1+p(12)*pw2;
p11=(p(11)*pw1)/pz;p12=(p(12)*pw2)/pz;
g=p11-p12;
if(g>0)%%%Ñù±¾¼¯Ç°15¸öÈËÊÇÄÐÉú
male1=male1+1;
else
error11=error11+1;
end
end
male1
error11
forn=21:
number1
a=HW1(:
n);
u11=[173.9200;65.5020];thegema11=[20.753623.0582;23.058259.8982];%%%ÄÐÉú
u12=[162.8400;52.5960];thgema12=[43.934415.5254;15.525431.1285];%%%%Å®Éú
det11=det(thegema11);det12=det(thgema12);
p(11)=1/((2*pi)*(det11^0.5))*exp(-1/2*((a-u11)'/thegema11)*(a-u11));
p(12)=1/((2*pi)*(det12^0.5))*exp(-1/2*((a-u12)'/thgema12)*(a-u12));
pz=p(11)*pw1+p(12)*pw2;
p11=(p(11)*pw1)/pz;p12=(p(12)*pw2)/pz;
g=p11-p12;
if(g<0)%%%Ñù±¾¼¯test1ºó20¸öÊÇfemale
female1=female1+1;
else
error12=error12+1;
end
end
female1
error12
forn=1:
50
a=HW2(:
n);
u11=[173.9200;65.5020];thegema11=[20.753623.0582;23.058259.8982];%%%ÄÐÉú
u12=[162.8400;52.5960];thgema12=[43.934415.5254;15.525431.1285];%%%%Å®Éú
det11=det(thegema11);det12=det(thgema12);
p(11)=1/((2*pi)*(det11^0.5))*exp(-1/2*((a-u11)'/thegema11)*(a-u11));
p(12)=1/((2*pi)*(det12^0.5))*exp(-1/2*((a-u12)'/thgema12)*(a-u12));
pz=p(11)*pw1+p(12)*pw2;
p11=(p(11)*pw1)/pz;%%%maleºóÑé¸ÅÂÊ
p12=(p(12)*pw2)/pz;%%%%femaleºóÑé¸ÅÂÊ
g=p11-p12;%%%%test2Ç°50¸öΪfemale
if(g<0)%%%ÅжÏÊDz»ÊÇfemale
female2=female2+1;
else
error21=error21+1;
end
end
female2
error21
forn=51:
number2
a=HW2(:
n);
u11=[173.9200;65.5020];thegema11=[20.753623.0582;23.058259.8982];%%%ÄÐÉú
u12=[162.8400;52.5960];thgema12=[43.934415.5254;15.525431.1285];%%%%Å®Éú
det11=det(thegema11);det12=det(thgema12);
p(11)=1/((2*pi)*(det11^0.5))*exp(-1/2*((a-u11)'/thegema11)*(a-u11));
p(12)=1/((2*pi)*(det12^0.5))*exp(-1/2*((a-u12)'/thgema12)*(a-u12));
pz=p(11)*pw1+p(12)*pw2;
p11=(p(11)*pw1)/pz;%%%maleºóÑé¸ÅÂÊ
p12=(p(12)*pw2)/pz;%%%%femaleºóÑé¸ÅÂÊ
g=p11-p12;%%%%test2Ç°50¸öΪfemale
if(g>0)%%%ÅжÏÊDz»ÊÇmale
male2=male2+1;
else
error22=error22+1;
end
end
male2
error22
当身高与体重不相关u11=[173.9200;65.5020];thegema11=[20.75360;059.8982];%%%ÄÐÉú
u12=[162.8400;52.5960];thgema12=[43.93440;031.1285];%%%%Å®Éú
det11=det(thegema11);det12=det(thgema12);进行替代u11=[173.9200;65.5020];thegema11=[20.753623.0582;23.058259.8982];%%%ÄÐÉú
u12=[162.8400;52.5960];thgema12=[43.934415.5254;15.525431.1285];%%%%Å®Éú
即可
(3)(4)基本都类似有源程序代码可以直接运行即可