主成分分析(PCA)

PCA,主成分分析

  

  主成分分析主要用于数据的降维。原始数据中数据特征的维度可能是很多的,但是这些特征并不一定都是重要的,如果我们能够将数据特征进行精简,不但能够减少存储空间,而且也有可能降低数据中的噪声干扰。

  举个例子:这里有一组数据,如下 表1
  2.5  1.2  -2.3  -2.8   -1    0.3

  3.3  0.8  -1.8  -2.5  -0.8  0.2

  每一列代表一组数据,每一行代表一种特征,可见有2个特征,即数据是2维的,我们所要做的是尽可能的降低数据复杂度,同时也要保证数据中的信息不丢失。

  将2维的数据画在坐标系中,我们发现如果以红色的轴作为x轴(y轴与x轴垂直),那么就可以数据坐标值就变成了,x轴方向值差距较大,而y轴方向值想接近,也可以用方差来描述,x轴方向的方差较大,y轴方向的方差较小,那么如果允许少量的信息失去,仅留下x轴方向的值,那么原数据就由2维降到了1维,这就是主成分分析的主要原理,由此可见,主要就是“坐标轴的变换”,将原来2维的数据“投影”到这个1维的轴上,那么方法的关键就是如何找到这个新的“坐标轴”。

  直观地理解,因为我们想尽可能的保留信息,所以在垂直于这个“新坐标轴”的方向上数据点的分布应该尽量的“扁”一些,换句话说,就是数据点在“新坐标轴”上的分布尽量的分散一些,用数学的语言表达就是使得数据点在“新坐标轴”上投影的方差尽量的大。这样,不同的两个点,投影之后也不是重叠的,最大地保留了信息。保留方差大的维度,忽略方差较小的维度,以此来降维。下面给出方差公式:

  这样就足够了吗?

  我们考虑一组数据从3维降为2维的情况。也就是说要找到2个“新坐标轴”,那么该如何选,前面已经知道,我们要尽量使得数据在新坐标轴方向的投影尽量的分散,也就是方差尽量的大。同时这两条坐标轴一定要正交(你可以理解为垂直)。

  为什么一定要这样呢?

  因为如果两个坐标轴不互相垂直,那么其中一条坐标轴一定可以沿另一条坐标轴方向分解,这样这两条坐标轴所表达的“信息”事实是有重叠的,所以要让两条坐标轴表达的“信息”相互独立,即“新坐标轴”要正交。

  这个用数学的语言来表达就是所有的数据在两个“新坐标轴”的投影的协方差为0,即关于特征的两个行向量协方差为0。这个“新坐标轴”也被称为基,这个坐标轴变换也被称为基变换

