fisher线性判别分析【有监督的降维算法】
《模式分类》、《百面机器学习》
也称LDA。
一维判别分析
PCA方法寻找的是用来有效表示的主轴方向,而判别分析方法(discriminant analysis)寻找的是用来有效分类的方法。
可分性分析的目标:通过适当的选择投影直线,找到能够最大限度的区分各类数据点的投影方向。
假设我们有一组nnn个ddd维的样本x⃗1,⋯ ,x⃗n\vec{x}_{1}, \cdots, \vec{x}_{n}x1,⋯,xn,它们分属于两个不同的类别,即大小为n1n_{1}n1的样本子集D1\mathcal{D}_{1}D1属于ω1\omega_{1}ω1,大小为n2n_{2}n2的样本子集D2\mathcal{D}_{2}D2属于ω2\omega_{2}ω2。如果对x⃗\vec{x}x中的各个成分作线性组合,就得到点积,结果是一个标量
y=w⃗Tx⃗y = \vec{w}^{T}\vec{x}y=wTx
这样,全部的nnn个样本x⃗1,⋯ ,x⃗n\vec{x}_{1}, \cdots, \vec{x}_{n}x1,⋯,xn产生了nnn个结果y1,⋯ ,yny_{1}, \cdots, y_{n}y1,⋯,yn,相应的属于集合Y1\mathcal{Y}_{1}Y1和Y2\mathcal{Y}_{2}Y2。这里,www的方向非常重要,而相应的幅值不是很重要,可取∥w∥2=1\|w\|_{2} = 1∥w∥2=1。
现在我们来讨论如何确定最佳的直线方向w⃗\vec{w}w,以达到最好的分类效果。一个用来衡量投影结果的分离程度的度量是样本均值的差。如果mim_{i}mi为ddd维样本均值:
m⃗i=1ni∑x⃗∈Dix⃗\vec{m}_{i} = \frac{1}{n_{i}}\sum_{\vec{x}\in\mathcal{D}_{i}}\vec{x}mi=ni1x∈Di∑x
那么投影后的点的样本均值为
m~i=1ni∑y∈Yiy=1ni∑x⃗∈Diw⃗Tx⃗=w⃗Tm⃗i\tilde{m}_{i} = \frac{1}{n_{i}} \sum_{y\in\mathcal{Y}_{i}}y =\frac{1}{n_{i}}\sum_{\vec{x}\in\mathcal{D}_{i}}\vec{w}^{T}\vec{x} = \vec{w}^{T}\vec{m}_{i}m~i=ni1y∈Yi∑y=ni1x∈Di∑wTx=wTmi
投影后的点的样本均值之差为∣m~1−m~2∣=∣w⃗T(m⃗1−m⃗2)∣|\tilde{m}_{1} - \tilde{m}_{2}| = |\vec{w}^{T}(\vec{m}_{1} - \vec{m}_{2})|∣m~1−m~2∣=∣wT(m1−m2)∣.
我们可以增大w⃗\vec{w}w的幅值得到任意大小的投影样本均值之差。但投影样本均值之差的大小总是相对而言的,否则问题就失去了意义。我们定义类别ωi\omega_{i}ωi的类内散布(即,投影后的平方差)如下:
s~i2=∑y∈Yi(y−m~i)2\tilde{s}_{i}^{2} = \sum_{y \in \mathcal{Y}_{i}}(y - \tilde{m}_{i})^{2}s~i2=