【学习记录】PCA主成分分析 SVD奇异值分解

news2024/11/27 16:38:07

在看MSC-VO代码的过程中,大量出现了奇异值分解的内容,本身对这部分了解不多,这里补一下课,参考b站up主小旭学长的视频,链接为:PCA主成分分析和SVD主成分分析

PCA主成分分析

PCA根本目的在于让数据在损失尽可能小的前提下,降低数据的维度。比如将三维数据降低到二维,那么就是要在空间中找一个平面,让3d点在2d平面上的投影尽可能保持原来3d空间下的分布。将这个概念推广一下,PCA的任务也就是找一个新的坐标系,让原数据在新坐标系下的投影损失尽可能小,而这个新的坐标系的寻找方法,我们就要依赖于方差这一概念。这里我们可以这样去理解,方差衡量的是数据的密集程度,方差小意味着这一大堆数据几乎就是集中在一小撮,这样必然会导致数据的差异性变得很模糊,因此我们在进行降维时,需要寻找的坐标系最好是方差尽可能大的,从而能让数据降维后分布尽量分散。因此这里我们要寻找的这个坐标系,就是原数据中方差最大的方向。
在这里插入图片描述
在进行坐标系的寻找之前,我们需要对原始数据做一个中心化的操作,也就是将坐标原点移动到数据的分布中心,这主要是为了更好地寻找方差最大的方向。移动到中心后,就需要进行一系列的推导,这里我们假定最后的处理结果数据符合高斯分布,根据线性代数中数据的拉伸和旋转的写法,拉伸等于左乘一个对角阵,旋转等于左乘一个三角函数构成的矩阵,数据的处理前后本身就可以用旋转和拉伸来表示。
在这里插入图片描述
上图描述的是原始数据和最终结果之间通过旋转和拉伸的转换关系,在这个问题中,我们并不知道旋转和拉伸的幅度,所以问题变为如何求R和S。在求R和S的过程中,我们需要利用协方差矩阵COV,协方差用于表示两个变量在变化过程中的关联关系,协方差为正表示两个量是正相关,反之为负相关,如果为零则表示两个量相互无关。根据协方差矩阵的定义,我们可以得到下面的化简公式:
在这里插入图片描述
从这个公式可以看出,协方差矩阵的计算依赖于原数据构成的矩阵,这里为了方便我们统一以二维举例,那么最后的x1 x2 y1 y2表示的就是二维坐标下的点,我们将其记录为数据矩阵D。而在前面我们得到了原始数据和处理结果之间基于旋转R和拉伸S的转换关系,那么带入后可以继续往后写。
在这里插入图片描述
在这个过程中主要有这么几步需要解释一下,首先右上角加’表示的是最终结果,这个与前面的推导稍微有点不同但是一个意思。在第四行,括号内对应的刚好是目标坐标系的协方差矩阵,因此括号的内容在第五行合成为了C’,由于前面我们假定了目标坐标系的数据在两个方向都符合高斯分布,所以协方差矩阵为单位矩阵,所以在第六行可以直接消去C’,从而得到最后的计算结果。由于S本身是一个对角阵,因此转置与否都不发生变化,而且R本身是一个正交矩阵,R的转置与逆矩阵相等,所以我们进行如下的操作。
在这里插入图片描述
从最终结果来看,这个结果其实对应了考研数学中老生常谈的矩阵对角化,C表示的是原始数据的协方差矩阵,L本身为对角阵,因此就是由特征值组成的对角矩阵,R则为特征向量拼成的矩阵。所以我们要求R和S,就需要先计算原始数据的协方差矩阵,对这个矩阵做对角化,结果的特征向量组成的矩阵就是旋转R,特征值对角阵开方得到的就是拉伸S。

SVD奇异值分解

