PCA学习记录

本文深入探讨PCA(主成分分析)及其在机器学习中的应用,包括降维的原因、PCA与特征选择的区别、PCA如何实现降维的原理以及PCA算法步骤。PCA通过最大化方差找到最优投影方向,从而实现数据的低维表示。
摘要由CSDN通过智能技术生成

摘要:

本文主要讨论的对象是PCA(主成分分析)。

PCA是什么?

PCA(主成分分析)在机器学习中的应用很广泛,通常PCA可以用来对数据进行降维,或者说将数据从高维的空间映射到低维的空间。简单来说,所谓的降维其实就是这么一个过程:

假设原始数据有 n n 个样例, m 个特征,也就是 n×m n × m 的矩阵。把这个 n×m n × m 的规模的矩阵映射成一个 n×k n × k 的矩阵过程就是一个降维的过程,特征维度从 m m 降到了 k

那很自然地会有一个问题,为什么要降维,也就是维度太高有哪些不好的地方?

1.数据维度太高的时候采用树模型的话就不太合适,因为这个时候特征维度高,特征之间可能存在相关性,一方面数据存在冗余信息,另一方面很多的特征都将得不到使用。

2.数据维度太高时会导致模型变的复杂(因为需要学习的参数变多了,模型自然就变得复杂了)

3.对机器的性能要求也提高了,当数据的特征维度比较高时,这个时候不仅需要更多空间来存储数据,模型的训练也会变慢。

其实上面都是从模型的角度来看的,如果从数据本身来看的话,做降维其实就是为了得到一个质量更加好的数据集。举一个简单的例子,比如有一个数据集如下:
这里写图片描述

上面的数据集中有4条样本,每条样本有3个特征。可以看到对于feature1,其取值全部都是1,很明显,这一个维度其实是冗余的,因为在这个维度上其方差为0,也就是任何样本对于这个特征的取值都是一样,模型在这个维度上学习不到任何的东西,因此我们完全可以把这个维度去掉。

那我们是直接把feature1去掉,然后保留feature2和feature3吗?
这里其实涉及到和 降维很类似的东西 特征选择。

PCA与特征选择

我们知道,特征选择是机器学习一个很重要的步骤。我们有许多做特征选择的方法。
其中判断某一个特征的方差也是一个常用而简单的方法。对于上面的数据集,如果我们进行特征选择的话,很容易就会把feature1去掉,保留feature2,feauture3而且 数值不变,即为下面的数据集:
这里写图片描述
这个时候,特征维度也从3维减少为2维,这里其实也是一个降维的过程。但是其与PCA是完全不一样的结果,如果利用PCA的话,上面数据缩减为2维时的结果如下:
这里写图片描述
可以看到,相比直接的特征选择,其缩减为2维的时候,feature2和feature3在数值是会变化的。

当然原因是因为特征选择是在经过某个指标的分析对比后,直接删掉某个维度的特征来实现特征维度的降低,数值上前后当然不发生变化。而PCA是通过一个映射的关系来实现特征维度的降低,既然经过了映射数值发生变化了是很自然的。

PCA如何实现降维?

上面简单谈了下什么是PCA,以及为何做PCA后,下面就开始分析PCA是如何实现降维的。
PCA的思想其实简单的概括就是:选取包含信息量最多的方向对数据进行投影,其投影方向可以从最大化方差或者最小化投影误差两个角度来理解。

比如说,对二维平面上的点按照下图方向投影时(叉号是原来的点,实心点是投影后的点)
这里写图片描述

对比另外一个投影方向:
这里写图片描述

可以看到,对于第一个投影,投影后的点更加的分散,对于第二个投影,投影后的点相对比较集中。按照最大化方差,第一个投影的效果会更好,更加的分散意味着投影后的方差更大。


可能刚学习PCA的时候都会对为何要最大化方差产生疑问。其实这个问题很好理解,我们可以考虑两个极端的情况,一个就是空间中的点投影后全部到落在了一个点上,另外一个就是空间中的点投影后每一个点都不一样。同时,我们可以把投影后产生的点看成一维新的特征,那么对于前者,既然特征的取值全部都为一样了,这个时候即使降维了,模型也无法从这一个维度中学习到任何的信息。相反,对于后者,由于投影后每一个点都一样,说明这个特征具有一定区分度,同时方差大说明包含的信息量大。
所以PCA的思想就是通过最大化方差来找到合适的投影方向。


下面就是开始用数学的语言来描述PCA的整个过程:

既然我们希望投影后的投影值尽可能的分散,也就是说:
投影后样本点的方差: iUTxixTiU ∑ i U T x i x i T U
尽可能的分散等价于最大化方差: Max(iWTxixTiW) M a x ( ∑ i W T x i x i T W )


这里简单解释一下为什么投影后的样本点方差是 iUTxixTiU ∑ i U T x i x i T U

在空间中的一点 x x ,若往方向单位向量 u 上投影,其投影后的坐标为 xTu x T u 或者 uTx u T x
假如我们的数据集 X X 用矩阵表示如下:

X = [ a 1 a 2 a 3 b 1 b 2 b 3 ]

每一行代表某一个特征,每一列代表一条样本。
那么假设投影向量为P

P=[u1u2] P = [ u 1 u 2 ]

将数据集X在P方向上投影:
Y=[u1u2][a1b1a2b2a3b3]=[u1a1+u2b1u1a2+u2b2u1a3+u2b3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值