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这三个轴来表示这组数据的话,需要使用 ...
随机推荐
- 【数据结构】之队列(Java语言描述)
在[这篇文章]中,我简单介绍了队列的基本数据结构及操作方式,并用C语言代码描述了队列的基本功能实现. JDK中默认为我们提供了队列的API—— Queue . Queue是一个接口,其中提供了处理队列 ...
- ASI和AFN的区别
ASI总结 发送请求的2个对象 1.发送GET请求 ASIHttpRequest 2.发送POST请求 ASIFormDataRequest 二发送请求 1.同步请求 startSynchronous ...
- npm切换成淘宝镜像源
0-前言 我们都知道node下载第三方依赖包是从国外服务器下载,不是速度奇慢就是下载异常,切换成国内的淘宝镜像源很有必要: 1-切换方法 $ npm config set registry https ...
- 前端工具-定制ESLint 插件以及了解ESLint的运行原理
这篇文章目的是介绍如何创建一个ESLint插件和创建一个ESLint rule,用以帮助我们更深入的理解ESLint的运行原理,并且在有必要时可以根据需求创建出一个完美满足自己需求的Lint规则. 插 ...
- list tuple dict 方法
>>> dir(list)['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir_ ...
- git 使用详解(4)—— commit -a -m/diff --staged/rm/mv
查看已暂存和未暂存的更新 实际上 git status的显示比较简单,仅仅是 列出了(修改过的.新创建的.已经暂存但未提交的)文件,如果要查看具体修改了什么地方,可以用git diff 命令.稍后我们 ...
- CSU OJ 2148 梦皮神
Description Wells最近经常做一些有皮神出现的梦. 在这一次梦中Wells把皮神(Pikachu)弄丢了,Wells在一个正 N 边形区域的中心开始自闭,Wells想找回皮神,同时皮神也 ...
- Bless You Autocorrect!
题目链接: https://odzkskevi.qnssl.com/0c87453efec2747f8e8a573525fd42f9?v=1533651456 题解: 这是一道Trie+BFS的题目: ...
- git 设置和取消指定域名代理 - git config proxy
Firstly - Check Check if U have global .gitconfig file 检查是否有全局 .gitconfig 文件 Usually global .gitconf ...
- ARTS-S pytorch用c++实现推理
训练的代码,以cifar为例 # -*- coding: utf-8 -*- import torch import torchvision import torchvision.transforms ...