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')
PCA 最大方差理论的直观解释的更多相关文章
- 算法基础:BFS和DFS的直观解释
算法基础:BFS和DFS的直观解释 https://cuijiahua.com/blog/2018/01/alogrithm_10.html 一.前言 我们首次接触 BFS 和 DFS 时,应该是在数 ...
- PCA算法详解——本质上就是投影后使得数据尽可能分散(方差最大),PCA可以被定义为数据在低维线性空间上的正交投影,这个线性空间被称为主⼦空间(principal subspace),使得投影数据的⽅差被最⼤化(Hotelling, 1933),即最大方差理论。
PCA PCA(Principal Component Analysis,主成分分析)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量 ...
- PCA算法的最小平方误差解释
PCA算法另外一种理解角度是:最小化点到投影后点的距离平方和. 假设我们有m个样本点,且都位于n维空间 中,而我们要把原n维空间中的样本点投影到k维子空间W中去(k<n),并使得这m个点到投影点 ...
- 可能是CAP理论的最好解释
一篇非常精彩的解释CAP理论的文章,翻译水平有限,不准确之处请参考原文,还请见谅. Chapter 1: "Remembrance Inc" Your new venture : ...
- 【翻译】可能是CAP理论的最好解释
一篇非常精彩的解释CAP理论的文章,翻译水平有限,不准确之处请参考原文,还请见谅. Chapter 1: “Remembrance Inc” Your new venture : Last night ...
- 深度学习基础系列(三)| sigmoid、tanh和relu激活函数的直观解释
常见的激活函数有sigmoid.tanh和relu三种非线性函数,其数学表达式分别为: sigmoid: y = 1/(1 + e-x) tanh: y = (ex - e-x)/(ex + e-x) ...
- ES : 软件工程学的复杂度理论及物理学解释
系统论里面总是有一些通用的专业术语 比如复杂度.熵.焓,复杂度专门独立出来,成为复杂度理论 文章摘抄于:<非线性动力学> 刘秉政 编著 5.5 复杂性及其测度 热力学的几个专业术语 熵. ...
- sigmoid function的直观解释
Sigmoid function也叫Logistic function, 在logistic regression中扮演将回归估计值h(x)从 [-inf, inf]映射到[0,1]的角色. 公式为: ...
- 关于L1和L2的直观解释
https://blog.csdn.net/jinping_shi/article/details/52433975
随机推荐
- C语言---程序的一般形式、数据类型、常量变量、运算符、表达式、格式化输入输出
1. 程序的一般形式 (1)注释 ① 分类:单行注释( // ): 注释一行.多行注释( /**/ ): 在这个区间内,都属于多行注释,可以换行. ② 作用:提示代码的作用,提示思路 不写注释的后 ...
- [HAOI2018]苹果树题解
题目链接 大意:不解释 思路: 首先方案数共有n!种,第1个点只有1种选择,第2个点2种选择,生成2个选择的同时消耗一个,第3个点则有3种选择,依次类推共有n!种方案,由于最后答案*n!,故输出的实际 ...
- PythonError解决方案
# Pip Error pip install * error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visua ...
- JavaScript应懂的概念
目录 垃圾回收 函数作用域, 块级作用域和词法作用域 调用堆栈 原始类型 值类型和引用类型 隐式, 显式, 名义和鸭子类型 == 与 ===, typeof 与 instanceof this, ca ...
- go依赖包管理工具vendor基础
go依赖包管理工具vendor基础 vendor是go的依赖包管理工具,主要用于管理项目中使用到的一些依赖. 它将项目依赖的包,特指外部包,复制到当前工程下的vendor目录下,这样go build的 ...
- Mysql数据库中的输入命令各类知识总结
1.链接数据库的命令---mysql-u root-p 回车,输入密码//在cmd上输入自己的账号密码 2.查看:show databases: 3.创建数据库:create +database+数据 ...
- Java的GUI框架如何选择? Swing、SWT、AWT、SwingX、JGoodies、JavaFX、Apache Pivot、BeautyEye框架(美观)?
AWT 是swing的基础,运行良好,但缺少高级组件.如果您打算创建丰富的应用程序,那么AWT可能不是最好的方法.但是对于不需要丰富用户界面的较小gui应用程序来说.这可能非常适合,因为它是一个久经考 ...
- iOS 支付 [支付宝、银联、微信]
这是开头语 前不久做了一个项目,涉及到支付宝和银联支付,支付宝和银联都是业界的老大哥,文档.SDK都是很屌,屌的找不到,屌的看不懂,屌到没朋友(吐槽而已),本文将涉及到的最新可用SDK.文档,以及本人 ...
- initlocation - 创建一个从属的 PostgreSQL数据库存储区
SYNOPSIS initlocation directory DESCRIPTION 描述 initlocation 创建一个新的PostgreSQL从属数据库存储区.参阅 CREATE DATAB ...
- lnmp 环境搭建后,pathinfo 模式支持的配制。
ThinkPHP的四种URL模式:0(普通模式);1(PATHINFO模式);2(REWRITE模式);3(兼容模式) nginx需要PATHINFO模式,但需要更改nginx配置文件让其支持PATH ...