SVD本身和矩阵对角化是相通的,矩阵对角化要求矩阵必须是一个方阵,这个时候可以计算出特征值和特征向量,而当矩阵本身不是方阵时,我们就无法计算特征值与特征向量,与之相对应的就变成奇异值,当矩阵为方阵的时候,奇异值和特征值就是一个东西。类似于对角化,奇异值分解本身也是要寻找矩阵,由于不是方阵,这里目标变成了三个矩阵。
在这里插入图片描述
奇异值分解的过程本身也可以用拉伸旋转的理论来解释,我们将M看作是一个线性变换,我们希望找到一个基,这个基在线性变换前后依然可以保持正交,这个就是SVD的主要任务。假设V是原始域的标准正交基,U是经过M变换后的标准正交基,由于SVD本身要求变换前后保持正交即可,所以结果的U不一定是标准正交基,这里额外补充一个伸缩б1和б2用于实现这个正交的对齐。那么我们可以写出下面的等式:
在这里插入图片描述
得到了M的表示,那么我们可以继续进行后续的推理:
在这里插入图片描述
在这部分公式中,左侧第三行到第四行中,由于U本身表示的是标准正交基组成的矩阵,其转置右乘原矩阵等于单位矩阵,因此在这一步中进行了消去,第四行中的操作和前面PCA的过程基本相似,∑本身不一定是方阵,但其依然符合主对角线上有元素其余位置均为零,所以依然可以整合为一个平方的矩阵,这里就是记作了L,也就是到了第五行的位置,在第五行中,L已经变成了一个方阵,公式左侧也是一个方阵,这时等式的形式就转变为了矩阵对角化的结果,左侧是原矩阵,右侧的L为特征值组成的对角矩阵,V表示特征向量组成的矩阵,所以对MTM和MMT分别进行对角化,就可以计算出线性变化前后的两个基底,对特征值矩阵进行开方,就可以得到伸缩系数。
在这里插入图片描述

PCA与SVD的关系

在PCA中我们需要的旋转R和SVD中的V是一样的,也就是说SVD的V就是PCA的主成分的方向。
在这里插入图片描述
这二者之间的关系主要通过这个V矩阵进行联系,PCA需要先计算协方差矩阵,计算量可能会比较大,反过来用SVD的话,可以不计算协方差矩阵直接求出V。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/335948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习笔记之生成模型综述(三)生成模型的表示、推断、学习任务

机器学习笔记之生成模型综述——表示、推断、学习任务引言生成模型的表示任务从形状的角度观察生成模型的表示任务从概率分布的角度观察生成模型的表示任务生成模型的推断任务生成模型的学习任务引言 上一节介绍了从监督学习、无监督学习任务的角度介绍了经典模型。本节将从表…

概率论面试题1:玫瑰花

概率论面试题 1. 一个活动,n个女生手里拿着长短不一的玫瑰花,无序的排成一排,一个男生从头走到尾,试图拿更长的玫瑰花,一旦拿了一朵就不能再拿其他的,错过了就不能回头,问最好的策略&#xff1…

3年自动化测试这水平?我还不如去招应届生

公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。看简历很多都是3年工作经验,但面试…

什么是响应性?

响应性: 这个术语在今天的各种编程讨论中经常出现,但人们说它的时候究竟是想表达什么意思呢?本质上,响应性是一种可以使我们声明式地处理变化的编程范式。一个经常被拿来当作典型例子的用例即是 Excel 表格: 这里单元…

angular相关知识点总结

创建 angualr 组件和传值 angular组件其实就是个xxx.component.ts,本质还是ts文件一个html文件 1.创建组件:在Angular中,可以使用命令行工具ng generate component创建一个新组件。例如: ng generate component my-component这将创建一个名…

Ubuntu 系统下Docker安装与使用

Ubuntu 系统下Docker安装与使用Docker安装与使用Docker安装安装环境准备工作系统要求卸载旧版本Ubuntu 14.04 可选内核模块Ubuntu 16.04 使用 APT 安装安装 Docker CE使用脚本自动安装启动 Docker CE建立 docker 用户组测试 Docker 是否安装正确镜像加速Docker使用拉取镜像创建…

SPSS数据分析软件的安装与介绍(附网盘链接)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

SAP COPA 获利能力分析深度解析

一、获利分析配置及相关值概述 二、配置:组织结构 2.1 定义经营范围-KEP8 2.2 维护经营关注点-KEA0 2.3 获利能力分析类型解析 2.4 控制范围分配给经营范围-KEKK 三、配置:数据结构-KEA0 3.1 特征字段 3.1.1 特征字段类别 3.1.2 维护特征字段-K…

分类预测 | Matlab实现SSA-RF和RF麻雀算法优化随机森林和随机森林多特征分类预测

