PCA 分解的基本推导和计算方法
2013-12-15 00:06
267 查看
PCA是数据降维的一种方法,其目标是找到数据分布方差最大的方向,并将数据向该方向投影并保持投影后恢复数据的残差最小。即找到e和a,使得x的估计值x‘=m+e*a与x残差最小。注意,这里e为一个方向向量(非矩阵),且限定e的模为1(否则a和e不唯一)。
PCA的推导,通过最优化x-x’的均方误差最小,得到a=T(e)*(x-m)。
进一步,将均方误差表示为e的表达式,并在e的模为1的约束下相对e最优化均方误差。
可以推导得到e的最优解需要满足S*e=lamabda*e,从而e转为为求矩阵的特征值和特征向量问题。而S阵为x的散度矩阵,存在S=X*X‘,X为输入特征减去均值向量组成的矩阵。
由于X存在奇异值分解,即X=U*D*T(V),则S=U*D*D*T(U)。
对于特征值和特征向量,存在S=E*D2*T(E),从而可知,存在E=U,D2=D*D。
需要注意,是对X做奇异值分解,而不是对S做。
当然,也可以通过对S求解特征值和特征向量得到投影矩阵。
参考自Duda的模式识别。
PCA的推导,通过最优化x-x’的均方误差最小,得到a=T(e)*(x-m)。
进一步,将均方误差表示为e的表达式,并在e的模为1的约束下相对e最优化均方误差。
可以推导得到e的最优解需要满足S*e=lamabda*e,从而e转为为求矩阵的特征值和特征向量问题。而S阵为x的散度矩阵,存在S=X*X‘,X为输入特征减去均值向量组成的矩阵。
由于X存在奇异值分解,即X=U*D*T(V),则S=U*D*D*T(U)。
对于特征值和特征向量,存在S=E*D2*T(E),从而可知,存在E=U,D2=D*D。
需要注意,是对X做奇异值分解,而不是对S做。
当然,也可以通过对S求解特征值和特征向量得到投影矩阵。
参考自Duda的模式识别。
相关文章推荐
- PCA 分解的基本推导和计算方法
- PCA基本推导和计算方法
- 基于实时3D引擎计算角度的基本方法
- C++ 类的空间大小计算基本方法
- poj 1845Sumdiv(唯一分解定理&&约数和公式&&二分求等比数列和&&反复平方法计算p^n幂~~~好多定理啊)
- LDA(Linear Discriminant Analysis)算法推导和计算方法
- 样本数量远小于特征维度时PCA的计算方法
- 文本相似度计算基本方法小结
- 涉及二叉树节点个数计算的方法:推导得公式O(1) 或者递推O(logn)
- 基于实时3D引擎计算角度的基本方法
- 相关任务时间的六个基本参数及其计算方法
- 分页存储管理的基本方法(相关计算)
- 文本相似度计算基本方法小结
- 【计算方法笔记】矩阵分解求解线性方程组
- 如何计算算法的复杂度,如何计算推导O阶方法
- PCA降维相关推导与重构误差计算k值选择
- 基于实时3D引擎计算角度的基本方法
- 计算Fibonacci数列第n项的第8种方法(数学推导与Python实现)
- 数据块内部偏移量的基本计算方法
- 文本相似度计算基本方法小结