下面是协方差公式:

  (X,Y表示两个维度的数据,相当于表1中的两行)

  总结一下,就是两个方面:
    1)行向量的方差尽量大,Cov(X,X) Cov(Y,Y) (方差)
    2)行向量间的协方差为0 Cov(X,Y) Cov(Y,X)
  列向量指的是数据降维后在“新坐标轴”投影的下的值所组成的向量

  我们将这两个方面组合一个矩阵,这个矩阵称为协方差矩阵,我们的目标是使得其对角线以外的协方差为0,对角线上尽量保留方差大的维度(忽略方差较小的维度,以此来降维)。

  那么这个协方差矩阵如何快速得到?

  由协方差的计算公式我们可以得到,将原矩阵每行都减去该行的均值,得到矩阵A,然后矩阵A乘以矩阵A的转置,最后除以N-1(N是矩阵行数)

  那么如何求得”新坐标轴“(一组基)和原始数据在”新坐标轴“下的表示?
  (下面引用张洋的博客,因为他写的实在太精彩了)
  设原始数据矩阵X对应的协方差矩阵为C,而P是一组基按行组成的矩阵,设Y=PX,则Y为X对P做基变换后的数据(Y即为压缩后的数据)。设Y的协方差矩阵为D,我们推导一下D与C的关系:

  现在事情很明白了!我们要找的P不是别的,而是能让原始协方差矩阵对角化的P。换句话说,优化目标变成了寻找一个矩阵P,满足(公式)是一个对角矩阵,并且对角元素按从大到小依次排列,那么P的前K行就是要寻找的基,用P的前K行组成的矩阵乘以X就使得X从N维降到了K维并满足上述优化条件。

  (想看更加详细的解释,请移步 http://blog.codinglabs.org/articles/pca-tutorial.html)

  关于矩阵P的求法,由于协方差矩阵C是实对称阵,只要求出协方差矩阵C的特征值及对应的特征向量,将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

  我们先介绍主成分分析法的原理,再来体验一下计算过程(使用Matlab)。

首先初始化矩阵

矩阵减去每行的均值

计算协方差矩阵C

求解协方差矩阵的特征向量和特征值

则P = eigenvectors

由于38.0823>0.5460

保留第二个特征向量(-0.7175, -0.6966)

计算压缩后的数据Y

参考博客:

http://blog.codinglabs.org/articles/pca-tutorial.html

http://www.360doc.com/content/14/0526/06/15831056_380900310.shtml

时间: 2024-08-23 23:47:01

主成分分析(PCA)的相关文章

降维(一)----说说主成分分析(PCA)的源头

降维(一)----说说主成分分析(PCA)的源头 降维系列: 降维(一)----说说主成分分析(PCA)的源头 降维(二)----Laplacian Eigenmaps --------------------- 主成分分析(PCA) 在很多教程中做了介绍,但是为何通过协方差矩阵的特征值分解能够得到数据的主成分?协方差矩阵和特征值为何如此神奇,我却一直没弄清.今天终于把整个过程整理出来,方便自己学习,也和大家交流. 提出背景 以二维特征为例,两个特征之间可能存在线性关系的(例如这两个特征分别是运

K-L变换和 主成分分析PCA

一.K-L变换 说PCA的话,必须先介绍一下K-L变换了. K-L变换是Karhunen-Loeve变换的简称,是一种特殊的正交变换.它是建立在统计特性基础上的一种变换,有的文献也称其为霍特林(Hotelling)变换,因为他在1933年最先给出将离散信号变换成一串不相关系数的方法.K-L变换的突出优点是它能去相关性,而且是均方误差(Mean Square Error,MSE)意义下的最佳变换. 下面就简单的介绍一下K-L变换了. 设,随机向量X ∈Rn(n阶列向量),它的均值向量为mX,则其协

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA) 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是

主成分分析(PCA)

相对与网上很多人分享的有关PCA的经历,我第一次接触PCA却不是从人脸表情识别开始的,但我所在的实验室方向之一是人脸的研究,最后也会回到这个方向上来吧. PCA(principal components analysis)是一种非常有用的统计技术,它已经应用于人脸识别和图像压缩领域中,并且是高维数据计算模型的常用技术.简单说是把高维数据将成低维数据,比如100000x100000的矩阵降成100000x100的. 从例子中也看得出在数学模型中直观看到的是对矩阵进行的各种各样的变形最终达到我们所需

深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening

主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通过PCA降维,我们能够有效的降低数据的维度,加快运算速度.而白化就是为了使得每个特征能有同样的方差,降低相邻像素的相关性. 主成分分析PCA PCA算法可以将输入向量转换为一个维数低很多的近似向量.我们在这里首先用2D的数据进行试验,其数据集可以在UFLDL网站的相应页面http://ufldl.stanford.edu/wiki/index.php/Exercise:PCA_in_2D

机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA

本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensionality) 维数灾难就是说当样本的维数增加时,若要保持与低维情形下相同的样本密度,所需要的样本数指数型增长.从下面的图可以直观体会一下.当维度很大样本数量少时,无法通过它们学习到有价值的知识:所以需要降维,一方面在损失的信息量可以接受的情况下获得数据的低维表示,增加样本的密度:另一方面也可以达到去噪

线性判别分析(LDA), 主成分分析(PCA)及其推导【转】

前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA是一个和LDA非常相关的算法,从推导.求解.到算法最终的结果,都有着相当的相似. 本次的内容主要是以推导数学公式为主,都是从算法的物理意义出发,然后一步一步最终推导到最终的式子,LDA和PCA最终的表现都是解一个矩阵特征值的问题,但是理解了如何推导,才能更深刻的理解其中的含义.本次内容要求读者有一些

机器学习——降维(主成分分析PCA、线性判别分析LDA、奇异值分解SVD、局部线性嵌入LLE)

机器学习--降维(主成分分析PCA.线性判别分析LDA.奇异值分解SVD.局部线性嵌入LLE) 以下资料并非本人原创,因为觉得石头写的好,所以才转发备忘 (主成分分析(PCA)原理总结)[https://mp.weixin.qq.com/s/XuXK4inb9Yi-4ELCe_i0EA] 来源:?石头?机器学习算法那些事?3月1日 主成分分析(Principal components analysis,以下简称PCA)是最常用的降维方法之一,在数据压缩和消除冗余方面具有广泛的应用,本文由浅入深的

05-03 主成分分析(PCA)

目录 主成分分析(PCA) 一.维数灾难和降维 二.主成分分析学习目标 三.主成分分析详解 3.1 主成分分析两个条件 3.2 基于最近重构性推导PCA 3.2.1 主成分分析目标函数 3.2.2 主成分分析目标函数优化 3.3 基于最大可分性推导PCA 3.4 核主成分分析(KPCA) 四.主成分分析流程 4.1 输入 4.2 输出 4.3 流程 五.主成分分析优缺点 5.1 优点 5.2 缺点 六.小结 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工

主成分分析PCA详解

转载请声明出处:http://blog.csdn.net/zhongkelee/article/details/44064401 一.PCA简介 1. 相关背景 上完陈恩红老师的<机器学习与知识发现>和季海波老师的<矩阵代数>两门课之后,颇有体会.最近在做主成分分析和奇异值分解方面的项目,所以记录一下心得体会. 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律.多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加