PCA的数学原理和可视化效果

本文机构

  • 什么是PCA
  • 数学原理
  • 可视化效果

什么是PCA

PCA是机器学习中对数据进行降维的一种方法。
例如,我们有这样的交易数据,他有这几个特征:(日期,浏览量,访客数,下单数,成交数,成交金额),从经验可知,“浏览量”和访客数,下单数和成交数 之间会具有较强的相关关系,这种情况下,我们保留其中的两个维度就可以保证原有的信息完整。

但是当我们在做降维的时候,会丢失掉一部分信息。

例如,下面是5个数据,如果向x 轴投影,那么左边的两点会重叠在一起,中间的两个电也会重叠在一起,5个点结果投影到X轴后就剩下3个点了,这是一种严重的信息丢失。
在这里插入图片描述
所以我们希望找到低维空间的方向上,原始数据映射后的方差尽可能的大,也就是意味着数据点会尽量分散开来,这样可以保留更过的信息。

PCA追求的是在降维之后能够最大化保持数据的内在信息,并通过衡量在投影方向上的数据方差的大小来衡量在投影方向上的数据方差的大小来衡量该方向的重要性,它是丢失原始数据信息最少的一种线性降维方法。

PCA的算法步骤
设有m条n维数据。

  1. 将原始数据按列组成n行m列矩阵X
  2. 将X的每一行(代表一个属性字段)进行零均值,即减去这一行的均值
  3. 求出协方差矩阵C = 1/mXXT
  4. 求出协方差的特征值和特征向量
  5. 将特征向量按对应特征值的大小从上到下按行排列成矩阵,取前K行组成矩阵P
  6. Y= PX 即为降维到k维后的数据

2.数学原理

要找到这个低维空间,意味着要确定一组基
如下图,蓝色正交箭头就是新的坐标系的基向量:
在这里插入图片描述
我们希望原数据在新坐标系上的投影尽可能分散
同一个点,在新坐标系下的投影,就是它和两个基的内积

因为A与B的内积等于A.B = |A||B|cos(a)
B为基时,|B| =1,则A.B =|A|cos(a).即这个内积等于A到B的投影长度,也是坐标值
这个分散程度,可以用数学上的方差来表达
一个字段的方差可以看做是每个元素与字段均值的差的平方和均值:
在这里插入图片描述
在PCA第二步已经将每个字段的均值都化为0了,因此这里方差可以直接用每个元素的平方和除以元素个数表述:
在这里插入图片描述
不仅如此,当我们选择第二个投影方向时,
不希望他们之间存在线性相关性 不然的话必然存在重复表示的信息。
在数学上可以用两个字段的协方差来表示其相关性,由于已经让每个字段均值为0,则
在这里插入图片描述
所以希望协方差为0,这样两个字段完全独立,那么第二个基只能在与第一个基正交的方向上选择。
于是,我们得到了降维问题的优化目标。
将一组 N 维向量降为 K 维,目标是选择 K 个单位正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,并且字段的方差则尽可能大(即在正交的约束下,取最大的K个方差)。
假设我们有数据 X,它有 a 和 b 两个字段:
在这里插入图片描述
X的协方差矩阵计算如下
在这里插入图片描述
可以看到这个矩阵对角线上的两个元素分别是两个字段的方差,而其它元素是 a 和 b 的协方差。

于是优化目前等价于将原始数据变换到这组基上后,要使新数据表示的协方差矩阵对角化,并且在对角线上将元素按大小从上到下排列。
即令 P 是这组基按行组成的矩阵,则 Y=PX 就是 X 对 P 做基变换后的数据。(6)
记 Y 的协方差矩阵为 D,
那么 D 与 C 有如下关系:
在这里插入图片描述
这样,优化目标变成了寻找一个矩阵 P,满足 PCP? 是一个对角矩阵,即对 C 进行对角化(3)

如何求 P:

C 是一个是对称矩阵,在线性代数书上可以找到“实对称矩阵对角化”的内容。

一个 n 行 n 列的实对称矩阵一定可以找到 n 个单位正交特征向量 e1,e2,⋯,en,

由它们按列组成的矩阵 E=(e1,e2,⋯,en) 可以将 C 对角化:(4)
在这里插入图片描述
对角元素为各特征向量对应的特征值。

于是 P=E?,即 P 的每一行都是 C 的一个特征向量。(5)

这样,就得到了 PCA 步骤中的第 3~6 步。

3. 可视化效果

例如下图,我们要将 2 维变成 1 维,
空心圆为数据,得到红箭头为第一主成分方向,蓝箭头为第二主成分方向:
在这里插入图片描述
将两个主成分分别作为新的坐标系时,可以看到下图中十字数据的状态:
在这里插入图片描述
当我们只看第一主成分时,如下面所示,蓝色点是降维后的数据:
可以看出在 PC1 上的方差很大,而 PC2 上的方差比较小,相对而言,PC2 就可以被忽略,进而实现了降维
在这里插入图片描述
我们可以将降维后的数据与原数据进行对比,发现原数据在 PC2 上的信息已经被丢弃
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值