主成分分析(PCA)原理及推导

主成分分析(PCA)原理详解 机器学习中有关特征选择的问题,其实就是要剔除和类标签无关的特征,去除噪声或者冗余。在这种情况下,需要一种特征降维的方法来减少特征数,减少噪音和冗余,减少过度拟合的可能性。PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征。这k维特征称为主成分,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。现在的问题是,对于很高维数据,你能想象其分布吗?就算能描述分布,如何精确地找到这些主成分的轴?如何衡量你提取的主成分到底占了整个数据的多少信息?所以,我们就要用到主成分分析的处 阅读详情


来源:http://blog.youkuaiyun.com/zhongkejingwang/article/details/42264479

 什么是PCA?

  在数据挖掘或者图像处理等领域经常会用到主成分分析,这样做的好处是使要分析的数据的维度降低了,但是数据的主要信息还能保留下来,并且,这些变换后的维两两不相关!至于为什么?那就接着往下看。在本文中,将会很详细的解答这些问题:PCA、SVD、特征值、奇异值、特征向量这些关键词是怎么联系到一起的?又是如何在一个矩阵上体现出来?它们如何决定着一个矩阵的性质?能不能用一种直观又容易理解的方式描述出来?

数据降维

    为了说明什么是数据的主成分,先从数据降维说起。数据降维是怎么回事儿?假设三维空间中有一系列点,这些点分布在一个过原点的斜面上,如果你用自然坐标系x,y,z这三个轴来表示这组数据的话,需要使用三个维度,而事实上,这些点的分布仅仅是在一个二维的平面上,那么,问题出在哪里?如果你再仔细想想,能不能把x,y,z坐标系旋转一下,使数据所在平面与x,y平面重合?这就对了!如果把旋转后的坐标系记为x',y',z',那么这组数据的表示只用x'和y'两个维度表示即可!当然了,如果想恢复原来的表示方式,那就得把这两个坐标之间的变换矩阵存下来。这样就能把数据维度降下来了!但是,我们要看到这个过程的本质,如果把这些数据按行或者按列排成一个矩阵,那么这个矩阵的秩就是2!这些数据之间是有相关性的,这些数据构成的过原点的向量的最大线性无关组包含2个向量,这就是为什么一开始就假设平面过原点的原因!那么如果平面不过原点呢?这就是数据中心化的缘故!将坐标原点平移到数据中心,这样原本不相关的数据在这个新坐标系中就有相关性了!有趣的是,三点一定共面,也就是说三维空间中任意三点中心化后都是线性相关的,一般来讲n维空间中的n个点一定能在一个n-1维子空间中分析!所以,不要说数据不相关,那是因为坐标没选对!

    上面这个例子里把数据降维后并没有丢弃任何东西,因为这些数据在平面以外的第三个维度的分量都为0。现在,我假设这些数据在z'轴有一个很小的抖动,那么我们仍然用上述的二维表示这些数据,理由是我认为这两个轴的信息是数据的主成分,而这些信息对于我们的分析已经足够了,z'轴上的抖动很有可能是噪声,也就是说本来这组数据是有相关性的,噪声的引入,导致了数据不完全相关,但是,这些数据在z'轴上的分布与原点构成的夹角非常小,也就是说在z'轴上有很大的相关性,综合这些考虑,就可以认为数据在x',y'轴上的投影构成了数据的主成分!

    现在,关于什么是数据的主成分已经很好的回答了。下面来看一个更具体的例子。

下面是一些学生的成绩:


首先,假设这些科目成绩不相关,也就是说某一科考多少份与其他科没有关系。那么一眼就能看出来,数学、物理、化学这三门成绩构成了这组数据的主成分(很显然,数学作为第一主成分,因为数学成绩拉的最开)。为什么一眼能看出来?因为坐标轴选对了!下面再看一组数据,还能不能一眼看出来:


