吴恩达机器学习——第15章 降维

1、定义

数据是由一个个特征组成的,假如数有n个特征,则称数据是n维的。
降维就是在保证数据特征趋势不变的前提下,减少特征的个数。
减少特征的依据是把多个相似、相关特征合并为1个特征。

2、目的

降维的目的分为两种:

  • 压缩数据:特征数量变少了,数据量自然也就变少了,压缩数据后,可以提升计算速度,降低存储消耗。
  • 可视化:通过可视化手段可以帮助我们进行数据分析,但是高纬度的数据(比如10维),是无法通过可视化的手段展现的,通过降维把维度降低到3维、2维后,就可以对数据进行可视化处理了。

3、PCA降维

PCA(Principal Component Analysis),主成分分析法,是最常用的降维方法之一。其核心思想是找出一个低维的平面或子空间,把样本投影到上面,使原样本与投影后的样本的距离的平方和最小。
在这里插入图片描述
如上图所示,把二维的数据投影到了一维的直线上。原始样本到直线的垂直距离,也称为“投影误差”。PCA就是找到一条使投影误差的平方和最小的平面。
注意PCA求解过程中,只与特征 x 1 , x 2 , . . . . x_1,x_2,.... x1,x2,....相关,并不涉及到样本的标签y。

3.1 计算过程

  1. 首先对数据进行预处理:均值标准化或特征缩放。
    – 均值标准化:计算某个特征的平均值,然后使用特征值减去平均值来代替原来的特征值,
    – 特征缩放:按照比率把特征缩放到某个特定范围内,比如除以1000.
  2. 计算协方差:
    Σ = 1 m ∑ i = 1 m ( x ( i ) ) ( x ( i ) ) T \Sigma=\frac{1}{m}\sum_{i=1}^{m}(x^{(i)})(x^{(i)})^T Σ=m1i=1m(x(i))(x(i))T
    注意左边的 Σ \Sigma Σ是大写的sigma,不是累加。
    把Sigma代入svd公式,可以求出3个矩阵:
    [ U , S , V ] = s v d ( s i g m a ) [U,S,V]=svd(sigma) [U,S,V]=svd(sigma)
    svd:是奇异值分解算法,是octave中的一个函数。
    U:U是一个n*n的矩阵,称为降维矩阵,降到k维就是取它的前k列。
    在这里插入图片描述
  3. 映射矩阵:映射到子空间上的矩阵
    在这里插入图片描述
    z代表映射后的矩阵,等于降维矩阵的前k列的转置乘以x,是一个k维的向量。
  4. 之后使用z代替x进行计算即可。

3.2 主成分数量的选择

主成分数量,指的是降维的数量,使用k表示,本节介绍如何选择k。
降维的目的是保证特征趋势不变的前提下,尽量选择小的k。
数学上讲就是保留最大的方差性的前提下,选择最小的k。

3.2.1 选择方法1

假设压缩后再还原的特征值为 x a p p r o x x_{approx} xapprox,则 x − x a p p r o x x-x_{approx} xxapprox代表原始值与还原值的差距,该差距越小,则代表着压缩后的损失越小。

s = 1 m ∑ i = 1 m ∣ ∣ x ( i ) − x a p p r o x ( i ) ∣ ∣ 2 1 m ∑ i = 1 m ∣ ∣ x ( i ) ∣ ∣ 2 s=\frac{\frac{1}{m}\sum_{i=1}^m||x^{(i)}-x_{approx}^{(i)}||^2}{\frac{1}{m}\sum_{i=1}^m||x^{(i)}||^2} s=m1i=1mx(i)2m1i=1mx(i)xapprox(i)2

s代表损失的方差,则选择k的过程就是逐渐增大k,并保证s在合理范围内,比如<=0.01。

计算过程为:

  1. 假设k=1
  2. 计算s的值。
  3. 判断s<=0.01。
  4. 如果不满足条件则k=k+1,重新执行步骤2.

3.2.2 选择方法2

[ U , S , V ] = s v d ( s i g m a ) [U,S,V]=svd(sigma) [U,S,V]=svd(sigma)

在这里插入图片描述
通过矩阵s来计算k:
1 − ∑ i = 1 k S i i ∑ i = 1 n S i i < = 0.01 1-\frac{\sum_{i=1}^kS_{ii}}{\sum_{i=1}^nS_{ii}}<=0.01 1i=1nSiii=1kSii<=0.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}}>=0.99 i=1nSiii=1kSii>=0.99

3.3 压缩重现

压缩重现就是把压缩后的低维数据恢复到高维,因为
Z = U r e d u c e T ∗ X Z=U_{reduce}^T*X Z=UreduceTX
所以 X a p p r o x = U r e d u c e ∗ Z X_approx=U_{reduce}*Z Xapprox=UreduceZ

3.4 建议

  • PCA只应用到训练集上,然后把降维矩阵应用到测试集和交叉训练集上。
  • PCA不要用来防止过拟合:因为PCA的计算过程与Y根本就没有关系,降维的过程中可能会丢失与Y有关系的关键信息,所以不要使用PCA来将拟合,而使用正则化的方式。
  • 不要把PCA作为必选步骤:保持简单,有必要的时候再用,比如需要数据压缩或可视化的时候。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值