从n维数据中提取最能表明这组数据的m个向量,也就是对数据进行降维(n->m),提取特征。函数
找到一个向量\(\mu\),使n个点在其上的投影的方差最大(投影后的数据越不集中,就说明每一个向量彼此之间包含的类似信息越少,从而实现数据降维)优化
总的数据:spa
\[A = (x_1, x_2, \cdots , x_n)\]class
\(X\)的协方差:lambda
\[C = Cov(X) = \frac{1}{n}\sum_{i=1}^n(x_i-\overline{x})(x_i-\overline{x})^T\]数据
向量\(\mu\):di
\[|\mu| = 1 \Rightarrow \mu^T\mu = 1\]display
易知\(x_i\)在\(\mu\)上的投影为\[(x_i-\overline{x})^T\mu\]math
由于\((x_i-\overline{x})\)均值为0, 因此记其方差\(J\)为tar
\[\frac{1}{n}\sum_{i=1}^n((x_i-\overline{x})^T\mu)^2\]
又由于上式平方项中为标量,故能够将\(J\)改写为
\[\frac{1}{n}\sum_{i=1}^n((x_i-\overline{x})^T\mu)^T((x_i-\overline{x})^T\mu)\]
化简,得
\[\frac{1}{n}\sum_{i=1}^n\mu^T(x_i-\overline{x})(x_i-\overline{x})^T\mu\]
发现中间两项是协方差,带入,得
\[\mu^TC\mu\]
接下来就是一个在给定约束条件\(\mu^T\mu\) = 1,下的最优化问题,这里使用Lagrange乘数法求解
构造Lagrange函数\[L(\mu, C, \lambda) = \mu^TC\mu + \lambda(1-\mu^T\mu)\]
关于\(\mu\)求偏导,得
\[\frac{\partial J}{\partial \mu} = 2C\mu - 2\lambda\mu\]
令其等于0,得
\[C\mu = \lambda\mu\]
是否是有点眼熟?
没错,\(\lambda\)就是\(C\)的特征值(eigen-value),\(\mu\)就是\(C\)的特征向量(eigen-vector)
所以,这个咱们要求的向量\(\mu\)就是\(C\)的特征向量(要m个,就取前m个最大的特征值对应的特征向量)