是不是有点凌乱了?你还能看出来数据的主成分吗?显然不能,因为在这坐标系下数据分布很散乱。所以说,看到事物的表象而看不到其本质,是因为看的角度有问题!如果把这些数据在空间中画出来,也许你一眼就能看出来。但是,对于高维数据,能想象其分布吗?就算能描述分布,如何精确地找到这些主成分的轴?如何衡量你提取的主成分到底占了整个数据的多少信息?要回答这些问题,需要将上面的分析上升到理论层面。接下来就是PCA的理论分析。

PCA推导

    以下面这幅图开始我们的推导:


上面是二维空间中的一组数据,很明显,数据的分布让我们很容易就能看出来主成分的轴(简称主轴)的大致方向。下面的问题就是如何通过数学计算找出主轴的方向。来看这张图:


现在要做的事情就是寻找u1的方向,对于这点,我想好多人都有经验,这不就是以前用最小二乘法拟合数据时做的事情吗!对,最小二乘法求出来的直线(二维)的方向就是u1的方向!那u2的方向呢?因为这里是二维情况,所以u2方向就是跟u1垂直的方向,对于高维数据,怎么知道u2的方向?经过下面的理论推导,各个主轴都能确定下来。

    给定一组数据:(如无说明,以下推导中出现的向量都是默认是列向量)

               

将其中心化后表示为:

        

         

中心化后的数据在第一主轴u1方向上分布散的最开,也就是说在u1方向上的投影的绝对值之和最大(也可以说方差最大),计算投影的方法就是将x与u1做内积,由于只需要求u1的方向,所以设u1是单位向量。

也就是最大化下式:

                               

也即最大化:

                   

解释:平方可以把绝对值符号拿掉,光滑曲线处理起来方便。

两个向量做内积可以转化成矩阵乘法:

                    

所以目标函数可以表示为:

                                     

括号里面就是矩阵乘法表示内积,转置以后的行向量乘以列向量得到一个数。因为一个数的转置还是其本身,所以又可以将目标函数化为:

                                 

这样就可以把括号去掉!去掉以后变成:

                                  

由于u1和i无关,可以把它拿到求和符外面:

                                 

注意,其实括号里面是一个矩阵乘以自身的转置,这个矩阵形式如下:

                                

X矩阵的第i列就是xi,于是有:

                                 

所以目标函数最后化为:

                                

上式到底有没有最大值呢?如果没有前面的1/n,那就是就是一个标准的二次型!并且XX'(为了方便,用'表示转置)得到的矩阵是一个半正定的对称阵!为什么?首先XX'是对称阵,因为(XX')'=XX',下面证明它是半正定,什么是半正定?就是所有特征值大于等于0。

假设XX'的某一个特征值为,对应的特征向量为,则有:

                                                                             

                                                                 

                                                                

                      

                                                      

证明完毕!对于半正定阵的二次型,存在最大值!现在问题就是如何求目标函数的最大值?以及取最大值时u1的方向?下面介绍两种方法。

方法一  拉格朗日乘数法

目标函数和约束条件构成了一个最大化问题:

                                                      

构造拉格朗日函数:

                                   

对u1求导

                                  

显然,u1即为XX'特征值对应的特征向量!XX'的所有特征值和特征向量都满足上式,那么将上式代入目标函数表达式即可得到

                                      

所以,如果取最大的那个特征值,那么得到的目标值就最大。有可能你会有疑问,为什么一阶导数为0就是极大值呢?那么再求二阶导数:


二阶导数半负定,所以,目标函数在最大特征值所对应的特征向量上取得最大值!所以,第一主轴方向即为第一大特征值对应的特征向量方向。第二主轴方向为第二大特征值对应的特征向量方向,以此类推,证明类似。

下面介绍第二种方法

方法二  奇异值法

这方法是从矩阵分析里面总结的,随便取个名叫奇异值法。

首先,对于向量x,其二范数(也就是模长)的平方为:

                                   

所以有:

        

