机器学习笔记(四)PCA主成分分析

首先先复习一下要用到的基础的知识:

(一)、协方差和方差

样本均值:

机器学习笔记(四)PCA主成分分析

样本方差:

机器学习笔记(四)PCA主成分分析

样本X和样本Y的协方差:

机器学习笔记(四)PCA主成分分析

协方差代表了两个变量之间的相关关系,协方差为正时,说明X和Y是正相关关系;协方差为负时,说明X和Y是负相关关系;协方差为0时,说明X和Y是相互独立。Cov(X,X)就是X的方差。当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵)。例如,对于3维数据(x,y,z),计算它的协方差就是:

机器学习笔记(四)PCA主成分分析

(二)、特征值与特征向量

如果向量v与变换A满足Ax=λx,则称向量x是变换A的一个特征向量,λ是相应的特征值。

描述正方形矩阵的特征值的重要工具是特征多项式,λ是A的特征值等价于线性方程组(A – λI) x = 0 (其中I是单位矩阵)有非零解x (一个特征向量),因此等价于行列式|A – λI|=0  

函数p(λ) = det(A – λI)是λ的多项式,因为行列式定义为一些乘积的和,这就是A的特征多项式。矩阵的特征值也就是其特征多项式的零点。一个矩阵A的特征值可以通过求解方程pA(λ) = 0来得到。 若A是一个n×n矩阵,则pA为n次多项式,因而A最多有n个特征值,包括虚数。但是如果是是对称矩阵的话他的特征值都是实数。Ax表示对向量x的旋转拉伸。如果Ax和x的方向一样,只是长度不一样,说明x是A的特征向量,拉伸倍数为λ。例如下图,x3是A的特征向量。

机器学习笔记(四)PCA主成分分析

如果 机器学习笔记(四)PCA主成分分析 有n个线性无关的特征向量 机器学习笔记(四)PCA主成分分析 ,与它们对应的特征值是 机器学习笔记(四)PCA主成分分析 ,以 机器学习笔记(四)PCA主成分分析 为列向量组作成一个可逆矩阵T,对角矩阵 机器学习笔记(四)PCA主成分分析 对角元素的分别是机器学习笔记(四)PCA主成分分析,可以得到 机器学习笔记(四)PCA主成分分析

机器学习笔记(四)PCA主成分分析

机器学习笔记(四)PCA主成分分析

(三)、PCA算法的数学原理。

先看下面这幅图:

机器学习笔记(四)PCA主成分分析

 先假定只有二维,即只有两个变量,它们由横坐标和纵坐标所代表;因此每个观测值都有相应于这两个坐标轴的两个坐标值;如果这些数据形成一个椭圆形状的点阵,那么这个椭圆有一个长轴和一个短轴。在短轴方向上,数据变化很少;在极端的情况,短轴如果退化成一点,那只有在长轴的方向才能够解释这些点的变化了;这样,由二维到一维的降维就自然完成了。上图中,u1就是主成分方向,然后在二维空间中取和u1方向正交的方向,就是u2的方向。则n个数据在u1轴的离散程度最大(方差最大),数据在u1上的投影代表了原始数据的绝大部分信息,即使不考虑u2,信息损失也不多。而且,u1、u2不相关。只考虑u1时,二维降为一维。

对给定的一组数据(下面的阐述中,向量一般均指列向量):

       机器学习笔记(四)PCA主成分分析

    其数据中心位于:

        机器学习笔记(四)PCA主成分分析  

    数据中心化(将坐标原点移到样本点的中心点):

        机器学习笔记(四)PCA主成分分析

    中心化后的数据在第一主轴u1方向上分布散的最开,也就是说在u1方向上的投影的绝对值之和最大(也可以说方差最大),计算投影的方法上面已经阐述,就是将x与u1做内积,由于只需要求u1的方向,所以设u1也是单位向量。

    在这里,也就是最大化下式:

        机器学习笔记(四)PCA主成分分析

    由矩阵代数相关知识可知,可以对绝对值符号项进行平方处理,比较方便。所以进而就是最大化下式:

        机器学习笔记(四)PCA主成分分析

    两个向量做内积,可以转化成矩阵乘法:

        机器学习笔记(四)PCA主成分分析

    所以目标函数可以表示为:

        机器学习笔记(四)PCA主成分分析

    括号里面就是矩阵乘法表示向量内积,由于列向量转置以后是行向量,行向量乘以列向量得到一个数,一个数的转置还是其本身,所以又可以将目标函数化为:

        机器学习笔记(四)PCA主成分分析

    去括号:

        机器学习笔记(四)PCA主成分分析

    又由于u1和i无关,可以拿到求和符外面,上式化简为:

        机器学习笔记(四)PCA主成分分析

    学过矩阵代数的同学可能已经发现了,上式括号里面求和后的结果,就相当于一个大矩阵乘以自身的转置,其中,这个大矩阵的形式如下:

        机器学习笔记(四)PCA主成分分析

    X矩阵的第i列就是xi

    于是有:

        机器学习笔记(四)PCA主成分分析

    所以目标函数最终化为:

        机器学习笔记(四)PCA主成分分析

    其中的机器学习笔记(四)PCA主成分分析就是一个二次型,

    我们假设机器学习笔记(四)PCA主成分分析的某一特征值为λ,对应的特征向量为ξ,有

        机器学习笔记(四)PCA主成分分析

    所以机器学习笔记(四)PCA主成分分析机器学习笔记(四)PCA主成分分析是半正定的对称矩阵,即机器学习笔记(四)PCA主成分分析是半正定阵的二次型,由矩阵代数知识得出,目标函数存在最大值

由于我们做过均值化处理,机器学习笔记(四)PCA主成分分析正好为X的协方差矩阵,假设为C。此时优化目标变为

max 机器学习笔记(四)PCA主成分分析

subject 机器学习笔记(四)PCA主成分分析,(我们只需要找到投影u的方向,因此将u的长度设为1,方便计算)

lagrange 函数为:

机器学习笔记(四)PCA主成分分析

对u求导可得

机器学习笔记(四)PCA主成分分析可知机器学习笔记(四)PCA主成分分析为C的特征值,u为C的特征向量。此时

机器学习笔记(四)PCA主成分分析

机器学习笔记(四)PCA主成分分析

因此u1就是C的最大特征值对应的特征向量。

 

总结一下PCA的算法步骤:

设有m条n维数据。

1)将原始数据按列组成n行m列矩阵X

2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值

3)求出协方差矩阵C=1mXXTC=1mXXT

4)求出协方差矩阵的特征值及对应的特征向量

5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

6)Y=PXY=PX即为降维到k维后的数据

声明:参考了大量文章并加入自己的理解,非完全原创

链接:https://blog.csdn.net/zhongkelee/article/details/44064401