主成分分析PCA

PCA(主成分分析)是一种无监督的降维技术,通过找到最大化方差的方向来构建新特征。算法流程包括数据预处理、计算协方差矩阵及其特征值、选取最大特征值对应的特征向量作为投影矩阵。PCA理论基础可以从最大方差和最小重构误差两个角度理解,两者本质上是等价的。在Python中,可以通过计算XXT的特征值和特征向量实现PCA。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 PCA简介

PCA是常用的无监督降维技术。

我们在用多个特征描述对象时,特征之间可能是相关的,这导致了信息冗余。应该存在这样一组特征,使得特征数尽可能少并且丢失的信息尽可能少,PCA就是用于寻找这样一组特征的算法。

PCA算法并不是简单地从已有特征中选择一组特征,而是构建一组新特征,并且每个新的特征是原始特征的线性组合,也就是说,对于原始特征空间中的实例 xRd ,其新特征为 zi=wTix,i=1,2,,k ,每个特征对应一个向量 wi 。于是PCA需要解决的问题转换成了求解矩阵 W=(w1,w2,,wk)Rd×k 。由于 wTix 是向 wi 方向上的投影操作,所以称 W 为投影矩阵。在求出W之后,通过表达式 z=WTx 可以得到实例降维之后的表示。

2 PCA算法流程

给定N个训练实例 { x1,x2,,xN} ,每个实例用 Rd 空间中的一个向量表示。我们定义矩阵 XRN×d ,它的每一行代表一个实例。

2.1 训练过程

PCA根据训练实例得到投影矩阵 W 的过程包含以下步骤。

1、数据预处理
首先需要对训练实例进行中心化的操作。

计算均值向量并保存:

μ=1Ni=1Nxi,

对每个实例,减去均值向量:

xi=xiμ,

即每个特征要减去该特征的均值。

中心化操作相当于把训练实例的中心点移动到原点。

目前看到的所有资料中,都强调了中心化,但是至于为什么并没有介绍。思考了一下,应该是因为方便计算协方差矩阵。

至于方差归一化,阅读的PCA资料中很多并没有做这一操作。但这里也介绍一下方差归一化的方法。在求出每个特征的均值之后,计算该特征的标准差,然后用中心化处理后的特征除以对应的标准差。

2、计算协方差矩阵

得到中心化后的实例矩阵 X 后,根据公式 C=1N1XTX (除以N-1而非N是因为这是总体协方差矩阵的无偏估计)计算协方差矩阵 CRd×d 。在实际计算的时候,由于常数系数对后续阶段没有影响,所以可以省略,直接把 XTX 当作协方差矩阵。

3、求协方差矩阵的特征值和特征向量

计算协方差矩阵 C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值