PCA降维 - Numpy版

这一节,我们来讨论一个数据预处理的技术PCA,PCA全称:Principal Components Analysis(主成分分析)。举个例子:假如我现在负责汽车零件的生产工艺,我抽取了某一天的生产工艺数据做分析,假设这一天生产了1000件产品,那我就有了1000个样本数据。同时对于每件产品,都会记录其生产过程中压力、温度、湿度、速度等工艺参数,假设有20个工艺参数将会对产品质量产生影响。现在我就拿到了一个1000*20的数据集,当我同时观察这20个因素对产品质量的影响,我很难发现其中的规律。我们也知道在这20个影响因素中,只有那么3-4个影响因素(主成分)是起决定性作用的,所以我们就需要找出这最重要的3-4个影响因素。这个过程就是将一个20维的数据集转换为一个3维或者4维数据集,这个过程我们就称为PCA降维。在降维之前,我们每个特征都具有其物理含义,都是可解释的,降维后,我们的数据则无法解释其具体含义。
PCA.png

核心思想:沿着数据差异最大的方向构建新的坐标系,将原有的数据映射到新的坐标系上。数据差异最大的方向即方差最大的方向。

1.1PCA降维说明
PCA降维就是将一组多特征的数据压缩为一组特征少的数据,如将一组100维的数据,压缩为一组2维的数据。用线性代数来解释PCA降维就是,有一组数据[5000,60](5000个样本,60个特征)压缩为一组[5000,3]的数据,那么我们就需要找到一组[60,3]的特征向量矩阵,从而从运算上实现[5000,60]*[60,3] = [5000,3](这一步是矩阵的内积运算)。
从几何学的角度来讲,就是将一组在空间上高维度的数据转换为一组低维度的数据,任何一组数据都是可以在空间(坐标系)当中表示,数据维度的转换过程就是将数据从现有的坐标系映射到新的坐标系当中。
如下图所示,有一个向量(3,2),它是由 X ( 1 , 0 ) + Y ( 0 , 1 ) X(1,0) + Y(0,1) X(1,0)+Y(0,1)得出来的,所以我们就称(1,0),(0,1)为一组基坐标。如果我们的基坐标不是(1,0),(0,1),那么这个向量的表示也就不是(3,2)了。
向量的表示.png
如下图所示,我们建立一组新的基坐标(√2/2,√2/2),(-√2/2,√2/2),所以向量(3,2)映射到新的坐标系中的结果就是(3,2)乘以新的基坐标。
我们可以看到基是正交(垂直)的,这样原有的数据映射到新坐标系的两个轴上是线性无关的。在机器学习算法中,我们希望使用的特征,它们都是线性无关的。如果它们存在相关性,那么这些特征即使数量再多,也没有太大的意义了。这个例子我们是以二维数据为例,如果要将高维数据,降到一个五维数据,那么就需要建立一个五轴(五维)正交坐标系,将原始数据映射到新坐标系上就可以了。
坐标系变换.png
基变换的线性代数表达形式如下:
基变换.png
1.2基坐标的选择
选择投影后数据最分散的方向(也就是数据方差最大的方向)作为第一个基,然后选择方差次大的作为第二个基,但同时需满足与第一个基正交。重复前面的步骤,如果你需要将数据降到K维,就选择K个正交基,构建一个K维正交坐标系。
方差:表示的数据离散程度

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值