【学习笔记】吴恩达机器学习 | 第十二章 | 降维

文章详细介绍了主成分分析(PCA)的概念,包括降维、数据压缩和数据可视化的动机,PCA的方法和算法流程,以及如何选择主成分的数量。PCA用于减少数据的冗余特征,加速学习算法并帮助数据可视化。吴恩达强调PCA在适当的应用场景下非常有用,但不应作为防止过拟合的手段。
摘要由CSDN通过智能技术生成

在这里插入图片描述

简要声明


  1. 课程学习相关网址
    1. Bilibili
    2. 网易云课堂
    3. 学习讲义
  2. 由于课程学习内容为英文,文本会采用英文进行内容记录,采用中文进行简要解释。
  3. 本学习笔记单纯是为了能对学到的内容有更深入的理解,如果有错误的地方,恳请包容和指正。
  4. 非常感谢Andrew Ng吴恩达教授的无私奉献!!!

专有名词


Dimensionality Reduction降维highly redundant feature高冗余特征
Data Visualization数据可视化Principal Component Analysis (PCA)主成分分析方法
projection error投影误差Data preprocessing数据预处理
covariance matrix协方差矩阵Reconstruction重构

Motivation


Data Compression

在这里插入图片描述

  1. 数据压缩不仅能使得数据占用较少的内存或硬盘空间还能对学习算法进行加速
  2. highly redundant feature 高冗余特征 →将数据从二维降低到一维 →用一条线上的投影表示两种特征的数据
  3. 2D to 1D →通过投影到一条线上,所有的原始样本来近似原始的数据集 →只需要一个实数就能表示每一个训练样本的位置
  4. 3D to 2D →把所有的数据投影到一个二维平面 →只需要两个数就能指定这个平面中点的位置

在这里插入图片描述

Data Visualization

在这里插入图片描述

  1. 用两个主特征表示50个特征 →GDP & per person GDP

Principal Component Analysis


Principal Component Analysis (PCA) problem formulation

在这里插入图片描述

  1. Principal Component Analysis 主成分分析法 →找到一个低维平面,然后将数据投影到上面,使得投影误差最小化
  2. 在应用PCA之前先进行 mean normalization 均值归一化和 feature scaling 特征规范化
  3. 如果想将数据从二维降到一维 →试着找到一个向量 u(1),投影后能够最小化投影误差的方向
  4. 如果想将数据从n维降到k维 →寻找k个方向向量来对数据进行投影来最小化投影误差
  5. !!!PCA不是线性规划
    1. 线性规划是拟合一条直线来最小化点和直线之间的平方误差(垂直距离),PCA是试图最小化投影误差
    2. 线性规划是根据x对y的预测,而PCA没有特殊的变量y,都是特征x

在这里插入图片描述

Principal Component Analysis algorithm

  1. Data preprocessing 数据预处理

    1. Training set: x(1), x(2), … x(m),

    2. Preprocessing (feature scaling 特征缩放 / mean normalization 均值标准化)

      1. 计算每个特征的均值
      2. 通过减去均值取代每个特征x(x_j - μ_j)
      3. 如果不同的特征有非常不同的缩放 →缩放每一个特征在一个相对的数值范围内

      μ j = 1 m ∑ i = 1 m x j ( i ) x j ( i ) : = x j ( i ) − μ j s j \mu_j=\frac{1}{m}\sum_{i=1}^mx_j^{(i)} \\ x_j^{(i)}:=\frac{x_j^{(i)}-\mu_j}{s_j} μj=m1i=1mxj(i)xj(i):=sjxj(i)μj

  2. Reduce data from -n‐dimensions to k‐dimensions 将数据从n维降到k维

    Σ = 1 m ∑ i = 1 n ( x ( i ) ) ( x ( i ) ) T \Sigma = \frac{1}{m}\sum_{i=1}^n(x^{(i)})(x^{(i)})^T Σ=m1i=1n(x(i))(x(i))T

    1. 计算 covariance matrix 协方差矩阵(Sigma)
    2. 计算协方差矩阵的 eigenvectors 特征向量
    % svd 表示 sigular value decomposition 奇异值分解
    % eig(Sigma)
    % U 表示一个降维矩阵
    Sigma = (1/m)*X'*X;
    [U,S,V] = svd(Sigma);
    Ureduce = U(:,1:k); % 提取降到k的U矩阵
    z = Ureduce’*x;
    

在这里插入图片描述

