pca各个向量之间的相关度_详细推导PCA算法
本文主要思路如下:
1 PCA优化目标
PCA(主成分分析)是一种数据降维的方法,即用较少特征地数据表达较多特征地数据(数据压缩,PCA属于有损压缩)。PCA推导有两种主要思路:
- 最大化数据投影后的的方差(让数据更分散)
- 最小化投影造成的损失
本文采用第一种思路完成推导过程,下图中旋转的是新坐标轴,每个数据点在改坐标轴上垂直投影,最佳的坐标轴为数据投影后的数据之间距离最大。
要完成PCA推导过程,需要如下第 2 章部分的理论依据
2 理论依据
2.1 矩阵换基底
坐标变换地目标是,找到一组新的正交单位向量,替换原来的正交单位向量。下面通过具体例子说明。
假设存在向量
其中:
如果矩阵 A 的列向量分别表示原来坐标系中的点,那么在新坐标系中的坐标为:
如果
经过上面的变换之后,新坐标系相比原坐标系顺时针旋转了45度;
旋转过程,旋转的角度=-坐标系旋转角度
如果
即:
伸缩。
2.2 拉格朗日乘子法
拉格朗日乘子法主要提供了一种求解函数在约束条件下极值的方法。下面还是通过一个例子说明。
假设存在一个函数
通过观察我们发现,在极值点的时候两个函数必然相切,即此时各自的导数成正比,从而:
通过联立上述三个公式,既可以求出最终结果。拉格朗日算子的主要思路同上,不过他假设了一个新的函数:
然后分解求:
从而完成求解过程
2.3 协方差矩阵
假设有一组数据:
协方差研究的目的是变量(特征)之间的关系,也就是上表中的发传单数量、购买数量、购买总额之间的相关情况
上表数据用矩阵表示为:
那么两两变量之间的关系:
如果E(x)=E(y)=E(z)=0(可以通过数据初始化实现),那么上述的协方差关系可以用如下矩阵乘法表示:
如果把对角线上的数据加起来会发现:
也就是说每个样本点到样本中心距离的平方和的平均 = 样本各个特征方差和(自身协方差)=
2.4 特征向量和奇异值分解
2.4.1 特征向量
参考:
特征值和特征向量www.jianshu.com
假设:左侧矩形由
根据 2.1 矩阵拉伸变换的结果,变换矩阵
在应用变换矩阵变换时,我们发现存在与上图中红色向量平行的向量
即:
所以:红色的特征向量不受变换矩阵的影响,仍保持原来的方向,我们称这类向量为变换矩阵A的特征向量,对应的
所以:
其中:Q的列向量都是A变换矩阵的特征向量
另外,在做旋转变换时,要求变换前后的坐标维度不发生改变,即A须为方阵
综上:如果方阵A满足
2.4.2 奇异值分解
奇异值分解(svd: singular value decomposition)定义:对于任意的矩阵A,存在:
其中:
即:U的列向量两两正交且模为1,V列向量两两正交且模为1,即:
2.4.3 特征向量和奇异值分解的关系
对于任意矩阵
令
所以
所以:
因此:对
同理:对
3 PCA
3.1 PCA推导
PCA的目标是找到一组新的正交基
根据2.1,设正交基
其中:m为样本数量,在数据运算之前对数据 x 进行0均值初始化,即
所以:
由于
根据 2.2 中的拉格朗日算子(求极值)求解:
则构造函数:
求解
结合2.4.1则:当
所以对于任意满足条件的正交基,对应的数据在上面投影后的方差值为S矩阵的特征向量,从而:
所以投影正交基为S的特征向量中的前k个最大特征值对应的特征向量。
接下来对S进行特征分解,根据2.4.3特征向量和svd的关系结论,S的特征向量集合:
另外,由于
综上,即可得到满足投影后数据距离最大的新的正交基
因此:
3.2 PCA过程总结
PCA流程如下:
- 初始化X,使得所有样本之间的特征值均值为0,同时应用feature scaling,缩放到-0.5~0.5 ;
- 计算X的协方差矩阵S;
- 对S进行SVD分解,U即我们要求的新坐标系集合,
为特征值集合(计算时特征值都会大于0,且结果会从小到大排列);
- 按照特征值从大到小排序,要降低为k维,那么取前k个特征值对应的特征向量,就是新的k个坐标轴
- 把X映射到新的坐标系中,完整降维操作;
根据之前的公式,做PCA投影后,投影数据的方差:
又因为:数据从n维投影新的n维的坐标系,方差不会发生改变(向量的模长度相等且为1,可以用2D坐标系投影到45-135度坐标系验证),即:
即:X的协方差矩阵的特征值和对应X的方差
3.3 主成份数量的选择
PCA使得数据从n维降低为k维度,接下来介绍如何选择合适的k。一般选择标准为:投影前后方差比例值,作为k值的选择标准。距离来说,我们期望:
其中q一般选择0.99。根据PCA总结中特征协方差矩阵和X方差的关系得:
因此主成份数量k根据上述公式求得满足条件的最小k
本文同时发布于CSDN博客:
详细推导PCA算法(包括算法推导必备的知识) - 怪兽 - CSDN博客blog.csdn.net
pca各个向量之间的相关度_详细推导PCA算法相关推荐
- pca各个向量之间的相关度_主成分分析(PCA)特征选择算法详解
1. 问题 真实的训练数据总是存在各种各样的问题: 1. 比如拿到一个汽车的样本,里面既有以"千米/每小时"度量的最大速度特征,也有"英里/小时"的最大速度特征 ...
- pca各个向量之间的相关度_【T】排序--1--PCA主成分分析principal component analysis
1. 问题 真实的训练数据总是存在各种各样的问题: 1. 比如拿到一个汽车的样本,里面既有以"千米/每小时"度量的最大速度特征,也有"英里/小时"的最大速度特征 ...
- pca各个向量之间的相关度_机器学习十大经典算法之PCA主成分分析
PCA主成分分析法简介 主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数 ...
- pca各个向量之间的相关度_PCA主成分分析
降维就是一种对高维度特征数据预处理方法.降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的.降维的算法有很多,比如奇异值分解(SVD).主成分分析(PC ...
- pca各个向量之间的相关度_PCA算法原理及实现
来自:海边的拾遗者 众所周知,PCA(principal component analysis)是一种数据降维的方式,能够有效的将高维数据转换为低维数据,进而降低模型训练所需要的计算资源. 以上是比较 ...
- 阶跃函数卷积自己_详细推导卷积算法
本文的主要思路如下: 1 从测量飞船的例子开始 假设 表示第 时刻测量到的宇宙飞船位置.由于信号存在干扰,我们取该时刻的前 次测量结果的期望作为该次测量的最终结果.我们用 表示这 次测量里的一个时刻, ...
- ML之MLiR:输入两个向量,得出两个向量之间的相关度
ML之MLiR:输入两个向量,得出两个向量之间的相关度 目录 输出结果 实现代码 输出结果 实现代码 import numpy as np from astropy.units import Ybar ...
- 详细推导PCA算法(包括算法推导必备的知识)
文章目录 1. PCA优化目标 2.理论依据 2.1 矩阵换基底 2.2 拉格朗日乘子法 2.3 协方差矩阵 2.4 特征向量和奇异值分解 2.4.1 特征向量 2.4.2 奇异值分解 2.4.3 特 ...
- python如何实现小车行走_[详细推导]基于EKF的小车运动模型的python编程实现
一.任务介绍 在本任务中,您将使用可用的测量值和运动模型来递归估计车辆沿轨迹的位置.车辆有了非常简单的LIDAR传感器,可以返回与环境中各个地标相对应的范围(range)和方位测量值(bearing) ...
最新文章
- Ubuntu软件包管理相关部分命令
- WiFi Deauthenticated Reason Codes
- 【CV秋季划】人脸编辑之统一属性编辑方法视频更新
- boot返回码规范 spring_SpringBoot 系列 web 篇之自定义返回 Http Code 的 n 种姿势
- android运行的线程中,android中线程是否运行在单独的进程中?
- Linux内核 eBPF基础:Tracepoint原理源码分析
- 使用Git子模块和开发模式管理Python项目
- 解决父类加载iframe,src参数过大导致加载失败
- 基于统计的压缩算法:游程编码
- (转)财新特稿丨风口浪尖上,李笑来谈ICO
- 阿里云云计算 3 阿里云产品全家福
- 恋爱物语iapp源码导入就可以用
- 话筒在multisim怎么找_基于Multisim软件的调频无线话筒仿真
- c语言图片百叶窗特效,Flash遮罩特效实例--百叶窗效果
- 在母亲节刷屏几天后,为母亲踏踏实实做点事
- 2021年人工智能(AI)的五大发展方向
- 恕我直言!千万别随便叫一个程序员为“码农”
- 序列模型与注意力机制总结
- Objective-C中的instancetype和id区别
- 大球吃小球html5,怎么用html5制作简单的大球吃小球的游戏
热门文章
- 服务器重启宝塔面板打不开了【已完美解决】
- 监控mysql主从的工具_zabbix利用percona-toolkit工具监控Mysql主从同步状态
- EasyNVR摄像机网页无插件直播方案H5前端构建之:使用BootstrapPagination以分页形式展示数据信息...
- response.sendRedirect(url)与request.getRequestDispatcher(url).forward(request,response)的区别
- [BZOJ4542] [Hnoi2016] 大数 (莫队)
- Android 对话框用法
- SharePoint 2013连接非默认端口的SQL Server
- Xcode 证书生成、设置、应用(转)
- php打印js函数,JS局部打印方法
- C语言之抽象数据类型(四十七)