把二次型化成一个范数的形式,最大化上式也即这个问题:对于一个矩阵,它对一个向量做变换,变换前后的向量的模长伸缩尺度如何才能最大?这个很有趣,简直就是把矩阵的真面目给暴露出来了。为了给出解答,下面引入矩阵分析中的一个定理:

                         

表示矩阵A的最大奇异值!一个矩阵A的奇异值为AA'(或A'A)的特征值开平方,前面讲过AA'的特征值都大于等于0。当x为单位向量时,上式就是我们的目标函数表达式。然而,上式只是告诉我们能取到最大值是多少,并没有说取到最大值时x的方向,要想知道取到最大值时的方向,那就来证明这个定理吧!

考察对称阵

                   

设

               

为其n个特征值,并令与之对应的单位特征向量为:

                  

对了,忘了提醒,对称阵不同特征值对应的特征向量两两正交!这组特征向量构成了空间中的一组单位正交基。

任意取一个向量x,将其表示为

                             

则

                          

           

将代入上式可得

     

由于这些单位特征向量两两正交,只有相同的做内积为1,不同的做内积为0.所以上式做内积出来的结果为:

     

根据特征值的大小关系有

                        

所以

                            

定理得证!

显然,当时取得最大值

                        

                                        

再回到我们的问题,需要最大化:

                                  

