PCA主成分分析(最大投影方差)
PCA简介:
从n维数据中提取最能代表这组数据的m个向量,也就是对数据进行降维(n->m),提取特征。
目标:
找到一个向量\(\mu\),使n个点在其上的投影的方差最大(投影后的数据越不集中,就说明每个向量彼此之间包含的相似信息越少,从而实现数据降维)
前提假设:
总的数据:
\[A = (x_1, x_2, \cdots , x_n)\]
\(X\)的协方差:
\[C = Cov(X) = \frac{1}{n}\sum_{i=1}^n(x_i-\overline{x})(x_i-\overline{x})^T\]
向量\(\mu\):
\[|\mu| = 1 \Rightarrow \mu^T\mu = 1\]
证明:
易知\(x_i\)在\(\mu\)上的投影为\[(x_i-\overline{x})^T\mu\]
因为\((x_i-\overline{x})\)均值为0, 所以记其方差\(J\)为
\[\frac{1}{n}\sum_{i=1}^n((x_i-\overline{x})^T\mu)^2\]
又因为上式平方项中为标量,故可以将\(J\)改写为
\[\frac{1}{n}\sum_{i=1}^n((x_i-\overline{x})^T\mu)^T((x_i-\overline{x})^T\mu)\]
化简,得
\[\frac{1}{n}\sum_{i=1}^n\mu^T(x_i-\overline{x})(x_i-\overline{x})^T\mu\]
发现中间两项是协方差,带入,得
\[\mu^TC\mu\]
接下来就是一个在给定约束条件\(\mu^T\mu\) = 1,下的最优化问题,这里使用Lagrange乘数法求解
构造Lagrange函数\[L(\mu, C, \lambda) = \mu^TC\mu + \lambda(1-\mu^T\mu)\]
关于\(\mu\)求偏导,得
\[\frac{\partial J}{\partial \mu} = 2C\mu - 2\lambda\mu\]
令其等于0,得
\[C\mu = \lambda\mu\]
是不是有点眼熟?
没错,\(\lambda\)就是\(C\)的特征值(eigen-value),\(\mu\)就是\(C\)的特征向量(eigen-vector)
因此,这个我们要求的向量\(\mu\)就是\(C\)的特征向量(要m个,就取前m个最大的特征值对应的特征向量)
PCA主成分分析(最大投影方差)的更多相关文章
- 【建模应用】PCA主成分分析原理详解
原文载于此:http://blog.csdn.net/zhongkelee/article/details/44064401 一.PCA简介 1. 相关背景 上完陈恩红老师的<机器学习与知识发现 ...
- 机器学习之PCA主成分分析
前言 以下内容是个人学习之后的感悟,转载请注明出处~ 简介 在用统计分析方法研究多变量的课题时,变量个数太多就会增加课题的复杂性.人们自然希望变量个数较少而得到的 信息较多.在很 ...
- PCA主成分分析Python实现
作者:拾毅者 出处:http://blog.csdn.net/Dream_angel_Z/article/details/50760130 Github源代码:https://github.com/c ...
- PCA(主成分分析)方法浅析
PCA(主成分分析)方法浅析 降维.数据压缩 找到数据中最重要的方向:方差最大的方向,也就是样本间差距最显著的方向 在与第一个正交的超平面上找最合适的第二个方向 PCA算法流程 上图第一步描述不正确, ...
- PCA主成分分析(上)
PCA主成分分析 PCA目的 最大可分性(最大投影方差) 投影 优化目标 关键点 推导 为什么要找最大特征值对应的特征向量呢? 之前看3DMM的论文的看到其用了PCA的方法,一开始以为自己对于PCA已 ...
- PCA 主成分分析(Principal components analysis )
问题 1. 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余. 2. 拿到一个数学系的本科生期末考试成绩单,里面有三列, ...
- 特征脸(Eigenface)理论基础-PCA(主成分分析法)
在之前的博客 人脸识别经典算法一:特征脸方法(Eigenface) 里面介绍了特征脸方法的原理,但是并没有对它用到的理论基础PCA做介绍,现在做补充.请将这两篇博文结合起来阅读.以下内容大部分参考 ...
- 用PCA(主成分分析法)进行信号滤波
用PCA(主成分分析法)进行信号滤波 此文章从我之前的C博客上导入,代码什么的可以参考matlab官方帮助文档 现在网上大多是通过PCA对数据进行降维,其实PCA还有一个用处就是可以进行信号滤波.网上 ...
- PCA(主成分分析)的简单理解
PCA(Principal Components Analysis),它是一种“投影(projection)技巧”,就是把高维空间上的数据映射到低维空间.比如三维空间的一个球,往坐标轴方向投影,变成了 ...
- 『科学计算_理论』PCA主成分分析
数据降维 为了说明什么是数据的主成分,先从数据降维说起.数据降维是怎么回事儿?假设三维空间中有一系列点,这些点分布在一个过原点的斜面上,如果你用自然坐标系x,y,z这三个轴来表示这组数据的话,需要使用 ...
随机推荐
- kubectl: Error from server: error dialing backend: remote error: tls: internal error
使用kubectl logs,发现报了tls的错误,然后查看kubelet的日志,发现报了上面的错误,然后通过命令kubectl get csr查看发现有很多处于pending状态 最后通过命令 ku ...
- Docker虚拟化之<基础命令>
1.在docker hub中搜索镜像 docker search nginx 2.从docker镜像服务器拉取指定镜像或者库镜像 docker pull docker.io/nginx 3.列出系统当 ...
- 微信小程序——template详细使用
WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用减少冗余代码. 1.1定义模板 1.1.1.创建模板文件夹 1.1.2.使用 name 属性,作为模板的名字.然后 ...
- 基于webpack实现多html页面开发框架五 开发环境配置 babel配置
一.解决什么问题 1.开发环境js.css不压缩,可在浏览器选中代码调试 2.开发环境运行http服务指向打包后的文件夹 3.babel输出浏览器兼容的js代码 二.需要 ...
- WWDC 2016 盛宴
转自:http://www.jianshu.com/p/72dd8306c817 整理和维护人:pmstGitHub 链接:WWDC-2016-Feast目前只是整理官方给出的 WWDC 2016 视 ...
- Java修炼——IO流的概念以及其分类
IO流的基本概念: 流的原理: 1) 在 Java 程序中,对于数据的输入/输出操作以"流" (stream) 方式进行: 2) J2SDK 提供了各种各样的"流&quo ...
- JVM内运行时数据区
JVM的基本区域: 类加载子系统 运行时数据区(内存区域) 执行引擎 运行时数据区域 方法区(Method Area) 类的所有字和方法字节码,以及一些特殊方法如构造函数,接口代码也在这里定义.简单来 ...
- 关于直线,V形线,Z形线,M形线分割平面的总结
一:N条直线分割平面 假设,x条线能将平面分为f(x)份,这对于份f(n) 第n条线,和其他n-1条线都有交点时,增加量最大,为n; 则: f(n)=f(n-1)+n; 有f(0)=1:得到:n 条直 ...
- 微信小程序使用pako.js的踩坑笔记
问题 今天组长跟我们讨论了个问题,说是文章存储占用有点大,消耗宽带流量费,让我看看能不能找个方法解决一下(文章存储的是html字符串).第一反应是没什么头绪,能想到的就是将相同的字符串替换成一个标识之 ...
- Fusion360_Generative Design 入门学习笔记
2019.12.17更新 初次见到衍生式设计的时候感觉非常惊艳,现在觉得这个功能就是个弟弟,只能做一些中看不中用的东西.这个方法的理论基础是拓扑优化,想做research的同学可参阅"如何入 ...