参考:http://blog.csdn.net/wangjian1204/article/details/50642732

参考:https://www.zhihu.com/question/38319536

对角化的概念:

已知n x n的矩阵M,如果对于i≠j,Mij=0,则该矩阵为对角矩阵,如果存在一个矩阵A,使得A-1MA的结果为对角矩阵,则称矩阵A将矩阵M对角化。对一个矩阵来说,不一定存在将其对角化的矩阵,但是对于任意一个n x n的矩阵如果存在n个线性不相关的特征向量,则该矩阵可以被对角化。

定理:

令M为n x n矩阵,其特征值为λ1,λ2,...,λn,特征向量为V1,V2,...,Vn,形成线性无关组合,以每个特征向量为列构成矩阵A=[V1,V2,...,Vn],矩阵A可以将矩阵M对角化,乘积矩阵 A-1MA的主对角元素是矩阵M的特征值:

反之,如果存在可逆矩阵A,使得A-1MA为对角矩阵,则矩阵A的列等于矩阵M的特征向量,A-1MA的主对角元素为矩阵M的特征值,即M=AΛA-1

若M为实对称矩阵,那么M也可以表示为:,其中Λ为特征值组成的特征矩阵。因为A为正交矩阵,所以AT=A-1

PCA

也称为主成分分析,用于降维和去噪,PCA选取包含信息量最多的方向对数据进行投影,其投影方向可以从最大化方差和最小化投影误差来理解。

假设有n x d矩阵X,每一行是一个d维矩阵xi,寻找投影方向vj以最大化投影误差:

该式子同样可以表示成:

,左式的X为样本矩阵

上面第一个式子的右边的推导是基于X已经经过0均值化处理,即为0,vj是数据的投影方向

从式子可以发现,xivj为样本点xi在映射维度的坐标,目的就是为了使得投影方差最大化,也即当为0时,求最大化。

那么d x d协方差矩阵C满足

,由于C是实对称矩阵,可以进行对角化处理:

d x d正交矩阵V的每一列是特征向量,d x d矩阵L对角线上的每一个元素是特征值,且特征值按递减顺序排列,将C代回最上式子:

其中λj是特征向量vj对应的特征值,可以发现当投影方向是C的最大特征值对应的特征向量时,投影方向上数据的方差最大,所以用PCA进行降维时选取最大的n个特征值对应的特征向量作为投影方向:XVk,Vk是最大的k个特征值对应的特征向量矩阵,也就是我们所需要的投影矩阵。

PCA过程与SVD分解的联系在于:

若对X作奇异值分解(SVD):

对角矩阵S对角线上的元素是奇异值,U和V是正交矩阵:,把X的奇异值分解代入协方差矩阵:

d x d正交矩阵V的每一列是特征向量,特征值和奇异值之间存在对应关系:,对X主成份方向进行投影:

Uk包含U的前k列,Sk包含S左上角的k x k个元素

区别和联系

SVD可以获取另一个方向上的主成分,而PCA只能获取单个方向上的主成分:

通过SVD可以得到和PCA相同的结果,但是通常SVD比直接使用PCA更加稳定,因为PCA需要计算XTX的值。

PCA(基础知识)的更多相关文章

  1. matlab pca基础知识

    PCA的一些基本资料 最近因为最人脸表情识别,提取的gabor特征太多了,所以需要用PCA进行对提取的特征进行降维. 本来最早的时候我没有打算对提取的gabor特征进行降维,但是如果一个图像时64*6 ...

  2. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  3. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  4. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  5. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  6. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  7. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  8. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  9. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. mysql 无法存储表情字符 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xBE",...' for column 'XXXX' at row 1

    1.变更字段类型 ALTER TABLE api_log MODIFY COLUMN remark longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_uni ...

  2. ES6新增特性

    ES6:  ECMA 第六次改版   块级作用域:   凡是被{ }包裹住的代码都是块级作用域,除了对象       特点:会造成一个暂时性死区    新增声明变量的两种方式: let:     a. ...

  3. sql中的isnull

    ISNULL 使用指定的替换值替换 NULL. 语法ISNULL ( check_expression , replacement_value ) 参数check_expression 将被检查是否为 ...

  4. 多线程10-SemaphoreSlim

        );         ;i<=;i++)             {                  +  * i;                 ));             C ...

  5. java 标识接口的作用

    标识接口的作用 标识接口是没有任何方法和属性的接口.标识接口不对实现它的类有任何语义上的要求,它仅仅表明实现它的类属于一个特定的类型. 标接口在Java语言中有一些很著名的应用,例如我们常用的Arra ...

  6. Neo4j 不区分大小写的模糊查询匹配

    问题:当图数据库中存储的节点的名字为英文时,就会遇到大小写不匹配问题. 使用不区分大小写的正则表示式可以解决以上问题. Cpyher的where语法里支持正则表达式 ,其语法为 :   =~ &quo ...

  7. neo4j 基本语法笔记(全)

    按照总监要求看了两天的neo4j 数据库的使用.在网上找了一个基础教程类似于w3c.school的网站(英文 ,中文,中文的翻译的不是很好,如果英文不好可以辅助理解),这个教程基础知识很全全面,从数据 ...

  8. Dubbo一文入门

    一.简介 系统的架构,已从最早的单体式架构(一个war包完事)逐渐发展到目前的微服务式架构.微服务,将一个大型的复杂的应用系统,拆分成若干独立的松耦合的小的服务工程,每个服务工程可独立部署,每个服务只 ...

  9. NIO的缓冲区、通道、选择器关系理解

    Buffer的数据存取    一个用于特定基本数据类行的容器.有java.nio包定义的,所有缓冲区都是抽象类Buffer的子类.   Java NIO中的Buffer主要用于与NIO通道进行交互,数 ...

  10. 遍历并读取指定目录下的所有文件内容,写入Map集合然后输出在控制台和本地文件

    public class FileWrite { public static void main(String[] args) throws Exception { //封装数据源目录 File sr ...