PCA推导

一、协方差、协方差矩阵:

方差是描述一维数据样本本身相对于均值的偏离程度。

思考:如果遇到含有多维数据的数据集,比如要统计多个学科的考试成绩,面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,某个考生数学成绩很好(数学成绩平均值高,且其方差小),他的物理成绩也很好(物理成绩平均值高,且其方差小),这些可以用均值和方差来描述,但是我们想要了解考生的数学成绩很好是不是和他的物理成绩很好相关呢?或者他的数学成绩很好和他的历史成绩差负相关呢?(一般来说,数学成绩好,逻辑思维强,对应的物理成绩也会相对好些,个人觉得哈)。

1、要描述这个考生数学成绩和物理成绩是否有正相关,或者描述其数学成绩和历史成绩是否负相关,那么需要协方差来度量两个随机变量X,Y关系的统计量,我们可以仿照方差的定义:

var(X)=mi=1(XiX¯)(XiX¯)m1

随机变量X,Y的 协方差的定义为:
cor(X,Y)=mi=1(XiX¯)(YiY¯)m1

协方差的结果有什么意义呢?

如果结果为正值:则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说如果考生的数学成绩和物理成绩的协方差为正,那么代表他的数学成绩和物理成绩是相关的;
如果结果为负值: 那么他的数学成绩和物理成绩是负相关的;
如果协方差为0: 那么代表考生的数学成绩和物理成绩没有相关性。

性质:

1. cov(X,X)=var(X)
2. cov(X,Y)=cov(Y,X)

2、协方差矩阵 参照博文:关于协方差矩阵的理解:

这里写图片描述

注意:

样本矩阵的行: 对应的是特征的取值;
样本矩阵的列: 对应的是样本在各特征上的取值。
故若有n各特征,m各样本,则样本矩阵是nxm

除此还需注意:

1、 协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。可以作为刻画不同维度(分量)之间相关性的一个评判量。
2、 若不同分量之间的相关性越小,则非对角线元素的值就越小,特别地,若不同分量彼此不相关,那么C就变成了一个对角阵。
3、特别提醒的是,协方差矩阵是针对数据的维度定义的,是代表维度两两之间的相关性,换句话说也是特征两两之间的相关性,切记!

假设有一个样本数据集X,X用一个n∗m的矩阵表示,其中n表示每个样本的特征维度,m表示样本点个数,那我们的协方差矩阵应该是一个n * n的对称矩阵,从上述协方差和内积的关系,不难得出协方差矩阵:

C=1m1SST

其中 S为X按列去均值的矩阵.
如下面这个例子:
这里写图片描述

二、维基百科中主成分分析(Principal Component Analysis (PCA))的数学定义是: 一个正交化线性变换,把数据变换到一个新的坐标系统中,使得这一数据的任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。

为什么要用PCA:参照

1、 你手上有一批数据,但是特征太多,你感觉数据太稀疏了
2、 你选了一堆特征,但是感觉某些特征之间的相关性太高了,比如用户月消费预测的时候,你选了用户身高以及用户性别这两个特征,一般男生的身高比较高,你觉得特征有点冗余
3 你的小霸王内存不够,内存只有4个G,装不下太大的矩阵,但是你又不想减少训练数据,N*M的数据集,你不想减少N,下一步只有减少M了
4、 你想减少M了,可是你又不知道哪些特征该扔掉,就算你选出了一些看起来不是那么好的特征扔掉你又怕这些特征扔掉后对模型的影响很大

PCA的核心思想:

1、是通过某种线性投影,将n维特征映射到d维上 (d<n) 这d维是全新的正交特征
2、这d维特征称为主元,是重新构造出来的d维特征,而不是简单地从n维特征中去除其余n-d维特征
3、并期望在所投影的维度上数据的方差最大: 以此使用较少的数据维度,同时保留住较多的原数据点的特性。
4、通俗的理解, 如果把所有的点都映射到一起,那么几乎所有的信息(如点和点之间的距离关系)都丢失了,而如果映射后方差尽可能的大,那么数据点则会分散开来,以此来保留更多的信息。

理论推导:
下面,我们用数学方法表述这个问题。
这里写图片描述

假设样本集 X=x1,x2,...,xm ,样本点 xi 在新空间中超平面上的投影是 WTxi ,若所有样本点的投影能尽可能分开,则应该使投影后样本点的方差最大化,投影后样本点的方差可以表示为: iWTxixTiW ,于是优化目标可写为:
这里写图片描述

算法步骤: [参考] (http://blog.csdn.net/u012162613/article/details/42177327)
参考

输入:样本集 X=(x1,x2,...,xm)
过程:
1. 对所有样本进行中心化: xixi1mimi=1xi ;
2. 计算样本的协方差矩阵 XXT ;
3. 对协方差矩阵 XXT 做特征分解;
4. 取最大的d个特征值所对应的特征向量 w1,w2,...,wd
输出:投影矩阵 W=(w1,w2,...,wd)

算法实例:
这里写图片描述

算法过程:

这里写图片描述
对比参照[刘建平PCA(http://www.cnblogs.com/pinard/p/6239403.html)

参见博文PCA-Principal Components Analysis数学原理 和 主成分分析-最大方差解释
主成分分析原理总结
机器学习算法笔记系列之深入理解主成分分析PCA-原理篇

猜你喜欢

转载自blog.csdn.net/zyy848877920/article/details/79026734
PCA