Reconstruction from compressed representation


在这里插入图片描述

z = U r e d u c e T ⋅ x z=U_{reduce}^T\cdot x z=UreduceTx

x ∈ R n → z ∈ R k x \in \mathbb{R}^{n} \rightarrow z \in \mathbb{R}^k xRnzRk

x ≈ x a p p r o x = U r e d u c e ⋅ z x \approx x_{approx}=U_{reduce}\cdot z xxapprox=Ureducez

Choosing the number of principal components


Choosing k

  1. Average squared projection error 均方投影误差
  2. Total variation in the data 数据总方差
  3. 选择 k 从而最小化数值的同时确保99%的数据总方差保留 →降维以后数据信息保留方差

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{\frac{1}{m}\sum_{i=1}^m||x^{(i)}-x_{approx}^{(i)}||^2 }{ \frac{1}{m}\sum_{i=1}^m||x^{(i)}||^2} \le 0.01 m1i=1m∣∣x(i)2m1i=1m∣∣x(i)xapprox(i)20.01

Algorithm

  1. Try PCA with k=1,2,… ,n

  2. 计算U_reduce, z(1), z(2), … z(m), x_approx(1), x_approx(2), … x_approx(m),

  3. 检查是否符合范围

  4. 在确保满足范围的条件下选择最小的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{\frac{1}{m}\sum_{i=1}^m||x^{(i)}-x_{approx}^{(i)}||^2 }{ \frac{1}{m}\sum_{i=1}^m||x^{(i)}||^2} \le 0.01 m1i=1m∣∣x(i)2m1i=1m∣∣x(i)xapprox(i)20.01

[U,S,V] = svd(Sigma);

1 − ∑ i = 1 k S i i ∑ i = 1 n S i i = 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 1-\frac{\sum_{i=1}^kS_{ii}}{\sum_{i=1}^nS_{ii}}=\frac{\frac{1}{m}\sum_{i=1}^m||x^{(i)}-x_{approx}^{(i)}||^2 }{ \frac{1}{m}\sum_{i=1}^m||x^{(i)}||^2} \le 0.01 1i=1nSiii=1kSii=m1i=1m∣∣x(i)2m1i=1m∣∣x(i)xapprox(i)20.01

∑ i = 1 k S i i ∑ i = 1 n S i i ≥ 0.99 \frac{\sum_{i=1}^kS_{ii}}{\sum_{i=1}^nS_{ii}} \ge 0.99 i=1nSiii=1kSii0.99

在这里插入图片描述

Advice for applying PCA


Supervised learning speedup

在这里插入图片描述

  1. PCA算法可以减少数据的维度从而使得算法运行更加高效
  2. 抽取输入训练集特征x构成一个无标签的训练集 →使用PCA得到原始数据的低维表达 →得到一个新的训练集
  3. PCA定义一个从x到z的映射,从x到z的映射只能通过在训练集上运行的PCA来定义,这个映射可以应用于交叉验证集和测试集样本中 →当在运行PCA时仅仅在训练集中的数据上运行,不能用在交叉验证集和测试集数据

Application of PCA

  1. Compression 压缩
    1. Reduce memory/disk needed to store data →减少存储数据所需的存储器或硬盘空间
    2. Speed up learning algorithm →加速学习算法
    3. choose k by % of variance retained →为了选择k计算出确定方差保留的百分比
  2. Visualization 可视化
    1. plot only two/three dimensional data →可视化二维或三维数据

Bad use of PCA: To prevent overfitting

在这里插入图片描述

  1. !!!错误用法:使用PCA去防止过拟合
  2. 错误认为PCA减少特征数量所以过拟合的可能性更小
  3. 应该使用正则化而不是PCA来防止过拟合

在这里插入图片描述

  1. 在设计机器学习系统时直接包括PCA,而不考虑如果不使用PCA会怎样
  2. 在实现PCA之前,首先考虑使用最原始的数据x(i),只有这样做不能达到目的的情况下才考虑使用PCA和z(i)

吴恩达教授语录


  • “For many problems we actually reduce the dimensional data and still retain most of variance and with barely effecting the performance.”
  • “PCA is an incredibly useful algorithm, when you use it for the appropriate applications and I’ve actually used PCA pretty often. And for me, I use it mostly to speed up the running time of my learning algorithms.”
  • “PCA is one of the most commonly used and one of the most powerful unsupervised learning algorithms.”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Chency.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值