简介
PCA全称Principal Component Analysis,即主成分分析,是一种常用的数据降维方法。它可以通过线性变换将原始数据变换为一组各维度线性无关的表示,以此来提取数据的主要线性分量。
数学基础
向量的表示
- 内积
几何解释
设向量B的模维1 , 则A与B的内积值等于A向B所在的直线投影的矢量长度
af19c30e-a602-44d2-9bc4-edb27d5a7ac4.jpg
向量表示为(3,2)
实际上表示线性组合
(1,0)就是X轴,(0,1)就是y轴
基变换
基是正交的(即内积为0 , 或者直观的说相互垂直)
要求: 线性无关
线性无关.jpg将(3,2)映射到新的基上 xy
变换 : 数据与一个基做内积运算,结果作为第一个新的坐标分量,然后与第二个基做内积运算,结果作为第二个新坐标的分量
将数据(3,2)映射到基中的坐标
3-2.jpg基表换 :
基变换.jpg特征值,特征向量
若A为n阶方阵 , 如果存在一个非零向量X使得 则标量 为特征值(eigenvuale) , x为特征向量(eigenvector)
线性变换
一个矩阵与一个列向量A相乘,得到一个新的列向量B,则称该矩阵未列向量A到列向量B的线性变化
我们希望投影后的尽可能分散,而这种分散程度,用方差来表述
寻找一个一维基,使得所有数据变化大这个基上的坐标表示后,方差值最大
解释: 方差越大,说明数据越分散,通常认为,数据的某个特征维度上数据越分散,该特征就越重要
对于更高的维度,比如3维降到2维,在第1维得到最大的方差值后,我们希望第2维也是有最大方差,很明显,直接得到的第2维于第1维"几乎重合" , 所以它们应该有其他约束条件————正交
解释:从直观上说,让2个坐标尽可能表示更多的原始信息,我们是不希望它们之间存在有(线性)相关性的,因为相关性说明2个字段不是完全独立的,必然存在重复表示的信息
数学上用2个向量的协方差来表示其相关性
当协方差为0时,表示2个向量线性不相关
所以优化的目标是:
将一组N维向量降为K维(0<K<N),其目标是选择K个单位正交基,使得原始数据变换到这组基上后,各向量间的协方差未0 ,而向量的方差尽可能大
协方差
协方差用于表示变量间的相互关系,变量间的相互关系一般有三种:正相关,负相关和不相关。
** 正相关:**假设有两个变量x和y,若x越大y越大;x越小y越小则x和y为正相关。
** 负相关:**假设有两个变量x和y,若x越大y越小;x越小y越大则x和y为负相关。
** 不相关:**假设有两个变量x和y,若x和y变化无关联则x和y为负相关。
假设有2个变量a和b 构成矩阵X(通常都是sample作为行向量,特征作为列向量)
将其转置为sample作为列向量,特征作为行向量:
用 可以得到(不是推导得到的,而是恰好这个公式很好用):
同理m个n维数据,将其转置称n*m个矩阵X ,设 ,则C是一个对称矩阵,其对角线为各个字段的方差,其中第i行j列和第j行i列元素相同
矩阵对角化
实对称矩阵: 一个n*n的实对称矩阵一定可以找到n个单位正交特征向量
实对称阵可进行对角化:
根据特征值的从大到小,将特征向量从上到下排列,则用前K行组成的矩阵乘以原数据矩阵X,就得到了我们需要的降维后的数据矩阵Y
PCA简单实例
均一化后的数据 :
协方差矩阵 :
特征值 : 对协方差矩阵C求解可以得到
特征向量(注意将特征向量单位化)为 :
对角化.png参考
https://blog.csdn.net/hustqb/article/details/78394058
[图片上传失败...(image-2df3d7-1545210203861)]
协方差矩阵 https://www.youtube.com/watch?v=locZabK4Als
腾讯视频 PCA
https://www.bilibili.com/video/av29441413/?p=2
http://blog.codinglabs.org/articles/pca-tutorial.html
https://blog.csdn.net/hustqb/article/details/78394058
特征值,特征向量
https://www.bilibili.com/video/av6540378?from=search&seid=11885232428903943428
网友评论