PCA是机器学习中recognition中的传统方法,今天下午遇到了,梳理记一下

提出背景:

二维空间里,2个相近的样本,有更大概率具有相同的属性,但是在高维空间里,由于样本在高维空间里,呈现越来越稀疏的特性,即使相同属性的样本,距离也是随着维度提高,越来越远。

如100 * 100的照片分析,数据维度10000维,数据维度太高,计算机处理复杂度高,需要将维度降低(因为10000维里面数据之间存在相关关系,所以可以除去重复维度信息,而保持信息不丢失)

降维方法

1.以二维空间的5个样本X为例

先进行零均值化变为 
 
坐标轴上表示为:
                                     
2.求原始坐标空间x,y的协方差矩阵
                                                                
 x和y轴上均值为0, 所以x轴上元素的方差Variance(x)满足:
                                
 x轴,y轴上元素的方差Coariance(x,y)满足:
                               
我们将原始矩阵X做如下变换
                                
此时矩阵对角线上的元素是X,Y轴上的方差,邪对角线上的元素是,XY的协方差,此规律扩展到多维空间,同样成立:
                                                                          C是一个对称矩阵,其对角线分别个各个轴的方差,而第 i 行 i 列和,  j 行 i 列元素相同,表示和两个轴的协方差。
 
3.将X经过P做基变换后得到Y = PX,此时Y已变换到以P为基的新空间,这个空间维数更少,Y的各轴上方差达到最大,且轴与轴之间协方差最小
          
                             
 
                             
在变换后的新空间上,Y的各轴方差,和轴与轴之间的协方差,可以通过Y的协方差矩阵D表示
                          
 我们的优化目标即:Y的新空间上的新坐标轴上方差达到最大,且轴与轴之间协方差最小,此目标等价于Y的协方差矩阵D的对角化(非对角线上全为0,表示各轴之间表示的信息相互独立,将对角线上元素按照从大往小排列,最大的第1个元素,在那个轴上的方差最大)
                       
4.C是一个实对称矩阵(
                           
5.
                           
 对C求得特征值为,对应的特征向量为:
                                            
6.
                            
           
                
                           
如下图所示:
                           

PCA(Principal Component Analysis)笔记的更多相关文章

  1. R: 主成分分析 ~ PCA(Principal Component Analysis)

    本文摘自:http://www.cnblogs.com/longzhongren/p/4300593.html 以表感谢. 综述: 主成分分析 因子分析 典型相关分析,三种方法的共同点主要是用来对数据 ...

  2. 《principal component analysis based cataract grading and classification》学习笔记

    Abstract A cataract is lens opacification caused by protein denaturation which leads to a decrease i ...

  3. Principal Component Analysis(PCA) algorithm summary

    Principal Component Analysis(PCA) algorithm summary mean normalization(ensure every feature has sero ...

  4. PCA(Principal Component Analysis)主成分分析

    PCA的数学原理(非常值得阅读)!!!!   PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可 ...

  5. Principal Component Analysis(PCA)

    Principal Component Analysis(PCA) 概念 去中心化(零均值化): 将输入的特征减去特征的均值, 相当于特征进行了平移, \[x_j - \bar x_j\] 归一化(标 ...

  6. (4)主成分分析Principal Component Analysis——PCA

    主成分分析Principal Component Analysis 降维除了便于计算,另一个作用就是便于可视化. 主成分分析-->降维--> 方差:描述样本整体分布的疏密,方差越大-> ...

  7. Principal Component Analysis ---- PRML读书笔记

    To summarize, principal component analysis involves evaluating the mean x and the covariance matrix ...

  8. 从矩阵(matrix)角度讨论PCA(Principal Component Analysis 主成分分析)、SVD(Singular Value Decomposition 奇异值分解)相关原理

    0. 引言 本文主要的目的在于讨论PAC降维和SVD特征提取原理,围绕这一主题,在文章的开头从涉及的相关矩阵原理切入,逐步深入讨论,希望能够学习这一领域问题的读者朋友有帮助. 这里推荐Mit的Gilb ...

  9. Sparse Principal Component Analysis via Rotation and Truncation

    目录 对以往一些SPCA算法复杂度的总结 Notation 论文概述 原始问题 问题的变种 算法 固定\(X\),计算\(R\) 固定\(R\),求解\(X\) (\(Z =VR^{\mathrm{T ...

随机推荐

  1. 小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_22、SpringBoot启动方式和部署war项目到tomcat9

    笔记 1.SpringBoot启动方式讲解和部署war项目到tomcat9 简介:SpringBoot常见启动方式讲解和部署war项目Tomcat 1.ide启动     2.jar包方式启动    ...

  2. kotlin中val和var的区别

    var: var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量.这种声明变量的方式和Java中声明变量的方式一样.val: val是一个只读变量,这种声明变量的方式相当于java中的f ...

  3. python的argparse模块parse_known_args()方法的使用

    parse_known_args()方法的用处就是有些时候,你的选项配置可能不会在一个函数或包中调用完成 在很多使用,我们可能会需要根据一些输入的选项,比如在深度学习中,我们可能会根据传入的模型设置- ...

  4. 【插件式框架探索系列】使用多UI线程提升性能

    了解WPF线程模型的都知道,UI线程负责呈现和管理UI,而UI元素(派生自 DispatcherObject)只能由创建该元素的线程来访问,这就导致了一些耗时的UI操作将影 响到整个应用程序性能,未响 ...

  5. matlab基本数据结构struct

    一起来学演化计算-matlab基本数据结构struct 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 http://blog.sina.com.cn/s/blog_46865140 ...

  6. 123457123457#0#----com.MC.3or1KongLongPT867----前拼后广--3or1恐龙PtGame-mc

    com.MC.3or1KongLongPT867----前拼后广--3or1恐龙PtGame-mc

  7. pytorch中调整学习率的lr_scheduler机制

    有的时候需要我们通过一定机制来调整学习率,这个时候可以借助于torch.optim.lr_scheduler类来进行调整:一般地有下面两种调整策略:(通过两个例子来展示一下) 两种机制:LambdaL ...

  8. online学习和offline学习

    参考:https://blog.csdn.net/a133521741/article/details/79221015 解释: (1)offline学习:每次训练完一个batch后再更新参数: (2 ...

  9. 【k8s label】对node添加删除label,并根据label筛选节点

    添加 kubectl label nodes kube-node label_name=label_value kubectl label nodes 1.1.1.1 label_name=label ...

  10. 14点睛Spring4.1-脚本编程

    转发:https://www.iteye.com/blog/wiselyman-2212678 14.1 Scripting脚本编程 脚本语言和java这类静态的语言的主要区别是:脚本语言无需编译,源 ...