主成分分析(principal component analysis,PCA)
《模式识别》
零维表达–样本均值
有nnn个ddd维向量的样本x1,x2,⋯ ,xnx_{1}, x_{2}, \cdots, x_{n}x1,x2,⋯,xn,如何能够用仅仅一个ddd维向量x0x_{0}x0来最好的表示nnn个样本,或者更确切地说,希望这个代表向量x0x_{0}x0
与各个样本xk,k=1,2,⋯ ,nx_{k}, k=1, 2, \cdots, nxk,k=1,2,⋯,n的距离的平方之和越小越好。定义平方误差准则函数J0(x0)J_{0}(x_{0})J0(x0)如下:
J0(x0)=∑k=1n∥x0−xk∥22J_{0}(x_{0}) = \sum_{k=1}^{n}\|x_{0} - x_{k}\|_{2}^{2}J0(x0)=k=1∑n∥x0−xk∥22
我们要寻找能够使得J0(x0)J_{0}(x_{0})J0(x0)最小化的d维向量。这个问题的解是x0=mx_{0} = mx0=m,其中m=1n∑i=1nxim=\frac{1}{n}\sum_{i=1}^{n}x_{i}m=n1∑i=1nxi是样本均值。证明如下:
KaTeX parse error: Expected 'EOF', got '&' at position 15: J_{0}(x_{0}) =&̲ \sum_{k=1}^{n}…
其中右边一项不依赖于x0x_{0}x0,因此当x0=mx_{0}=mx0=m时取到最小。
一维表达
样本均值时样本数据集的零维表达。非常简单,但缺点是并不能反映出样本之间的不同。通过把全部样本想通过样本均值的一条直线做投影,我们能够得到代表全部样本的一个一维向量。让e⃗\vec{e}e表示这个通过样本均值直线上的单位向量,那么直线的方程为
x⃗=m⃗+ae⃗\vec{x} = \vec{m} + a\vec{e}x=m+ae
【1.有了方向如何求aka_{k}ak】其中aaa为标量,表示直线上的某个点离开点m⃗\vec{m}m的距离。如果我们用m⃗+ake⃗\vec{m} + a_{k}\vec{e}m+ake来代表xkx_{k}xk,那么通过最小化平方误差准则函数,我们能够得到一组最优的aka_{k}ak的集合,其过程如下:
KaTeX parse error: Expected 'EOF', got '&' at position 46: …{n}, \vec{e}) =&̲ \sum_{k=1}^{n}…
因为e⃗\vec{e}e是单位向量,所以∥e⃗∥2=1\|\vec{e}\|^{2}=1∥e∥2=1。上式对aka_{k}ak求偏导,得
ak=e⃗T(x⃗k−m⃗)a_{k} = \vec{e}^{T}(\vec{x}_{k}-\vec{m})ak=eT(x