1 马氏距离
1)原理
设 x、y 是均值向量为μ、协方差矩阵为V 的总体G 中抽取的两个样品,定义 x、y 之间的马氏距离为:
定义 x 和总体 G 之间的马氏距离为:
由马氏距离整理可以得到判别函数,
,则有
这就是马氏距离判别。
2)数据
G1=[1 2;2 1;0 4;2 3;1 4;2.3 3.4;1.4 0.5;0.5 5.5;2.4 3.3;1.4 0.3]’;
G2=[20 1;3 2;4 3;5 6;5 4;2 1.5;20 3.5;4 23;9 6.0;6 4]’;
待分类个体:x=[4.5 3.2]'
3)程序
G1=[1 2;2 1;0 4;2 3;1 4;2.3 3.4;1.4 0.5;0.5 5.5;2.4 3.3;1.4 0.3];
G2=[20 1;3 2;4 3;5 6;5 4;2 1.5;20 3.5;4 23;9 6.0;6 4];
x=[4.5 3.2];
u11=mean(G1(:,1));
u12=mean(G1(:,2));
u1=[u11,u12]
u21=mean(G2(:,1));
u22=mean(G2(:,2));
u2=[u21,u22]
u3=(u1+u2)/2;
V=cov(G1,G2);
f=(u1-u2)*inv(V)*(x-u3)'
if f<=0
disp x属于第一类
else
disp x属于第二类
end
4)实验结果
2 贝叶斯判别
1) 原理
假设有 m 个总体为 G1, …,Gm ,对应的概率密度
各不相同,假设m 个总体出现的先验概率分别为:
。假设将属于Gi 的样品错判给 Gj 的损失记为C(j|i)。
显然有 C(i|i)=0 ,C(j|i)≥0 。假设判别规则为: R=(R1, …,Rm )。则根据此规则的错判概率为:
判别法则R把来自总体Gi 的个体错判给其它总体的平均损失:
用规则R进行判别的总平均损失:
Bayes 法则:选择R,使总平均损失g(R) 达到最小。
2)数据
周立功单片机某一性能参数检测统计中,合格
和不合格
两类先验概率分别为:
合格:P(
)=0.85 不合格:P(
)=0.15
现有一系列待检测的性能参数,检测值x为:
-1.9847 -2.2692 -3.5549 -1.2401 -0.9780 -2.8531 -2.2355 -3.3287 -3.5414 -3.4549 -3.0752 -0.7932 -3.4534 2.8562 -0.9780 0.7932 1.1882 3.0682 -2.5799 -1.4885 -0.7431
、
类条件概率分布正态分布分别为(-2,0.09)(2,4)。决策
为
(
表示
的简写),
=5,
=2,
=0。
试对观察的结果进行分类。
3)程序
x=[-1.9847 -2.2692 -3.5549 -1.2401 -0.9780 -2.8531 -2.2355 -3.3287 -3.5414 -3.4549 -3.0752 -0.7932 -3.4534 2.8562 -0.9780 0.7932 1.1882 3.0682 -2.5799 -1.4885 -0.7431]';
p1=0.85;
p2=0.15;
n11=0;
n12=5;
n21=2;
n22=0;
n=length(x);
for i=1:n
px1(i)=normpdf(x(i),-2,0.3);
px2(i)=normpdf(x(i),2,2);
px(i)=px1(i)*p1+px2(i)*p2;
ph1(i)=px1(i)*p1/px(i);
ph2(i)=px2(i)*p2/px(i);
plot(x(i),ph1(i),'b*',x(i),ph2(i),'r*'),grid on,hold on
end
r1=n11*ph1+n12*ph2;
r2=n21*ph1+n22*ph2;
j=0;
k=0;
for i=1:n
if r1(i)
=r2(i)
k=k+1;
w2(k)=x(i);
end
end
w1
w2
4)实验结果
3 fisher判别
1)原理
假设有m 个总体G1, …,Gm ,xi 表示来自总体Gi 的样品。对任一给定的方向u, xi 在该方向上的投影为
,在u 方向各总体之间的分离程度——组间离差为
;在u方向各总体内部的聚集程度——组内离差为
;Fisher判别的思想:选择u,B(u)/E(u) 达到最大。
2)数据
以下是我国10个省市的发展报告的部分数据,试用fisher判别法将其分为两类。
省市名
出生预期寿命(年)
成人识字率%
人均GDP(元)
预期分类
北京
76
99
5375
1
上海
79.5
99
5359
1
浙江
78
99
5372
2
河南
72.1
95.9
5370
1
河北
73.8
77.7
5370
1
辽宁
71.2
93
4250
2
吉林
75.3
94.9
3412
2
江苏
70
91.2
3990
1
福建
62.8
80.6
3799
2
安徽
72.8
99
2300
2
3)程序和
Step1 分组输入数据,构建源变量表;
Step2 在菜单栏中依次选择“”|“分类”|“判别”命令,打开“判别分析”的对话框;
Step3 在源变量表中选择出“生预期寿命”、“成人识字率”、“人均GDP”选入“自变量”,将“预期类别”选入“分组变量”中;
Step4 单击“定义范围”按钮,定义分类的取值范围为1—2,单击继续;
Step5 单击统计量按钮,在函数系数中,勾选fisher(F),其余默认值;
Step6 单击“确定”按钮,别可以得到fisher的判别分析的结果。
4)实验结果
组统计量
VAR00005
均值
差
有效的 N(列表状态)
未加权的
已加权的
1.00
出生预期寿命
74.2800
3.65746
5
5.000
成人识字率
92.5600
8.89904
5
5.000
人均GDP
5067.0000
604.54032
5
5.000
2.00
出生预期寿命
72.0200
5.76212
5
5.000
成人识字率
96.9800
2.84640
5
5.000
人均GDP
3846.6000
1126.18506
5
5.000
合计
出生预期寿命
73.1500
4.70325
10
10.000
成人识字率
94.7700
6.65015
10
10.000
人均GDP
4456.8000
1067.62913
10
10.000
特征值
函数
特征值
方差的 %
累积 %
正则相关性
1
.724a
100.0
100.0
.648
a. 分析中使用了前 1 个典型判别式函数。
Wilks 的 Lambda
函数检验
Wilks 的 Lambda
卡方
df
Sig.
dimension0
1
.580
3.541
3
.315
分类函数系数
VAR00005
1.00
2.00
出生预期寿命
2.718
2.689
成人识字率
1.793
1.900
人均GDP
.001
.000
(常量)
-187.351
-188.971
Fisher 的线性判别式函数