Fisher分类器算法及程序.docx
《Fisher分类器算法及程序.docx》由会员分享,可在线阅读,更多相关《Fisher分类器算法及程序.docx(16页珍藏版)》请在冰豆网上搜索。
![Fisher分类器算法及程序.docx](https://file1.bdocx.com/fileroot1/2022-10/10/164378fe-303c-4f6f-8b03-686813e5c330/164378fe-303c-4f6f-8b03-686813e5c3301.gif)
Fisher分类器算法及程序
3.5Fisher分类器(FisherLinearDiscriminant)
Fisher判别法是历史上最早提出的判别方法之一,其基本思想是将n类m维数据集尽可能地投影到一个方向(一条直线),使得类与类之间尽可能分开。
从形式上看,该方法就是所谓的一种降维处理方法。
为简单起见,我们以两类问题ω1和ω2的分类来说明Fisher判别法的原理,如图3.4所示。
设数据阵为X∈RN⨯m,ω1共有N1个样本,ω2共有N2个样本,N=N1+N2。
两个类别在输入空间的均值向量为
设有一个投影方向
,这两个均值向量在该方向的投影为
在
方向,两均值之差为
类似地,样本总均值向量在该方向的投影为
定义类间散度(Between-classscatter)平方和SSB为
其中
定义类ωj的类内散度(Within-classscatter)平方和为
两个类的总的类内散度误差平方和为
其中,
我们的目的是使类间散度平方和SSB与类内散度平方和SSw的比值为最大,即
图3.5给出了类间散度平方和SB与类内散度平方和SE的几何意义。
根据图3.5a,类间散度平方和SB的另一种表示方式为
这里
可以证明,(3.48)与(3.42)只相差一个系数。
简单证明如下:
由于
由(3.42)得
这说明,(3.48)与(3.42)只相差一个与样本数有关的常数。
根据图3.5b,类内散度平方和SSE的另一种表示方式为
这正是(3.44)。
下面分析怎样确定最佳投影方向
。
显然,SB、SW均为对称阵,于是,
=
,且SW=
。
令
,则
,代入(3.46),得
使(3.52)为最大,等价于求最大特征值
对应的特征向量。
即
我们知道,
于是,(3.53)可写成
这说明,
得方向与
的方向一致,即
因此,在应用过程中,我们往往不必求出类间散度阵
。
与输入空间维数相等,或者说,投影方向过原点。
设分类阈值为θ,则判别公式为
确定θ的一些经验公式为
(1)取两个类别均值在
方向投影的简单平均
(2)考虑样本数的两个类别均值在
方向投影的平均
或
(3)考虑类方差的两个类别均值在
方向投影的平均
或
这里,
、
分别为两个类别在
方向投影的均方差。
当然,当类内散度阵
不可逆时,Fisher判别法失效。
例5在研究地震预报中,遇到沙基液化问题,选择了下列7个有关的因素:
x1:
震级,
x2:
震中距(公里),
x3:
水深(米),
x4:
土深(米)
x5:
贯入值,
x6:
最大地面加速度(10-2N/m2),
x7:
地震持续时间(秒)。
具体数据如表1所示。
x1
x2
x3
x4
x5
x6
x7
类别
序号
6.6
39
1.0
6.0
6.0
0.12
20
1
6.6
39
1.0
6.0
12
0.12
20
2
6.1
47
1.0
6.0
6.0
0.08
12
3
6.1
47
1.0
6.0
12
0.08
12
4
8.4
32
2.0
7.5
19
0.35
75
5
7.2
6.0
1.0
7.0
28
0.30
30
6
8.4
113
3.5
6.0
18
0.15
75
7
7.5
52
1.0
6.0
12
0.16
40
8
7.5
52
3.5
7.5
6.0
0.16
40
9
8.3
113
0.0
7.5
35
0.12
180
10
7.8
172
1.0
3.5
14
0.21
45
11
7.8
172
1.5
3.0
15
0.21
45
12
8.4
32
1.0
5.0
4.0
0.35
75
13
8.4
32
2.0
9.0
10
0.35
75
14
8.4
32
2.5
4.0
10
0.35
75
15
6.3
11
4.5
7.5
3.0
0.20
15
16
7.0
8.0
4.5
4.5
9.0
0.25
30
17
7.0
8.0
6.0
7.5
4.0
0.25
30
18
7.0
8.0
1.5
6.0
1.0
0.25
30
19
8.3
161
1.5
4.0
4.0
0.08
70
20
8.3
161
0.5
2.5
1.0
0.08
70
21
7.2
6.0
3.5
4.0
12
0.30
30
22
7.2
6.0
1.0
3.0
3.0
0.30
30
23
7.2
6.0
1.0
6.0
5.0
0.30
30
24
5.5
6.0
2.5
3.0
7.0
0.18
18
25
8.4
113
3.5
4.5
6.0
0.15
75
26
8.4
113
3.5
4.5
8.0
0.15
75
27
7.5
52
1.0
6.0
6.0
0.16
40
28
7.5
52
1.0
7.5
8.0
0.16
40
29
8.3
97
0.0
6.0
5.0
0.15
180
30
8.3
97
2.5
6.0
5.0
0.15
180
31
8.3
89
0.0
6.0
10
0.16
180
32
8.3
56
1.5
6.0
13
0.25
180
33
7.8
172
1.0
3.5
6.0
0.21
45
34
7.8
283
1.0
4.5
6.0
0.18
45
35
解,设数据文件名为d:
\a.txt,用Matlab实现的源程序如下
loadd:
\ss.txt;
a=ss;
m=mean(a(1:
12,:
));
m(2:
2,:
)=mean(a(13:
35,:
));
ssb=(m(1:
1,:
)-m(2:
2,:
))'*(m(1:
1,:
)-m(2:
2,:
));
ssw=zeros(7,7);
fori=1:
12,
ssw=ssw+(a(i:
i,:
)-m(1:
1,:
))'*(a(i:
i,:
)-m(1:
1,:
));
end
fori=13:
35,
ssw=ssw+(a(i:
i,:
)-m(2:
2,:
))'*(a(i:
i,:
)-m(2:
2,:
));
end
w=inv(ssw)*(m(1:
1,:
)-m(2:
2,:
))';
result=a*w;
theta=w'*(m(1:
1,:
)+m(2:
2,:
))'/2;
fori=1:
35,
result(i:
i,2:
2)=theta;
result(i:
i,3:
3)=i;
end
投影方向向量为
=(0.0202,-0.0001,-0.0175,0.0156,0.0160,-0.7333,-0.0016)T,
分类阈值为θ=0.1358。
决策面方程为
π:
l(x)=0.0202x1-0.0001x2-0.0175x3+0.0156x4+0.0160x5-0.7333x6-0.0016x7-0.1358=0.
分类结果为
序号
wTx
θ=0.1358(3.58)
θ=0.1007(3.59)
θ=0.1709(3.60)
θ=0.1567(3.61)
θ=0.1149(3.62)
1
0.1812
2
0.2772
3
0.2125
4
0.3085
5
0.1749
6
0.4163
7
0.2475
8
0.2325
9
0.1160
*
*
*
10
0.4551
11
0.1745
12
0.1739
13
-0.0866
14
0.0542
15
-0.0325
16
0.0414
17
0.0442
18
-0.0153
19
-0.0078
20
0.0797
21
0.0259
22
0.0696
23
-0.0462
24
0.0326
25
0.0645
26
0.0320
27
0.0641
28
0.1365
*
*
*
29
0.1919
*
*
*
*
*
30
-0.0687
31
-0.1126
32
0.0048
33
-0.0361
34
0.0464
35
0.0726