zoukankan      html  css  js  c++  java
  • PCA 最大方差理论的直观解释

    PCA 这个名字看起来比较玄乎,其实就是给数据换一个坐标系,然后非常生硬地去掉一些方差很小的坐标轴。

    例:三维空间中,有一些数据只分布在一个平面上,我们通过“坐标系旋转变换”,使得数据所在的平面与 (x),(y) 平面重合,那么我们就可以用 (x'),(y') 两个维度表达原始数据,并且没有任何损失。

    • 在低维的空间中,我们可以用几何直观来解释:同样的数据,用不同的坐标系表示。
    • 在高维的空间中,我们就得通过代数的方法来依次寻找这些坐标轴方向,第 1 坐标轴方向就是第一主成分方向,第 2 坐标轴方向就是第二主成分方向,依次类推,使得原始数据在新的坐标轴上对应于每一个特征的方差是逐渐减少的,去掉那些我们认为方差很小的后面的主成分方向上的坐标,就完成了 PCA。

    所以 PCA 不是特征选择,而是特征抽取,抽取出来的特征是上帝视角,很多情况下,人类很难一眼就看清这些主成分代表了什么含义。

    PCA 算法优缺点分析

    优点

    1、降维使得原始数据的维度减少,送入算法,在训练过程中的消耗减少,能够提高效率;
    2、PCA 丢弃了原始数据的一些信息,如果这些信息恰好是噪声,这就是 PCA 带给我们额外的好处,有点两全其美的意思;
    3、PCA 虽然丢失了原始数据的一些信息,但和提高机器学习算法运算效率来说,还是比较轻的。

    缺点

    1、PCA 丢弃了原始数据的一些信息,如果这些数据恰好很重要,就不适合用 PCA 了;
    2、PCA 分析得到的主成分意义不明确,不具有可解释性。

    注意事项:

    在进行降维之前,要先做数据预处理,通常要去均值。有的时候还要将数据的方差处理成 1 ,即数据标准化。

    print('hello world')
    
  • 相关阅读:
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    FFmpeg解码H264及swscale缩放详解
    linux中cat more less head tail 命令区别
    C语言字符串操作总结大全(超详细)
    如何使用eclipse进行嵌入式Linux的开发
  • 原文地址:https://www.cnblogs.com/liweiwei1419/p/9869549.html
Copyright © 2011-2022 走看看