[转]浅谈PCA的适用范围
线性代数主要讲矩阵,矩阵就是线性变换,也就是把直线变成直线的几何变换,包括过原点的旋转、镜射、伸缩、推移及其组合。特征向量是对一个线性变换很特殊的向量:只有他们在此变换下可保持方向不变,而对应的特征值就是该向量缩放的比例。最大特征值和对应的特征向量就意味着在该方向上方向不变且缩放比例能达到最大。注意到特征向量天然正交,否则他们在别的特征方向上会发生方向的改变。
在此基础上再来理解PCA降维:样本协方差阵是变量间的相关性度量,在高斯假设下它是协方差的充分统计量,根据对称阵可正交分解,它的最大特征值所对应特征向量的方向,就是对数据正交变换后缩放比例最大的方向,这意味着该方向上信噪比最大,如此就使该数据的第一大方差落在第一个坐标上,依次类推。具体的推导,可以使用拉格朗日乘数法求解变换后数据的方差最小化问题得到。
以上我们易得PCA降维的适用范围是:线性假设意味着变量量纲不同时要非常小心,反过来也说明为啥图像识别该方法甚为有效;高斯假设意味着当样本不符合指数族分布时就是白忙活,因为样本协方差阵实际上只使用了均值和方差,对指数族分布这才是充分统计量(sufficient statistic)。此外还有主成分正交和信噪比很大两个普遍假设。主成分正交的解释是,既然PCA降维相当于找个向量让数据在上面投影方差最大,而求解该优化问题后发现这个向量正是特征向量,而特征向量天然是正交的。信噪比很大是机器学习能够work的理论基础。
应当指出的是,PCA降维的出发点不是分类也不是聚类,它只是对原始数据的一种变换,可以用更少的维度保存最多的信息(数学语言即变换后的数据与原来数据的均方误差最小化)
[转]浅谈PCA的适用范围的更多相关文章
- 浅谈PCA
最近在回顾PCA方面的知识,发现对于之前的很多东西有了新的理解,下面和大家分享下我的一些个人的理解 1.我们为什么要用PCA,它能解决我什么问题? PCA(Principal Component An ...
- 浅谈 PCA与SVD
前言 在用数据对模型进行训练时,通常会遇到维度过高,也就是数据的特征太多的问题,有时特征之间还存在一定的相关性,这时如果还使用原数据训练模型,模型的精度会大大下降,因此要降低数据的维度,同时新数据的特 ...
- 浅谈自底向上的Shell脚本编程及效率优化
作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ...
- 浅谈动态规划(Dynamic Programming)
利用Leetcode#198打劫家舍 浅谈动态规划 Origin:https://leetcode-cn.com/problems/house-robber/ 题目本身不难,就是一个动态规划的问题.在 ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
随机推荐
- crawler_爬虫代理方案
爬虫往往会遇到各种限制ip问题 理方案(爬虫) IP代理软件 优势标记: 是 自动切换IP 基本无开发成本标记: 黄色, 考虑切换IP时 ,网络瞬时异常 IP池,由商家维护 劣势标记: 非 部署 每个 ...
- 【Socket计划】使用C++实现Server结束Client结束
我是在Visual Stdio 2013两人的建立project.编译如下两个人main文件,然后测试 服务器:Server.cpp #include <WINSOCK2.H> #incl ...
- 2014联合三所学校 (HDU 4888 HDU 4891 HDU 4893)
HDU 4891 The Great Pan 注册标题 他怎么说,你怎么样 需要注意的是乘法时,它会爆炸int 代码: #include<iostream> #include<c ...
- [CLR via C#]1.4 执行程序集的代码
原文:[CLR via C#]1.4 执行程序集的代码 1. 托管程序集同时包含元数据和IL.IL是与CPU无关的机器语言.可将IL是为一种面向对象的机器语言. 2. IL也是能使用汇编语言来写的,M ...
- vim插件管理器vundle
安装: git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle set nocompatible " be i ...
- MVC02
1.在EF5.0修改实体的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误db.Configuration.ValidateOn ...
- MongoDB学习笔记<两>
继续有shell学问,他们继续研究的例子,下面的知识: --文档数据插入 --文档数据删除 --文档数据更新 如下面的详细信息: 1.插入文档 db.person.insert({"name ...
- 多种语言socket编程集锦—win32
原文 http://www.blogjava.net/huyi2006/articles/263831.html 借此地方整理以下socket编程的多种语言的实现,socket可以跨平台的通信,因此多 ...
- POJ 2777 Count Color(线段树+位运算)
题目链接:http://poj.org/problem?id=2777 Description Chosen Problem Solving and Program design as an opti ...
- ArcGIS课程:表面数据转换成矢量数据
虽然TIN (TIN) 和 terrain 数据收集被认为是载体表面.但它们实际上包括基于其他信息元素.并且该信息是在图象点.线或多边形原始格这可能是更实用的公式.在 ArcGIS 在,你可以很容易的 ...