12-Dimensionality Reduction

数据的降维处理

1 - Motivation I Data Compression II Visualization 数据压缩|可视化

data compression
data visualization

2 - Principal Component Analysis Problem Formulation

  • 降维:
    dimension reduction

    • 2维到1维:找到一个向量 u(1)R2 ,让平面上的2维数据投影到这个向量上,并且投影误差最小
    • n维到k维:找到k个向量 u(1),u(2),,u(k) ,使得投影误差最小
  • PCA 不是 linear regression:PCA 的中的是投影
    projection
    左边是 linear regression ,右边是 PCA

3 - Principal Component Analysis Algorithm 具体算法

数据预处理:feature scaling / mean normalization

从 n 维 x(i) 映射到 k 维 z(i) 的方法

  • 计算 X 的协方差矩阵(covariance matrix):
    =1mi=1n(x(i))(x(i))T,x(i)Rn×1,Rn×n
  • 计算协方差矩阵 的特征向量(eigenvector):
    [U,S,V]=svd()(svd:Singularvaluedecomposition)U=|u(i)||u(2)||u(m)|,URn×n
  • 取出矩阵 U 的前 K 个向量 u(1),u(2),,u(k) 组成 Ureduce
  • zi=UTreducex(i),z(i)Rk×1
  • 完成了从 x(i)z(i) 的降维转变

代码表示如下:

Sigma=1mi=1m(x(i))(x(i))T[U,S,V]=svd(Sigma);Ureduce=U(:,1:k);z=Ureducex

4 - Choosing the Number of Principal Components 选择 K 的方法

principal components 的数量 K 的选择方法:

  • Average squared projection error: 1mi=1mx(i)x(i)approx2
  • Total variation: 1mi=1mx(i)2
  • 选择条件:
    1mi=1mx(i)x(i)approx21mi=1mx(i)20.01(or0.05,0.1,)
  • 上面的方法比较麻烦,利用之前的 svg 函数的结果能比较简便的计算:
    其中,
    S=S11S22Snn
    那么判断条件可以变为:
    1i=1kSiii=1nSii0.01ori=1kSiii=1nSii0.99

综上所述,选择 k 的方法如下:

  • 尝试 K =1,2,3 …
  • 计算 Ureduce,z(1),z(2),,z(m),x(1)approx,x(1)approx,,x(m)approx
  • 检查: i=1kSiii=1nSii0.99 是否满足条件

5 - Advice for Applying PCA

  • Mapping x(i)z(i) should be defined by running PCA only on the training set. This mapping can be applied as well to the examples x(i)cv and x(i)test in the cross validation and test sets
  • PCA的应用:
    • Compression
      • Reduce memory/disk needed to store data
      • Speed up learning algorithm
    • Visualization
  • 不要为了避免 overfitting 而去使用 PCA,最好用 regulization 来实现
  • 在使用PCA之前,首先要尝试用原始的数据 x(i) ,只有当它不能达到你想要的结果的时候,才可以去考虑使用 z(i) .
    Before implementing PCA, first try running whatever you want to do with the original/raw data x(i) . Only if that doesn’t do what you want, then implement PCA and consider using z(i) .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值