博客> 十分钟搞定PCA主成分分析
十分钟搞定PCA主成分分析
2018-11-15 15:05 评论:0 阅读:473 CSDN学院
学习 人工智能 深度学习

本文作者: 唐宇迪

在数据建模当中我们经常会听到一个词叫做降维,首先咱们先来唠一唠数据为啥要降维呢?最主要的原因还是在于一方面使得我们需要计算的量更少啦,想象一下一个100维的数据和一个10维数据计算的速度肯定是不一样的,另一方面如果我们的数据中有很无关特征,这些对结果看起来没什么促进的作用,那我们就干脆把有价值的拿出来,因为他们才是决定模型的关键!  Enter your image description here: 第一个强调的关键点:PCA是一种无监督算法,也就是我们不需要标签也能对数据做降维,这就使得其应用范围更加广泛了。那么PCA的核心思想是什么呢?这里我们提到了方差,咱们可以想象一下,如果一群人都堆叠在一起,我们想区分他们是不是比较困难,但是如果这群人站在马路两侧,我们就可以很清晰的判断出来应该这是两伙人。所以基于方差我们可以做的就是让方差来去判断咱们数据的拥挤程度,在这里我们认为方差大的应该辨识度更高一些,因为分的比较开(一条马路给隔开啦)。但是PCA也有一个问题,原来的数据中比如包括了年龄,性别,身高等指标降维后的数据既然维度变小了,那么每一维都是什么含义呢?这个就很难解释了,所以PCA本质来说是无法解释降维后的数据的物理含义,换句话说就是降维完啦计算机能更好的认识这些数据,但是咱们就很难理解了。  Enter your image description here: 在我们深入到PCA原理之前,先来解释一下什么叫基,把这个搞清楚之后就好理解了,大家一般所认识的坐标系一般都是X,Y轴。  Enter your image description here: 就像我们图上面的,我说有一个向量(3,2),但是为什么这个向量是这样的表示呢?因为它在我们的做标系中,如果我把坐标系换了,它就不是(3,2)了。作为基,首先的一个前提就是要相互垂直,或者说内积为0,因为X和Y它们表达的分别是两种指标,我们不希望它们之间内部存在任何联系,所以必须让他们内积为0,这样就是各自独立的啦!  Enter your image description here: 那么对我们坐标来说能否进行变换呢?肯定是可以的,比如我现在把(3,2)变换到另外一组基中,它的表达方式就不一样啦!这回咱们应该发现了这样一个事了吧,所谓的降维就是要把我们的数据投影到最合适的基中,那下面我们的目标就是寻找最好的基!  Enter your image description here: 咱这之前,还是得先来了解下另外一个知识点,叫做协方差,刚才我们已经有了目标就是寻找一个基,可以使得我们数据投影过去后方差能够越大越好!这个是我们的前提,但是只满足这一点就够了嘛?还不可以,因为我们还需要保证基的前提就是相互垂直,这就可以用协方差来进行表示啦,如果两个变量他们之间是相互独立的那么它们的协方差就必定为0,这就是我们的第二点要求啦,数据投影到的新基,其各个维度协方差都必须为0。(上图中假定数据各个维度均值为0)  Enter your image description here: 终于到啦要揭开谜底的时候啦!我们恰好遇到了一个东西叫做协方差矩阵,在公式中只需要对数据X进行变换就可以得到的。观察一下协方差矩阵,恰好发现了这样一个事,主对角线不就是我们的方差嘛(假设均值为0),非对角线上的元素又恰好是协方差。按照咱们之前的两点约定,我们只需要让方差越大越好,并且协方差等于0不就可以啦嘛!  Enter your image description here: 怎么做上面的那件事呢?这就是我们的目标了。让非对角线全为0这就需要对矩阵进行对角化啦,按照我们上面的定理,我们可以完成对角化操作,对我们所得的协方差矩阵求解其特征值与特征向量不就OK啦嘛。接下来按照特征值的大小进行排列,如果你想把数据降到3维,那就取前3个特征值所对应的特征向量就可以啦!  Enter your image description here: 全部的过程就在这里啦,其实只需要得到协方差矩阵,然后对角化,将得到的特征向量进行选择就得到我们要投影到的基啦!数据降维操作就这么愉快的搞定啦!  Enter your image description here: 本文来自CSND学院知名讲师唐宇迪,更多详情,大家可以点击关注 CSDN学院

收藏
0
sina weixin mail 回到顶部