分类预测 |Matlab实现SSA-RF和RF麻雀算法优化随机森林和随机森林多特征分类预测 目录分类预测 |Matlab实现SSA-RF和RF麻雀算法优化随机森林和随机森林多特征分类预测分类效果基本介绍模型描述程序设计参考资料分类效果 基本介绍 Matlab实现SSA-RF和RF麻雀算法优化随机森林和随机…

C++学习笔记(四)

组合、继承。委托(类与类之间的关系) 复合 queue类里有一个deque,那么他们的关系叫做复合。右上角的图表明复合的概念。上图的特例表明,queue中的功能都是通过调用c进行实现(adapter)。 复合关系下的构造和…

CS5260测试版|CS5260demoboard|typec转VGA参考PCB原理图

CS5260测试版|CS5260demoboard|typec转VGA参考PCB原理图 CS5260是一款高度集成的TYPEC转VGA转换方案芯片。 CS5260输出端接口:外接高清VGA设备如:显示器投影机电视带高清的设备,广泛应用于 笔记本Macbook Air 12寸USB3.1输出端对外接高清VGA设备如:显示器投影机电视…

11.hadoop系列之MapReduce框架原理之InputFormat数据输入

我们先简要了解下InputFormat输入数据 1.数据块与数据切片 数据块: Block在HDFS物理上数据分块,默认128M。数据块是HDFS存储数据单位 数据切片: 数据切片只是在逻辑上对输入进行分片,并不会物理上切片存储。数据切片是MapReduce…

儿童书写台灯哪个牌子比较好?2023儿童护眼台灯分享

现在儿童的近视率高达52.7%,有科技水平的提高和电子产品的普及,近视率逐年攀升,出现低龄化现象,调查结果显示,其中6岁儿童达到14.3%,小学生为35.6%。初中生71.1%,高中生高达80.5%,可…

go语言rpc,grpc介绍

目录rpcRPC调用net/rpcRPC over HTTP 和 RESTfulserverclientRPC over TCP 和 RESTfulserverclient序列化/反序列化协议json序列化serverclientpython调用rpcRPC原理rpc框架比较grpcwhy gRpcgRPC与Protobuf介绍安装gRPC和Protobuf检查gRPC的开发方式编写proto代码编写Server端G…

Linux -文件系统操作与帮助命令

1、Linux -文件系统操作 df — 查看磁盘的容量 df -h —以人类可以看懂的方式显示磁盘的容量,易读 du 命令查看目录的容量 # 默认同样以块的大小展示 du # 加上 -h 参数,以更易读的方式展示 du -h-d 参数指定查看目录的深度: # 只查看 1…

开发了一款基于 Flask 框架的在线电影网站系统(附 Python 源码)

文章目录前言项目介绍源码获取运行环境安装依赖库项目截图首页展示图视频展示页视频播放页后台管理页整体架构设计图项目目录结构图前台功能模块图后台功能模块图本地运行图前言 今天我给大家分享的是基于 Python 的 Flask 框架开发的在线电影网站系统,大家平时需要…

秒杀商品展示及商品秒杀

目录一、登录方式调整二、生成秒杀订单1、绑定秒杀商品2、查看秒杀商品3、订单秒杀①移除seata相关②生成秒杀订单③前端页面秒杀测试一、登录方式调整 第1步:从zmall-common的pom.xml中移除spring-session-data-redis依赖 注意: 1)本章节中…

RocketMQ Broker消息处理流程及部分源码解析

🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年2月10日 &#x…

wait 和 notify

由于线程之间是抢占式执行的, 因此线程之间执行的先后顺序难以预知.但是实际开发中有时候我们希望合理的协调多个线程之间的执行先后顺序. wait() / wait(long timeout): 让当前线程进入等待状态.notify() / notifyAll(): 唤醒在当前对象上等待的线程. 注意: wait, notify,…

ChatGPT大火,你被这四种手段“割韭菜”了嘛?

目录 黑灰产利用ChatGPT的牟利方式 1、贩卖ChatGPT账号 2、售卖ChatGPT注册工具 3、制作山寨版ChatGPT 4、制作ChatGPT教程 ChatGPT对业务安全的帮助 提升漏洞挖掘的广度和精度 提升业务安全情报的效率和广度 ChatGPT自身的安全隐患 2022年11月,ChatGPT发布时&#…