7.2 PCA-机器学习笔记-斯坦福吴恩达教授

PCA(主成分分析)

PCA,Principle Component Analysis,即主成分分析法,是特征降维的最常用手段。顾名思义,PCA 能从冗余特征中提取主要成分,在不太损失模型质量的情况下,提升了模型训练速度。
在这里插入图片描述
如上图所示,我们将样本到红色向量的距离称作是投影误差(Projection Error)。以二维投影到一维为例,PCA 就是要找寻一条直线,使得各个特征的投影误差足够小,这样才能尽可能的保留原特征具有的信息。

假设我们要将特征从 n n n 维度降到 k k k 维:PCA 首先找寻 k k k n n n 维向量,然后将特征投影到这些向量构成的 k k k 维空间,并保证投影误差足够小。下图中中,为了将特征维度从三维降低到二位,PCA 就会先找寻两个三维向量 u ( 1 ) u^{(1)} u(1), u ( 2 ) u^{(2)} u(2) ,二者构成了一个二维平面,然后将原来的三维特征投影到该二维平面上:
在这里插入图片描述

算法流程

假定我们需要将特征维度从 n n n 维降到 k k k 维。则 PCA 的执行流程如下:

  1. 特征标准化,平衡各个特征尺度:
    x j ( i ) = x j ( i ) − μ j s j ,   μ j 为 特 征   j   的 均 值 , s j   为 特 征   j   的 标 准 差 。 x^{(i)}_j=\frac{x^{(i)}_j−μ_j}{sj},\ μ_j 为特征\ j\ 的均值,s_j\ 为特征\ j\ 的标准差。 xj(i)=sjxj(i)μj, μj j sj  j 

  2. 计算协方差矩阵 Σ Σ Σ
    Σ = 1 m ∑ i = 1 m ( x ( i ) ) ( x ( i ) ) T = 1 m ⋅ X T X \Sigma = \frac 1m \sum_{i=1}^m(x^{(i)})(x^{(i)})^T =\frac1m\cdot X^TX Σ=m1i=1m(x(i))(x(i))T=m1XTX

  3. 通过奇异值分解(SVD),求取 Σ Σ Σ 的特征向量(eigenvectors):
    ( U , S , V T ) = S V D ( Σ ) (U,S,V^T)=SVD(\Sigma) (U,S,VT)=SVD(Σ)

  4. U U U 中取出前 k k k 个左奇异向量,构成一个约减矩阵 U r e d u c e Ureduce Ureduce :
    U r e d u c e = ( u ( 1 ) , u ( 2 ) , ⋯ , u ( k ) ) U_{reduce}=(u^{(1)},u^{(2)},⋯,u^{(k)}) Ureduce=(u(1),u(2),,u(k))

  5. 计算新的特征向量: z ( i ) z^{(i)} z(i)
    z ( i ) = U r e d u c e T ⋅ x ( i ) z^{(i)}=U^T_{reduce}⋅x^{(i)} z(i)=UreduceTx(i)

特征还原

因为PCA仅保留了特征的主成分,所以PCA是一种有损的压缩方式,假定我们获得新特征向量为:
z = U r e d u c e T x z=U^T_{reduce}x z=UreduceTx

那么,还原后的特征 x a p p r o x x_{approx} xapprox 为:
x a p p r o x = U r e d u c e z x_{approx}=U_{reduce}z xapprox=Ureducez

在这里插入图片描述

降到多少维才合适?

从 PCA 的执行流程中,我们知道,需要为 PCA 指定目的维度 k k k 。如果降维不多,则性能提升不大;如果目标维度太小,则又丢失了许多信息。通常,使用如下的流程的来评估 k k k 值选取优异:

  1. 求各样本的投影均方误差:
    min ⁡ 1 m ∑ j = 1 m ∣ ∣ x ( i ) − x a p p r o x ( i ) ∣ ∣ 2 \min \frac 1m \sum_{j=1}^m||x^{(i)}-x^{(i)}_{approx}||^2 minm1j=1mx(i)xapprox(i)2

  2. 求数据的总变差
    1 m ∑ j = 1 m ∣ ∣ x ( i ) ∣ ∣ 2 \frac 1m \sum_{j=1}^m||x^{(i)}||^2 m1j=1mx(i)2

  3. 评估下式是否成立:
    min ⁡ 1 m ∑ j = 1 m ∣ ∣ x ( i ) − x a p p r o x ( i ) ∣ ∣ 2 1 m ∑ j = 1 m ∣ ∣ x ( i ) ∣ ∣ 2 ≤ ϵ \frac {\min \frac 1m \sum_{j=1}^m||x^{(i)}-x^{(i)}_{approx}||^2} {\frac 1m \sum_{j=1}^m||x^{(i)}||^2} ≤ϵ m1j=1mx(i)2minm1j=1mx(i)xapprox(i)2ϵ

其中, ϵ ϵ ϵ 的取值可以为 0.01 , 0.05 , 0.10 , ⋯ 0.01 , 0.05 , 0.10 , ⋯ 0.01,0.05,0.10,⋯0.01,0.05,0.10,⋯ 0.01,0.05,0.10,0.01,0.05,0.10, ,假设 ϵ = 0.01 = 0.01 ϵ=0.01=0.01 ϵ=0.01=0.01 ,我们就说“特征间 99% 的差异性得到保留”。

不要提前优化

由于 PCA 减小了特征维度,因而也有可能带来过拟合的问题。PCA 不是必须的,在机器学习中,一定谨记不要提前优化,只有当算法运行效率不尽如如人意时,再考虑使用 PCA 或者其他特征降维手段来提升训练速度。

不只是加速学习

降低特征维度不只能加速模型的训练速度,还能帮我们在低维空间分析数据,例如,一个在三维空间完成的聚类问题,我们可以通过 PCA 将特征降低到二维平面进行可视化分析。

例如下表中,我们有将近几十个特征来描述国家的经济水平,但是你仔细观察发现,我们很难直观的看出各个国家的经济差异。
在这里插入图片描述
借助于 PCA,我们将特征降低到了二维,并在二维空间进行观察,很清楚的就能发现美国和新加坡具有很高的经济水平:
在这里插入图片描述

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhao-Jichao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值