记者:王老您好,上次您给我们清晰的介绍了什么是主成分,今年您是否有空给我们讲一讲如何用数学方法来分析主成分呢?
王老:可以的,但我现在手头有点事,半个小时之后再来找我
记者:好的,一会儿见
半个小时后
王老:我们开始吧,其实主成分分析一般分为两个大的步骤,第一步是讲把数组的平均值变成0并保证各个维度的数据在一个尺度上,第而步找到一个可以原来的特征空间映射到一个新的特征空间的矩阵和从新的特征空间中选择足够的维度来代表原数据。
记者:王老,我们为什么要寻找这样一个变换矩阵呢?
王老:我们在上次讨论的时候已经提过,主成分不一定是原数据的维度中的几个,可以是原数据几个维度的线性组合,而第一主成分就是所有可能的线性组合中方差最大的那个线性组合所构成的新的维度
记者:王老,那怎么来求这个变换矩阵呢?
王老:一般我们都用奇异值分解来求,我们首先看一下什么是奇异值分解,有人说奇异值分解是大学线性代数最应该重点讲的分解,但可惜的是很多老师都没有好好去讲它。任何一个矩阵A都可以分解成这样的一个的形式
A=UΣVT
其中U和V都是正交阵,
Σ
是对角阵,这个分解可以这样理解,如何A是一个mxn的矩阵,那么A也可以理解成一个线性变换,可以把一个n维的向量映射成一个m维的向量。n维的空间中一定存在一组基,这组基在经过A的线性变换之后仍然是正交的,只是长度可能发生变化,如果找到了这组基,那么A这个线性变化就可以分成三个连续过程
Ax=A=UΣVTx
:首先求出一个向量在这组基上坐标也就是一个投影变化
x′=VTx
然后,每个坐标会经过一定的拉伸
x″=Σx′
最后再经过一个旋转变化U,这便是奇异值分解的物理解释。
记者:王老,我真的听不懂
王老:没事听不懂也没关系,把前面的都忘了,就记住主成分分解的形式
A=UΣVT
下面我们开始讲如何用奇异值分解做主成分分析。如果我们有一组m维数据(就是我们从n个角度去描述一个事物),然后一共有n条数据,这组数据可以写成一个矩阵
Dmn
,我们把D的转置做奇异值分解,也就是
DTmn=UΣVT
,也可以写成
DTmn=u1d1vT1+u2d2vT2+...
为了简化问题,我们假设数据是两维的
DT2n=u1d1vT1+u2d2vT2
如果 d1 远大于 d2 ,那么 u1d1vT1 就可以近似的表示原数据了,而 v1 就是数据的第一主成分,可以证明,原数据这这一维度上的方差最大。我们这里就不去证明了,如果有多维的话那么 vi 就是第i主成分。
记者:那到底选多少个主成分合适呢?
王老:保证选择的主成分对应的d的值占多有d的和超过一定比例即可,一般是90%,也可以根据实际情况自己选择这个比例
记者:好的,王老,我回去再好好消化一下,感谢您的耐心讲解,再见