用身高和体重数据进行性别分类的实验报告
一:基本要求
1、利用K-L 变换进行特征提取。
2、在正态分布假设下估计概率密度,建立最小错误率Bayes 分类器。
3、试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分类器进行比较。
二、实验数据
训练样本:FAMALE.TXT (50个女同学的身高与体重数据) MALE.TXT (50个男同学的身高与体重数据)
测试样本:Text1.TXT (35个同学的身高与体重数据,其中20个男同学,15个女同学) Text2.TXT (300个同学的身高与体重数据,其中250个男同学,50个女同学)
三、具体做法
1、不考虑类别信息对整个样本集进行K-L 变换(即PCA ),并将计算出的新特征方向表示在二维平面上,考察投影到特征值最大的方向后男女样本的分布情况并用该主成分进行分类。
2、利用类平均向量提取判别信息,选取最好的投影方向,考察投影后样本的分布情况并用该投影方向进行分类。
3、采用身高和体重数据作为特征,在正态分布假设下估计概率密度,建立最小错误率Bayes 分类器,写出得到的决策规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。
在分类器设计时可以考察采用不同先验概率(如0.5 vs. 0.5, 0.75 vs. 0.25, 0.9 vs. 0.1等)进行实验,考察对决策和错误率的影响。
4、用Fisher 线性判别方法求分类器,将该分类器应用到训练和测试样本,考察训练和测试错误情况。
将训练样本和求得的决策边界画到图上,同时把以往用Bayes 方法求得的分类器也画到图上,比较结果的异同。
四、原理简述及程序框图
1.不考虑类别信息对整个样本集进行K-L 变换
(1)读入female.txt 和male.txt 两组数据,组成一个样本集。
计算样本均值向量u E x ⎡⎤⎣⎦
=和协方差()()T
x u x u c E ⎡⎤--⎣⎦
= (2)计算协方差阵特征值和特征向量 (3)选取特征值最大的特征向量作为投影方向 (4)选取阈值进行判断
计算样本均值向量和协方差
协方差阵特征值和特征向量
选取特征值最大的特征向量作为投影方向
选取阈值进行判断
2.利用类平均向量提取判别信息来进行K-L 变换
(1)读入female.txt 和male.txt 两组数据,组成一个样本集。
分别计算样本均值向量i u E x ⎡⎤⎣⎦= 和协方差()()T i x u x u c E ⎡⎤--⎣⎦
= ,及总均值向量 ()
122u u u +=
(2)计算类间离散度矩阵Sb ( ()()()2
1
T
b i
i
i i S p u
u u u ω==
--∑)与类内离散度矩阵Sw
( 2
1
w i i
i S P ==
∑∑
)
(3)用 ()
T j b j
j j
u S u J X λ=
比较分类性能,选取最佳投影方向
(4)选取阈值进行判断
分别计算样本均值向量和协方差,以及总
的均值
协计算类内离散度与类间离散度矩阵
选取最佳投影方向
选取阈值进行判断
3.正态分布的监督参数估计:
对于多元正态分布,其最大似然估计的结果为:
1
1ˆN
K K X n μ
==∑ ()()11ˆˆˆN
T
K K K X X N
μ
μ=∑
=--∑
最小错误率Bayes 分类器
判别函数为()0T T i i i i g x x W x w x w =++
其中 11
2i i W -=-∑,1i i w μ-=∑
()1
01122i T i i
i i w u u In InP ω-=-∑-∑+ 具体算法步骤如下:
第一步将训练样本集数据转为矩阵FA ,MA 。
第二步分别对FA ,MA 求取协方差12,∑∑,平均值12,μμ并输入先验概率
()()12,P P ωω
第三步将第二步所得数值代入判别函数表达式得()()12,g x g x 。
第四步将待测样本集数据转为矩阵T ,将T 中数值依次代()()
12g x g x -
,若
()()120
g x g x ->,则判断其为第一类,反之,第二类。
流程图如下:
4.Fisher 线性判别方法求分类器 首先求各类样本均值向量,及2,1,1
==∑∈
i x N m i
x i
i ω
,然后求各个样本的类内离散度矩阵,及()()2,1,=--=
∑∈i m x m x s T
i
w x i i i
,再求出样本的总类内离散度,及()()2211s p s p s ωωω+=,根据公式()211
m m s -=-*ω
ω求出把二维X 空
间投影到一维Y 空间的最好的投影方向。
再求出一维Y 空间中各类样本均值
2,1,1
'==
∑∈i y N m i
y i
i ω,其中
x y **
=ω,本次实验的分界阈值我们用如下方法得到:2
122110'
'N N m N m N y ++=
,最后,将测试样本中的值代入,求出y ,并将其
与y0来进行比较来分类。
流程图如下:
五、实验结果及分析总结
1.不考虑类别信息对整个样本集进行K-L变换
实验中不考虑类别信息,用FAMALE.TXT和MALE.TXT的数据作为本次实验使用的样本集,建立基于K-L变换的分类器,记录错误率。
特征向量为(0.6269,0.7719)
男判为女:10 错误率10%
女判为男:4 错误率4%
2.利用类均值向量的特征提取实验结果
实验中考虑类别信息,用FAMALE.TXT和MALE.TXT的数据作为本次实验使用的样本集,设定男女先验概率分别为0.75和0.25,建立基于K-L变换的分类器,记录分类错误率。
特征向量为(0.6153,0.7883)
男判为女:10 错误率10%
女判为男:3 错误率3%
分析:不考虑类别信息的基于K-L 变换的特征提取再分类与Fisher 分类器效果
差不多(Fisher 线性判别方法 男判为女8个 女判为男4个),不过在本次实验中,Fisher 判别更胜一筹。
考虑类别信息时,分类效果会受到先验概率的影响。
3.最小错误率贝叶斯决策
根据最大似然估计出的男生身高体重均值为173.9200 65.5020
协方差矩阵为∑∧
⎥⎦⎤⎢⎣⎡8982.590582.230582.237536.20
女生身高体重均值为 162.8400 52.5960
协方差矩阵为 ∑∧
⎥⎦
⎤⎢⎣⎡1288.315254.155254.159344.43
由表可知:
对于测试样本,当男女先验概率为0.5vs0.5时,测试样本1判别错误率最小; 对于测试样本,当男女先验概率为为0.25vs0.75时,测试样本2判别错误率最小;
故可推测用最小错误率Bayes决策,当女生先验概率等于待测样本中女生样本占待测样本的概率时,错误率最小,且越远离此概率,错误率越大。
4.用Fisher线性判别方法求分类器,将分类器应用到训练和测试样本上,比较其错误率。
将训练样本和求得的决策边界与先验概率为0.5,0.5的贝叶斯分类器画到图上:
从图中我们可以直观的比较出对训练样本Fisher判别比最大似然Bayes判别效果更好。