PCA主成分分析法浅理解

news2024/11/22 14:50:22

ML课刚学,发现更多是对线性代数的回顾。更进一步说,统计机器学习方法就是以高数、线代和概率论为基石构筑的“一栋大厦”。下面主要沿着老师ppt的思路讲讲对PCA方法的个人理解。


在这里插入图片描述
这里 u 1 T x ( i ) u_1^Tx^{(i)} u1Tx(i) x ( i ) x^{(i)} x(i)在单位方向向量 u 1 u_1 u1上的投影长度,实际上 u 1 ⋅ x ( i ) ∣ u 1 ∣ = u 1 ⋅ x ( i ) = u 1 T x ( i ) \frac{u_1\cdot x^{(i)}}{|u_1|}=u_1\cdot x^{(i)}=u_1^Tx^{(i)} u1u1x(i)=u1x(i)=u1Tx(i).

在这里插入图片描述
求取投影后数据的方差,并通过协方差矩阵的形式表达:
1 N ∑ i = 1 N ( u 1 T x ( i ) − u 1 T μ ) 2 = 1 N ∑ i = 1 N ( ( x ( i ) ) T u 1 − μ T u 1 ) 2 = 1 N ∑ i = 1 N ( ( x ( i ) ) T u 1 − μ T u 1 ) T ( ( x ( i ) ) T u 1 − μ T u 1 ) = 1 N ∑ i = 1 N u 1 T ( ( x ( i ) ) T − μ T ) T ( ( x ( i ) ) T − μ T ) u 1 = 1 N ∑ i = 1 N u 1 T ( ( x ( i ) ) − μ ) ( ( x ( i ) ) − μ ) T u 1 = u 1 T [ 1 N ∑ i = 1 N ( ( x ( i ) ) − μ ) ( ( x ( i ) ) − μ ) T ] u 1 = u 1 T S u 1 \frac{1}{N}\sum_{i=1}^{N}(u_1^Tx^{(i)}-u_1^T\mu)^2\\ =\frac{1}{N}\sum_{i=1}^{N}((x^{(i)})^Tu_1-\mu^Tu_1)^2\\ =\frac{1}{N}\sum_{i=1}^{N}((x^{(i)})^Tu_1-\mu^Tu_1)^T((x^{(i)})^Tu_1-\mu^Tu_1)\\ =\frac{1}{N}\sum_{i=1}^{N}u_1^T((x^{(i)})^T-\mu^T)^T((x^{(i)})^T-\mu^T)u_1\\ =\frac{1}{N}\sum_{i=1}^{N}u_1^T((x^{(i)})-\mu)((x^{(i)})-\mu)^Tu_1\\ =u_1^T[\frac{1}{N}\sum_{i=1}^{N}((x^{(i)})-\mu)((x^{(i)})-\mu)^T]u_1\\ =u_1^TSu_1 N1i=1N(u1Tx(i)u1Tμ)2=N1i=1N((x(i))Tu1μTu1)2=N1i=1N((x(i))Tu1μTu1)T((x(i))Tu1μTu1)=N1i=1Nu1T((x(i))TμT)T((x(i))TμT)u1=N1i=1Nu1T((x(i))μ)((x(i))μ)Tu1=u1T[N1i=1N((x(i))μ)((x(i))μ)T]u1=u1TSu1
第一步变换,将点积表达为 u 1 T x ( i ) u_1^Tx^{(i)} u1Tx(i) ( x ( i ) ) T u 1 (x^{(i)})^Tu_1 (x(i))Tu1是等价的。

在这里插入图片描述
优化目标为使投影数据的方差最大,根据最大方差理论:方差越大,信息量越大。以此为目标使投影保留的数据信息量最大,损失最小。使用拉格朗日乘子法求解:
这里要用到矩阵求导公式: ∇ X X T A X = ( A + A T ) X \nabla_{X} X^TAX=(A+A^T)X XXTAX=(A+AT)X.
在这里插入图片描述
求导后我们发现极值处 λ 1 \lambda_1 λ1不就是协方差矩阵 S S S的特征值, u 1 u_1 u1不就是对应的特征向量!左右同时乘上 u 1 T u_1^T u1T,得到 u 1 T S u 1 = λ 1 u_1^TSu_1=\lambda_1 u1TSu1=λ1,等式左侧正是我们的优化目标,特征值 λ 1 \lambda_1 λ1就是数据投影至向量 u 1 u_1 u1上的方差。
因此,在算法步骤中,对 S S S进行特征值分解,将特征值从大到小排序 λ 1 , λ 2 , . . . λ n \lambda_1,\lambda_2,...\lambda_n λ1,λ2,...λn,对应的特征向量为 u 1 , u 2 , . . . u n u_1,u_2,...u_n u1,u2,...un,取前 K K K个作投影,将数据降至 K K K维。

PCA算法步骤:

