吴恩达机器学习[15]-无监督学习之 降维、主成分分析

本文详细介绍了主成分分析PCA在数据压缩和可视化中的应用,包括PCA的目标、问题规划、主成分数量选择及压缩重现。PCA通过找到数据的主要成分,降低数据维度,同时尽可能保留数据信息,可用于加速学习算法并简化数据表示。文章还提到了PCA的误用,并给出了使用PCA的建议。
摘要由CSDN通过智能技术生成

**降维(Dimensionality Reduction)**属于常见的无监督学习之一。使用它的目标包括:数据压缩(压缩数据,使得数据占用较少的内存;对学习算法进行加速)、数据可视化

目标1:数据压缩 Data Compression

首先介绍降维(Dimensionality Reduction)是什么。举一个飞行员的问题,下图显示其中的两个特征变量(pilot skill、pilot enjoyment)之间关系。易得两个特征高度相关,但我真正关心的是pilot aptitude(飞行员的能力),即绿线。此时,可以将两个特征通过变化变成特征(pilot aptitude)。
在这里插入图片描述

那么将数据从二维降低到一维究竟意味着什么呢?
还是上面的例子,将不同样本用不同颜色标记。所谓“降维”,我所做的是:找出大多数样本所在的线(如图蓝线),并将所有的样本投影到这条线上。通过这样,我能找到每个样本在线上的位置,从而建立新特征 z 1 z_1 z1。只需要一维实数 z i z_i zi,我可以直接表示对应的样本 x i x_i xi所在的位置。此外,这也能使得学习算法运行更快。
在这里插入图片描述

上面展示了把二维数据降维为一维,下图展示将三维数据降维为二维(实际中可能存在1000D——>100D的情况)。
原始数据中,样本大概分布在一个平面内。此时可以通过降维,把所有的数据投影到一个二维平面上。为了确定这些点在平面中的位置,建立新特征 z 1 、 z 2 z_1、z_2 z1z2
在这里插入图片描述

目标2:可视化 Data Visualization

引入:降维的第二个应用为可视化。

大部分国家数据是多维的,如下图。那么如何理解这些数据呢?如何可视化这些数据呢?
在这里插入图片描述

相较于用50维的数据表示不同样本(国家),我们可以通过降维用两个特征来概述这50个数字。但此时,新特征可能不再是具有物理意义的特征,因此我们首先得理解特征代表什么。
在这里插入图片描述

我们可以在可视化的图中来帮助理解 z 1 、 z 2 z_1、z_2 z1z2的代表含义。
在这里插入图片描述

主成分分析问题规划1 Principal Componet Analysis problem formulation

引入:目前最常用的数据降维方法为:主成分分析方法(Principal Componet Analysis,PCA)。下面将讨论PCA问题的公式描述,也就是用公式更准确地表达PCA的用途。

假设有如图所示数据集,我们希望通过PCA将二维数据集降为一维。PCA所做的是:找一个低维平面(如图的橙色直线),然后将数据投影在上面,使得各个样本点到直线距离的平方和(有时也称投影误差 projection erro)最小
在这里插入图片描述

此外,在应用PCA前,一般会进行均值归一化(Mean normalization)和特征规范化(feature scaling)。下面展示均值归一化和特征规范化的一些细节。
为了对比我刚画好的橙线,可以再画一条可以用于投影的直线(如图品红线)。易得品红线对应的投影误差远大橙线,这就是为什么PCA会找到橙线用于投影。
在这里插入图片描述

下图展示更正式的PCA问题描述
在这里插入图片描述

PCA与线性回归之间的关系如何呢?尽管看上去有些相似,PCA与线性回归其实是两种不同的算法

  • 对于线性回归(图左边)。给定某个输入特征量 x x x,我们需要预测出对应变量 y y y的值。因此线性回归需要做的是拟合一条直线来最小化点和直线的平方误差。注意此时的蓝线是垂直于横轴的, x , y x,y xy是区别对待的( y y y是需要用预测的特殊变量)。
  • 对于PCA。它所做的是:找一条直线,然后将数据投影在上面,使得各个样本点到直线距离的平方和最小。此时的蓝线是点到直线的距离 x 1 , x 2 x_1,x_2 x1x2等不存在区别对待。
    在这里插入图片描述
    三维降维为二维中也是如此, x 1 , x 2 , x 3 x_1,x_2,x_3 x1x2x3等都是平等的。
    在这里插入图片描述

主成分分析问题规划2

