PCA的目的就是在数据特别多而且特征散乱的情况下,找到很少的几个差别很大的特征,丢弃其他差别较小的特征(也可以认为是噪声),这样可以将数据简化又不会丢失太多的特征差别。
在坐标系中表示, 就是找到一个新的坐标系,让这些数据点在坐标轴伤的投影差距最大,看下图:(字丑多担待。。。)
http://blog.csdn.net/zhongkelee/article/details/44064401 http://blog.csdn.net/zhongkejingwang/article/details/42264479 详细过程我觉得这两个可以。
解释一下找到一个新的坐标系的意思:
对于以上描述,用公式表示:
首先定义协方差公式(协方差越大,证明这个变量含有的数据越多):
因为我们要找在什么方向上,协方差最大,所以我们应该定义一个向量去表示方向,所以点在这个方向上的投影定义为:
现在,将两个公式整合得出:
我们的目的,就是要找到上面这个表达式的最大值(原因如上,这个数值越大,代表着所蕴含的特征值越大)
求极值问题,可以在这里引入一个拉格朗日因子。
限制条件就是:
w是单位向量(我们需要找到一个单位长度的坐标系),自身的转置乘以自身等于1 。所以得到:
λ
λ1λ1λ1
通过解拉格朗日方程,得到一个等式,这里我们可以看出,问题变成了一个矩阵分解的问题。拉姆达在这里就是特征值。
关于矩阵分解可以参考 https://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
这个r*r 的矩阵, 前百分之10 包含大多数特征的意思 是 这个特征矩阵的特征值 从左上角到右下角是依次降低的 ( 而值越大,包含的的信息就越多)
所以,通过这个方程 我们只要把不想要的维度舍去即可。