在这里插入图片描述
在这里插入图片描述
前面提到损失最小,如何量化说明这点?通过降维后的数据重构原数据 x ~ ( i ) \widetilde{x}^{(i)} x (i),看损失了多少,是不是最小。

在这里插入图片描述
∣ ∣ x ( i ) − u u T x ( i ) ∣ ∣ 2 = ( x ( i ) − u u T x ( i ) ) T ( x ( i ) − u u T x ( i ) ) = ( ( x ( i ) ) T − ( x ( i ) ) T u u T ) ( x ( i ) − u u T x ( i ) ) = ( x ( i ) ) T x ( i ) − 2 ( x ( i ) ) T u u T x ( i ) + ( x ( i ) ) T u u T u u T x ( i ) = ( x ( i ) ) T x ( i ) − 2 ( x ( i ) ) T u u T x ( i ) + ( x ( i ) ) T u u T x ( i ) = ( x ( i ) ) T x ( i ) − ( x ( i ) ) T u u T x ( i ) ||x^{(i)}-uu^Tx^{(i)}||^2\\ =(x^{(i)}-uu^Tx^{(i)})^T(x^{(i)}-uu^Tx^{(i)})\\ =((x^{(i)})^T-(x^{(i)})^Tuu^T)(x^{(i)}-uu^Tx^{(i)})\\ =(x^{(i)})^Tx^{(i)}-2(x^{(i)})^Tuu^Tx^{(i)}+(x^{(i)})^Tuu^Tuu^Tx^{(i)}\\ =(x^{(i)})^Tx^{(i)}-2(x^{(i)})^Tuu^Tx^{(i)}+(x^{(i)})^Tuu^Tx^{(i)}\\ =(x^{(i)})^Tx^{(i)}-(x^{(i)})^Tuu^Tx^{(i)} x(i)uuTx(i)2=(x(i)uuTx(i))T(x(i)uuTx(i))=((x(i))T(x(i))TuuT)(x(i)uuTx(i))=(x(i))Tx(i)2(x(i))TuuTx(i)+(x(i))TuuTuuTx(i)=(x(i))Tx(i)2(x(i))TuuTx(i)+(x(i))TuuTx(i)=(x(i))Tx(i)(x(i))TuuTx(i)

m i n ∑ ( ( x ( i ) ) T x ( i ) − ( x ( i ) ) T u u T x ( i ) )    ⟺    m a x ∑ ( ( x ( i ) ) T u u T x ( i ) ) min\sum((x^{(i)})^Tx^{(i)}-(x^{(i)})^Tuu^Tx^{(i)})\\ \iff max\sum((x^{(i)})^Tuu^Tx^{(i)}) min((x(i))Tx(i)(x(i))TuuTx(i))max((x(i))TuuTx(i))
进一步变换,利用 u T x ( i ) = ( x ( i ) ) T u u^Tx^{(i)}=(x^{(i)})^Tu uTx(i)=(x(i))Tu
   ⟺    m a x ∑ ( ( ( x ( i ) ) T u ) ( u T x ( i ) ) )    ⟺    m a x ∑ ( ( u T x ( i ) ) ( ( x ( i ) ) T u ) )    ⟺    m a x ∑ ( u T x ( i ) ( x ( i ) ) T u )    ⟺    m a x   u T ∑ ( x ( i ) ( x ( i ) ) T ) u \iff max\sum(((x^{(i)})^Tu)(u^Tx^{(i)}))\\ \iff max\sum((u^Tx^{(i)})((x^{(i)})^Tu))\\ \iff max\sum(u^Tx^{(i)}(x^{(i)})^Tu)\\ \iff max\ u^T\sum(x^{(i)}(x^{(i)})^T)u max(((x(i))Tu)(uTx(i)))max((uTx(i))((x(i))Tu))max(uTx(i)(x(i))Tu)max uT(x(i)(x(i))T)u
最后发现这和前面方差最大的优化目标时相等价,印证了最大方差理论。

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

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

相关文章

webpack常用配置(二)之拆分配置

在《webpack常用配置(一)》里面是把关于webpack的配置放在了根目录下的webpack.config.js中,但是我们知道在开发环境下和在真正打包上线运行的环境是不一样的,所有我们需要把对webpack的配置拆分成 1.通用配置:webpack…

8.跨域请求

目录 1 一些概念 1.1 同源 1.2 同源策略 1.3 跨域 2 JSONP 2.1 原理 2.2 jQuery中的JSONP 2.2.1 默认情况 2.2.2 自定义键与函数名称 2.2.3 淘宝搜索建议请求 1 一些概念 1.1 同源 两个页面的 协议,域名与端口都相同,则两个页面…

[附源码]Python计算机毕业设计Django高校实验室仪器设备管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

大数据(9h)FlinkSQL双流JOIN

文章目录1、环境2、Temporal Joins2.1、基于处理时间(重点)2.1.1、设置状态保留时间2.2、基于事件时间3、Lookup Join(重点)4、Interval Joins(基于间隔JOIN)重点是Lookup Join和Processing Time Temporal …

