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')

PCA 最大方差理论的直观解释的更多相关文章

  1. 算法基础:BFS和DFS的直观解释

    算法基础:BFS和DFS的直观解释 https://cuijiahua.com/blog/2018/01/alogrithm_10.html 一.前言 我们首次接触 BFS 和 DFS 时,应该是在数 ...

  2. PCA算法详解——本质上就是投影后使得数据尽可能分散(方差最大),PCA可以被定义为数据在低维线性空间上的正交投影,这个线性空间被称为主⼦空间(principal subspace),使得投影数据的⽅差被最⼤化(Hotelling, 1933),即最大方差理论。

    PCA PCA(Principal Component Analysis,主成分分析)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量 ...

  3. PCA算法的最小平方误差解释

    PCA算法另外一种理解角度是:最小化点到投影后点的距离平方和. 假设我们有m个样本点,且都位于n维空间 中,而我们要把原n维空间中的样本点投影到k维子空间W中去(k<n),并使得这m个点到投影点 ...

  4. 可能是CAP理论的最好解释

    一篇非常精彩的解释CAP理论的文章,翻译水平有限,不准确之处请参考原文,还请见谅. Chapter 1: "Remembrance Inc" Your new venture : ...

  5. 【翻译】可能是CAP理论的最好解释

    一篇非常精彩的解释CAP理论的文章,翻译水平有限,不准确之处请参考原文,还请见谅. Chapter 1: “Remembrance Inc” Your new venture : Last night ...

  6. 深度学习基础系列(三)| sigmoid、tanh和relu激活函数的直观解释

    常见的激活函数有sigmoid.tanh和relu三种非线性函数,其数学表达式分别为: sigmoid: y = 1/(1 + e-x) tanh: y = (ex - e-x)/(ex + e-x) ...

  7. ES : 软件工程学的复杂度理论及物理学解释

    系统论里面总是有一些通用的专业术语 比如复杂度.熵.焓,复杂度专门独立出来,成为复杂度理论 文章摘抄于:<非线性动力学> 刘秉政 编著  5.5 复杂性及其测度 热力学的几个专业术语 熵. ...

  8. sigmoid function的直观解释

    Sigmoid function也叫Logistic function, 在logistic regression中扮演将回归估计值h(x)从 [-inf, inf]映射到[0,1]的角色. 公式为: ...

  9. 关于L1和L2的直观解释

    https://blog.csdn.net/jinping_shi/article/details/52433975

随机推荐

  1. redis之使用场景

    随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求.因此,Redis 基于内存存储数据,可以极大的提高查询性能,对产品在架构上很好的补充.在某些场景下,可以充分的利用 Redis 的特性 ...

  2. hackthebox通关手记(持续更新)

    简介: 花了点时间弄了几道题目.以前我是用windows渗透居多,在kali linux下渗透测试一直不怎么习惯.通过这几天做这些题目感觉顺手多了.有些题目脑洞也比较大,感觉很多也不适合于实际的环境 ...

  3. Linux文件读写笔记

    读文件: #include <stdio.h> #include <stdlib.h> #include <unistd.h> //linux下面的头文件 #inc ...

  4. 生产服务器上安装Python

    2018-05-17 生产环境的服务器(以下简称内网服务器)由于安全限制,可能无法连接外网.这种情况下将无法直接使用pip命令安装python的包 一.更改pip源 - 默认pip是使用Python官 ...

  5. 2019-11-29-dotnet-使用-Qpush-快速从电脑到手机推送文字

    title author date CreateTime categories dotnet 使用 Qpush 快速从电脑到手机推送文字 lindexi 2019-11-29 08:58:57 +08 ...

  6. nodejs express 部署

    一.express 4.x版本之前 全局安装express 命令是 npm install express -g express 4.x版本之后 全局安装express 命令是 npm install ...

  7. python语音提示

    #coding:utf8 import win32com.client speaker = win32com.client.Dispatch("SAPI.SpVoice") whi ...

  8. 国产芯片选型手册及厂商名录 版本V2019

  9. laravel中间件失效,配置文件重新加载

    composer dump-autoload php artisan cache:clear 清理视图缓存 php atisan view:clear 清除运行缓存 php artisan cache ...

  10. Librepilot-Spark2固件的烧写

    1.通过USB连接Librepilot_Spark2飞控,启动Librepilot GCS地面站(博主的GCS是16.09版本),界面如下. 2.点击Firmware标签页,点击终止系统(若板子未带系 ...