斯坦福大学机器学习笔记——降维(PCA算法)

降维也是一种无监督学习的问题。所谓的降维,就是将高维度的数据降低到低维度空间,同时降维之后的数据又能够很好的表征原来数据的特性。
以具体的例子来说明一下什么是降维:
比如我们使用厘米和英尺表示同一物体的长度,如果我们使用一个仪器测量的结果单位是厘米,另一个仪器测量单位是英尺,两种仪器对同一物体测量的结果可能不完全相同(由于误差和精度),但是如果直接将两个特征都作为该物体长度的特征又很冗余,所以我们可以将上述二维的数据将至一维(具体怎么实现见下文)。
二维数据降至一维:找到一条直线,将二维向量投影到该直线上,达到数据从二维(x1,x2)降至一维(z1)的目的。
这里写图片描述
将三维的数据降至二维:将三维向量投影到一个二维平面上,迫使所有的数据都落在同一个平面上,从而实现从三维(x1,x2,x3)将至二维(z1,z2)。
这里写图片描述
同样地,可以实现从任何维度的数据将至任何想要的维度。

降维的两个功能:
1. 数据的压缩。从上面例子中可以看出,明显对数据进行了压缩。
2. 数据的可视化。对于我们来说我们最多能够可视化一个三维的画面,但是有些数据的维度大于三维,使得我们没办法可视化,但是使用降维的办法可以实现将原来的数据将至三维、二维甚至一维,从而有助于可视化显示。但是降维之后产生新特征的意义就必须有我们自己去发现了。

主成分分析(Principal Component Analysis, PCA):
PCA是最常见的降维算法。它的思想为:找到一个由一系列方向向量组成的低维平面,当我们把所有的数据投射到该低维平面时,我们希望投射平均均方误差尽可能地小。投射误差是从特征向量向该低维平面做垂线的长度。
下面我们以二维为例,来对概念进行形象化表示:
这里写图片描述

PCA方法的问题描述:
对于将n维数据降至k维来说,我们的目标就是找到向量 u1,u2,...,uk 使得总的投射误差最小。

PCA算法的过程如下:
1. 均值归一化(特征的缩放)。需要计算出所有特征的均值,然后令 xj=xjuj ,同时如果特征是不同数量级上,我们还需要将其除以标准差。
2. 计算协方差矩阵 Σ :

Σ=1mi=1m(xi)(xi)T

3.计算协方差矩阵 Σ 的特征值:
在matlab中可以利用奇异值分解来求解,函数形式为:[U,S,V]=svd(sigma),同时也可以使用eig(sigma)来求解,但是对于半正定矩阵的sigma来说,svd更加具有数据的稳定性。
这里写图片描述
4. 获取符合要求的新的特征向量。
上式中的U就是一个具有与数据之间最小投射误差的方向向量构成的矩阵。如果我们想从n为将至k维,我们只需要从U中选取前k个向量,获得一个n*k的矩阵 Ureduce ,然后通过 Ureduce 获得符合要求的新的特征向量 zi :

zi=UTreduce×
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值