【Ubuntu】修改ubuntu和windows双系统启动顺序

目录一、问题描述二、背景知识1. GRUB是什么2. GRUB配置文件3./etc/default/grub 主配置文件二、问题分析三、解决方案1. 修改grub主配置文件2. 更新grub配置文件一、问题描述 UbuntuWindows双系统默认使用GRUB作为引导管理器,而且通常默认启动Ubuntu。这样过于死板…

用Python分析了30000+《独行月球》影评数据,看看观众们怎么说~

文章目录🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 数据大小2.3 查看索引、数据类型和内存信息🏳️‍🌈 3. Pyecharts数据可视化3.1 《独行月球》评分分布-13.2 《独行月球》评分分布…

TypeScript学习笔记

TypeScript学习笔记 TypeScript 与 JavaScript 的区别 TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法。TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。TypeScript 文件的后缀名 .ts (.ts&am…

Milvus的索引方式

索引方式: FLAT:准确率高, 适合数据量小 暴力求解相似。 IVF-FLAT:量化操作, 准确率和速度的平衡 IVF:inverted file 先对空间的点进行聚类,查询时先比较聚类中心距离,再找到最近的N个点。 IV…

redis5.0集群搭建(两台服务器)

文章目录1. 前言2. 配置两台机器内网互联3. redis安装4. redis集群5.0之前和5.0之后版本的区别4.1 redis5.0之前的版本创建集群4.2 redis5.0之后的版本创建集群4.3 redis5.0之前的版本需要依赖ruby环境5. redis5.0集群搭建5.1 创建redis-cluster目录5.2 将之前的redis.conf拷贝…

windbg使用教程

下载 https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools 安装,打开exe 我选择了下载 打开X64 Debuggers And Tools-x64_en-us.msi 要安装对应系统位数 不然打不开 安装完成后没有反应。还以为我弄错了呢&#…

【学习笔记】深度学习入门:基于Python的理论与实现-神经网络的学习

CONTENTS四、神经网络的学习4.1 从数据中学习4.2 Loss function4.3 数值微分4.4 梯度4.5 学习算法的实现四、神经网络的学习 4.1 从数据中学习 神经网络的特征就是可以从数据中学习。所谓“从数据中学习”,是指可以由数据自动决定权重参数的值。利用特征量和机器学…

HBase 开发:使用Java操作HBase 第1关:创建表

为了完成本关任务,你需要掌握:1.如何使用Java连接HBase数据库,2.如何使用Java代码在HBase中创建表。 如何使用Java连接HBase数据库 Java连接HBase需要两个类: HBaseConfigurationConnectionFactoryHBaseConfiguration 要连接HBase…

SPARKSQL3.0-Spark兼容多版本Hive源码分析

一、前言 阅读本节需要先掌握Catalog基础知识 Spark对Hive的所有操作都是通过获取Hive元数据[metastore]帮助spark构建表信息从而调用HDFS-API对原始数据的操作,可以说Spark兼容多版本Hive就是在兼容Hive的Metastore 二、源码分析 在catalog一节中我们知道spark…

二.maven常用功能点

maven常用功能点一:分模块开发设计二:聚合三:继承1.依赖的继承2.可继承的内容3.聚合与继承的区分四:属性1.自定义属性2.内置属性3.Setting属性4.java系统属性5.环境变量属性五:java配置文件引用pom属性六:多…

基于PHP+MySQL大学生心理健康管理系统的设计与实现

随着时代的发展,大学生的数量与日预增但是相对的也出现了很多心理问题,大学生自杀等心理问题引起的问题屡见不鲜如何能过更好的培养大学生正确的心理健康问题是现在很多大学多面临的一个重要的问题。本系统主要是对共享自行车的信息进行管理。该系统的基本功能包括用户登录,用户…

云小课|云小课带你玩转可视化分析ELB日志

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 云日志服务支持可视化查看日志,当ELB日志接入云日志服务后&a…

[附源码]计算机毕业设计springboot青栞系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

野火FPGA进阶(3):SDRAM读写控制器的设计与验证

文章目录第50讲:SDRAM读写控制器的设计与验证理论部分设计与实现1. sdram_ctrlsdram_initsdram_a_refsdram_writesdram_readsdram_arbitsdram_ctrl2. sdram_topfifo_ctrlsdram_top3. uart_sdramuart_rxuart_txfifo_readuart_sdram第50讲:SDRAM读写控制器…

[附源码]JAVA毕业设计工程车辆动力电池管理系统(系统+LW)

[附源码]JAVA毕业设计工程车辆动力电池管理系统(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 …

怎么在Windows下使用Makefile文件

前言:如果熟悉在Linux开发的话,肯定知道Makefile文件的用处,它给我们带来很多的便利。在Linux系统下并不会像Windows那么多开发工具,在Windows下,只要在开发工具上点击一个按钮,就能将工程的所有源码进行编…