引入:如何找到用于投影的低维平面呢?

  • 使用PCA前首先需要做的是进行数据预处理
    下图用一个银行交易的例子,展示均值归一化、特征规范化(特征缩放 , s j s_j sj为极差或者方差)。
    在这里插入图片描述
  • 数据预处理后,使用PCA进行数据降维。
    对于图左,PCA需要找到一个向量 u ( 1 ) u^{(1)} u(1),从而构成用于投影的直线;
    对于图右,PCA需要找到两个向量 u ( 1 ) u^{(1)} u(1) u ( 2 ) u^{(2)} u(2),从而构成用于投影的平面。
    那么是什么减少了数据均值的维度呢?比如图左,我们为二维空间的 x ( i ) x^{(i)} x(i)找到了一维空间的 z ( i ) z^{(i)} z(i),它可以用来表示 x ( i ) x^{(i)} x(i)对应的位置。这就实现了数据均值的降维。
    在这里插入图片描述

如上图左,PCA需要做的是:找到向量 u ( 1 ) u^{(1)} u(1),以及样本 x ( i ) x^{(i)} x(i)在向量 u ( 1 ) u^{(1)} u(1)的“位置” z ( i ) z^{(i)} z(i)。那么如何找到这些量呢?下图将进行解释。
假设我们希望将数据从 n n n维降维到 k k k维,需要计算协方差矩阵(covariance matrix, 用 Σ \Sigma Σ表示,如公式左边,右边表示求和)。
使用obtave实现PCA,可用svd公式。此时U为我们实际需要的结果,降维意味着取前k个向量。
在这里插入图片描述

降维,因此取矩阵U的前k列,获得一个nk矩阵。 Z Z Z可以通过上述矩阵的转置乘以 x x x得到,为k1矩阵。
在这里插入图片描述

在octave中的实现如下。
在这里插入图片描述

主成分数量选择

PCA做的是最小化投影误差。定义数据的总变数(total variation)如图。
那么一般来说,选择k时需要满足: 1 m ∑ i = 1 m ∣ ∣ x ( i ) − x a p p r o x ( i ) ∣ ∣ 2 1 m ∑ i = 1 m ∣ ∣ x ( i ) ∣ ∣ 2 ≤ 0.01 \frac{\frac1m \sum^m_{i=1} ||x^{(i)} -x^{(i)}_{approx}||^2}{\frac1m \sum^m_{i=1} ||x^{(i)} ||^2} \le 0.01 m1i=1m∣∣x(i)2m1i=1m∣∣x(i)xapprox(i)20.01这意味着99%的变量信息(方差)都保留了。一般来说保留99%或95%的特征信息时,数据集就已经降维许多了,学习效率就会有很大改善,因为特征变量很多时候存在高线性相关性。

在这里插入图片描述

下图左展示选择k的算法,选择满足条件的最小k。图右展示在octave的实现
在这里插入图片描述

综上,使用octave选择k的步骤如下图:
在这里插入图片描述

压缩重现 Reconstruction from compressed repressentation

引入:在之前的视频中,我们一直把PCA当做做一个压缩算法讨论。那么,如果这是一个压缩算法,它就应该有办法从压缩后的数据回到原来的高维数据的近似表现。下面展示这个过程如何实现。

以下图为例,如何从 z 1 z_1 z1恢复到 x x x呢?
x x x在向量 u u u上的投影 x a p p r o x = U r e d u c e z x_{approx}=U_{reduce} z xapprox=Ureducez,即图右。因此,在投影误差不是太大时,我们可以找到原样本在直线上的投影点,然后用这些点近似表示原样本。
在这里插入图片描述

应用PCA的建议

引入:之前提到过,PCA可以加快学习算法的执行效率,下面将解释这是如何实现的。并且也会给出使用PCA的相关建议。

下面将介绍使用PCA加速算法的方法。
假设有一个监督学习的例子,数据样本用 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i))表示, x ( i ) x^{(i)} x(i)为高维(10000维)。
使用PCA的过程如下图。将PCA降维后的 z ( i ) z^{(i)} z(i)代替 ( x ( i ) ) (x^{(i)}) (x(i)),从而训练得到模型。对于新样本,根据之前 x x x z z z的映射进行变换,然后再输入模型进行预测。
需要注意的是: x ( i ) x^{(i)} x(i) z ( i ) z^{(i)} z(i)的映射只能通过训练集得到。测试集、交叉验证集使用模型前,先得用训练集得到的映射关系对 x x x进行转换
在这里插入图片描述

总之,PCA应用范围如下图。
在这里插入图片描述

PCA的一个常见的误用是:防止过拟合。
虽然这种方式可能对防止过拟合有一定效果,但过拟合最佳解决办法还是正则化。因为PCA总会丢失掉一些有价值的信息,而正则化则不会。
在这里插入图片描述

另一个常见的误用是:设计机器学习系统时直接把PCA过程包含在内,而不考虑
PCA对问题的实际作用如何。为此,使用PCA算法前,首先得考虑不用PCA时学习算法运行结果是否已经满足期待。只有有强有力的证据表明确实需要数据压缩时,才真正去使用PCA算法。
在这里插入图片描述

参考链接
网易版吴恩达机器学习课程
吴恩达机器学习 网易云课堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值