看完博客自己算了一下:::::::
x | 1 | 1 | 2 | 2 | 4 |
y | -1 | 1 | 1 | 2 | 2 |
各维度去均值后:
x | -1 | -1 | 0 | 0 | 2 |
y | -2 | 0 | 0 | 1 | 1 |
协方差矩阵:
求得特征值:λ = 10,λ = 2,分别对应的特征向量:
这两个特征向量则组成一组新的基,形成一个新的坐标系。
将每个特征向量作为一个行向量组成一个矩阵:
(矩阵A)
这个矩阵作为投影矩阵作用在(左乘)旧坐标系中的点上,就可以将点转换到新的坐标系中:。
作用在原数据上:
作用在去均值后的数据上:
一些说明:在旧坐标系中,去均值后的数据对于原数据只是平移了一定的距离;变换到新坐标系中后,同样地,去均值后的数据对于原数据也只是平移了一定的距离。在PCA中,去均值后的数据与原数据保存的信息是一样多的,只是为了方便计算方差和协方差。
如果要实现降维,则只需要将较大的将特征值对应的特征向量作为行向量组成矩阵,然后将矩阵左乘在旧坐标系的点上(原数据 或者 去均值后的数据都行)即可。
例如将上面的数据(二维)将到一维,则较大的特征值 λ = 10 对应的特征向量 作为投影矩阵(因为只剩下一维了,所以投影矩阵就是这个向量了),作用在原数据上得到:
作用在去均值后的点上:
这样二维数据就变成一维的了。
由于协方差对角化的过程是使各维度之间协方差最小化,各个维度内部方差最大化,则利用一部分较大的特征值对应的特征向量对数据进行转换后,会尽量保存多的信息(维度内方差最大化),而维度之间线性无关(协方差最小化),这样就相当于将原数据中一些线性相关的维度削减了,达到将维的目的。