将X'代入上面证明过程中的矩阵A,则u1的方向即为A'A=(X')'X'=XX'对大特征值对应的特征向量的方向!

所以第一主轴已经找到,第二主轴为次大特征值对应的特征向量的方向,以此类推。

两种方法殊途同归,现在来解答关于主成分保留占比的问题。上面我们知道第一主轴对应的最大值是最大奇异值(也就是AA'最大特征值开平方),第二主轴对应的最大值是次大奇异值,以此类推。那么假设取前r大奇异值对应的主轴作为提取的主成分,则提取后的数据信息占比为:

                                                             

分子是前r大奇异值的平方和,分母是所有奇异值的平方和。



到此,主成分分析PCA就讲完了,文章最后提到了奇异值,关于这个,后面的奇异值分解(SVD)文章将会详细讲解并给出其具体应用!

PCA:详细解释主成分分析 1 PCA目的/作用 主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。 PCA降维的目的,就是为了在尽量保证“信息量不丢失”的情况下,对原始特征进行降维,也就是尽可能将原始特征往具有最大投影信息量的维度上进行投影。将原特征投影到... 阅读详情

相关推荐

PCA原理讲解及举例(含图像分析具体代码实例)

1. 数据降维 降维是一种对高维度特征数据预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法。 降维具有如下一些优点: 使得数据集更易使用。 降低算法的计算开销。 去除噪声。 使得结果容易理解。 降维的算法有很多,比如主成分分析(PCA)、奇异值分解(SVD)、因子分析(FA)、独立成分分析(ICA)。 本篇文章我们主要

Lyndsey的博客 5227

主成分分析(PCA)详解

主成分分析(PCA)原理与应用

weixin_60737527的博客 9万+

LVGL 离线字体转换lv_font_conv本地安装

LVGL FONT CONV 离线版本

liu132641的专栏 3386

主成分分析法(PCA)

主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。

weixin_45142381的博客 3万+

Openwork 入门指南:开源 AI 桌面助手快速上手

Openwork是一款开源的AI桌面代理工具,提供类似Claude Cowork的免费替代方案。它支持本地运行,确保隐私安全,并能高效处理文件整理、文档读写等任务。支持多种AI模型,通过MIT许可完全免费。安装简单,仅需运行命令行或下载桌面版,需配置API Key后即可使用。操作直观,支持多步骤规划和权限控制,适合自动化重复工作。目前主要支持macOS,未来将扩展至Windows/Linux。建议从简单任务入手,逐步掌握这一高效的数字助手工具。

3802

【WRF-GHG 教程第一期】概述(Overview)

概述(Overview)

WW、forever的博客 509

PCA(主成分分析)数学原理推导证明

PCA的纯数学推导过程

白翎书生 6143

基于STM32L4XX、HAL库的ICP-10111压力传感器驱动程序设计

define ICP10111_CMD_MEAS_ULN 0x7866 // 超低噪声模式。#define ICP10111_CMD_MEAS_LP 0x609C // 低功耗模式。#define ICP10111_CMD_MEAS_LN 0x70DF // 低噪声模式。#define ICP10111_CMD_MEAS_N 0x6825 // 正常模式。ICP10111_MODE_LN, // 低噪声。// 等待测量完成(根据模式不同等待时间不同)

zhusl6688的博客 416

主成分分析(PCA)原理与推导

主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。1. PCA的思想    PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。具体的,假如我们的数据集是n维的,共有m个数据(...

qq_38734403的博客 2047

RockChip Android14 修改LCD背光最大值

在调试LCD屏时时长会出现硬件不匹配,导致电流过大,屏幕发热严重。在不调整硬件的情况下,我们可以通过修改软件,降低LCD背光最大值来实现适配。我们都知道LCD屏背光是靠pwm来控制,一般来说最大值可以设置为255,针对上述问题,我们可以通过软件来降低该值,比如200,100等等。

qq_34968572的博客 631

[NoC]Outstanding和Credit的概念详解

摘要:本文详细解析了计算机体系结构中outstanding和credit两个核心概念。outstanding指已发出但未完成的请求数量,通过跟踪未决事务实现并发和乱序执行,常见于AXI总线等场景;credit则是基于信用令牌的流控机制,通过控制发送速率防止接收端缓冲溢出,多用于NoC网络。二者在目的、机制上存在差异:outstanding侧重提升并发度,credit关注流控保护。文章通过AXI协议实例和SystemC代码示例展示了二者的应用与结合方式,并探讨了在SoC设计中参数优化的方法,包括性能/资源权衡

元直的博客 2283

PCA主成分分析算法的数学原理推导

PCA(Principal Component Analysis)主成分分析法的数学原理推导1、主成分分析法PCA的特点与作用如下:(1)是一种非监督学习的机器学习算法(2)主要用于数据的降维(3)通过降维,可以发现人类更加方便理解的特征(4)其他的应用:去燥;可视化等2、主成分分析法的数学原理主要是利用梯度上升法来最优化目标函数,即利用梯度上升法来求取效用函数的最大值,其具体的数学原理...

weixin_30646315的博客 451

上位机 寻边器 通讯实战

寻边器通讯接口实现 本文介绍了上位机与盖泽(Gazer)和JEL品牌寻边器的通讯接口实现方案。主要内容包括: 接口定义:创建了IAlignerOperation接口,定义了获取状态、控制运动、真空吸附等核心功能。 具体实现: 盖泽寻边器(GazerAlignerCjh):通过串口通讯,实现了回零、校准、移动位置等操作 JEL寻边器(JelAligner):同样基于串口通讯,包含错误处理、状态查询等功能 工厂模式:通过AlignerFactory工厂类根据设备品牌创建对应的实现对象。 设备加载:展示了如何在系

StevenChen的博客 377

PCA主成分分析原理推导

 什么是PCA?   在数据挖掘或者图像处理等领域经常会用到主成分分析,这样做的好处是使要分析的数据的维度降低了,但是数据的主要信息还能保留下来,并且,这些变换后的维两两不相关!至于为什么?那就接着往下看。在本文中,将会很详细的解答这些问题:PCA、SVD、特征值、奇异值、特征向量这些关键词是怎么联系到一起的?又是如何在一个矩阵上体现出来?它们如何决定着一个矩阵的性质?能不能用一种直观又容易理解的方式描述出来? 数据降维 &nb...

scy的技术博客 310

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

从优化角度推导主成分分析法(PCA)的数学原理

从优化角度推导主成分分析法PCA的数学原理

MayPatent的博客 940

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 数据预处理和weka.filters的使用
下一篇: BP神经网络的数学原理及其算法实现
Bryan__
博客等级 码龄12年 2500粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值