ML基本知识(四)PCA理论基础

本文介绍了数据降维的重要性和目标,通过最大方差概念来确保降维过程中信息的最大保留。文章详细解释了数据预处理步骤及降维过程,并通过实例说明如何选择最佳的投影方向以保持降维后数据的方差。

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

首先声明一下,我这只有干货,没有啥多余的,可能大家比较不适应, 建议有一定大学数学基础的读者来看这篇水文,若有哪点讲的不好的地方,请大家多多吐槽。

拿到的原始的数据的维度很大,而且其中有很多冗余的信息,需要把这些信息过滤掉,但同时必须最大限度的保留原始信息,举个栗子,本来数据中有性别这一项,而且这一项很重要,但是降维之后发现性别这一项没有了,或者根据降维后的信息无法区分这个是男还是女,这样的降维就是失败的。因而根据上述的描述,我们已经明确了目标。

而如今的问题就是如何降维,在这里介绍一个最大方差的概念,可能有些概率基础的人都知道,方差越大蕴含的信息越多,这里所说的信息就是上文中提到的信息,因而如果能够保证降维后的数据和原始数据的方差相差不多或者下降的不会太少,这些都是可以容忍的,因而可以从这个角度来考虑问题。

数据降维前的预处理就是要把数据在每一个维度上都减掉均值,而后再去降维,所谓的降维,就是把数据从高维空间投影到低维空间,且能够保证投影后的数据方差最大,下面的图片就解释了什么是投影,
投影

给出一个具体的实例见下图,有已经预处理好的五个点,即减掉了均值之后的数据,
数据
而可以很明显的看出,下面两张图中,左边这张图的投影效果比较好,因为投影之后方差比较大,
对比图片
这里还要说明一下,投影前已经减掉过均值,即数据在每个维度上的均值都为0,那么降维后的均值也是为0的,那么降维后的数据方差为如下公式,
1m∑i=1n(xT⋅u)2=1m∑i=1nuTx⋅xTu=uT(1mx⋅xT)u\frac{1}{m}\sum_{i=1}^{n}(x^{T}\cdot u)^{2}=\frac{1}{m}\sum_{i=1}^{n}u^{T}x\cdot x^{T}u=u^{T}(\frac{1}{m}x\cdot x^{T})um1i=1n(xTu)2=m1i=1nuTxxTu=uT(m1xxT)u
中间的那部分就是xxx的协方差,用λ\lambdaλ来表示1m∑i=1n(xT⋅u)2\frac{1}{m}\sum_{i=1}^{n}(x^{T}\cdot u)^{2}m1i=1n(xTu)2,用∑\sum 来表示1mx⋅xT\frac{1}{m}x\cdot x^{T}m1xxT, 可以得到如下神奇的结果,
∑u=λu\sum u = \lambda uu=λu
可以得到λ\lambdaλ是预处理数据的特征值,uuu是特征向量,而且特征值越大,就代表1m∑i=1n(xT⋅u)2\frac{1}{m}\sum_{i=1}^{n}(x^{T}\cdot u)^{2}m1i=1n(xTu)2越大,即降维后的数据的方差越大,因而取几个最大的特征对应的特征向量和原先的数据再乘回去,就变成了降维后的数据,既有如下结果,可能形式不是很正确,但是意思大家都能够理解,
y=[u1Txu2Tx...unTx]y=\begin{bmatrix} u_{1}^{T}x\\ u_{2}^{T}x\\ ...\\ u_{n}^{T}x\\ \end{bmatrix} y=u1Txu2Tx...unTx
如果有哪点解释的不对,希望大家能够多多指出来,由于这里只讲了方法,没有讲实例,但是我相信原理懂了,实例自然就不会太难了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值