Fisher是一种将高维空间映射到低维空间降维后进行分类的方法
1.投影:
对
xn→
的分量作线性组合可得标量
yn=w⃗ Txn→
什么样的映射方法是好的,我们需要设计一个定量的标准去找 w⃗ 来衡量分类的好坏,或者叫做准则函数。
2.基本参量
在d维X空间
各类样本均值向量 m⃗ i
mi→=1Ni∑x⃗ ∈Xix⃗ ,i=1,2样本类内离散度矩阵 Si 和总类内离散度矩阵 Sw
Si=∑x∈Xi(x⃗ −mi→)(x⃗ −mi→)T,i=1,2
样本类间离散度矩阵 Sb
Sb=(m1→−m2→)(m1→−m2→)T
在一维空间
各类样本均值 mi¯¯¯¯
mi¯¯¯¯=1Ni∑y∈Yiy,i=1,2
样本类内离散度 S2i¯¯¯¯ 和总类内离散度 Sw¯¯¯¯¯
S2i¯¯¯¯=∑y∈Yi(y−mi¯¯¯¯)2,i=1,2Sw¯¯¯¯¯=S1¯¯¯¯+S2¯¯¯¯
3.衡量标准:
1.我们希望两类均值之差尽量大
2.同时希望各类样本内部尽量密集
有了这个标准后我们可以得到准则函数:
JF(w⃗ )=m1¯¯¯¯−m2¯¯¯¯S21¯¯¯¯+S22¯¯¯¯
4.解:
经过一系列推导之后得到
w∗→=S−1w(m1→−m2→)
即为准则函数 JF(w⃗ ) 最大值时候的解
5.分类
1.当维数d和样本数N都很大时,可采用贝叶斯决策规则,从而获得一种在一维空间的”最优分类器”。
2.也可利用先验知识选定分界阈值点 y0 ,如选择:
y(1)0=m1¯¯¯¯+m2¯¯¯¯2y(2)0=N1m1¯¯¯¯+N2m2¯¯¯¯N1+N2=m¯¯¯y(3)0=m1¯¯¯¯+m2¯¯¯¯2+ln(P(ω1)/P(ω2))N1+N2−2其中P(ω1)和P(ω2)分别为ω1类和ω2类样本的先验概率
再根据决策规则
y<(>)y0→x∈{ω1ω2
判断类别
代码:
function y=fisher(x1,x2,sample)
%Fisher函数
%x1,x2,sample分别为两类训练样本及待测数据集,其中行为样本数,列为特征数
r1=size(x1,1);r2=size(x2,1);
r3=size(sample,1);
a1=mean(x1)';a2=mean(x2)';
s1=cov(x1)*(r1-1);s2=cov(x2)*(r2-1);
sw=s1+s2;%求出协方差矩阵
w=inv(sw)*(a1-a2)*(r1+r2-2);
y1=mean(w'*a1);
y2=mean(w'*a2);
y0=(r1*y1+r2*y2)/(r1+r2);
for i=1:r3
y(i)=w'*sample(i,:)';
if y(i)>y0
y(i)=0;
else
y(i)=1;
end
end