最大方差和最小协方差解释(线性代数看PCA)

转自: 最大方差和最小协方差解释(线性代数看PCA)

PCA降维

                        ——最大方差和最小协方差联合解释(线性代数看PCA)

   注:根据网上资料整理而得,欢迎讨论

机器学习算法的复杂度和数据的维数有着密切关系,甚至与维数呈指数级关联。因此我们必须对数据进行降维。

降维当然意味着信息的丢失,不过鉴于实际数据本身常常存在的相关性,我们可以想办法在降维的同时将信息的损失尽量降低。

PCA是一种具有严格数学基础并且已被广泛采用的降维方法。

协方差矩阵及优化目标

如果我们必须使用一维来表示这些数据,又希望尽量保留原始的信息,你要如何选择?

通过上一节对基变换的讨论我们知道,这个问题实际上是要在二维平面中选择一个方向,将所有数据都投影到这个方向所在直线上,用投影值表示原始记录。这是一个实际的二维降到一维的问题。

那么如何选择这个方向(或者说基)才能尽量保留最多的原始信息呢?一种直观的看法是:希望投影后的投影值尽可能分散。

方差

上文说到,我们希望投影后投影值尽可能分散,而这种分散程度,可以用数学上的方差来表述。被形式化表述为:寻找一个一维基,使得所有数据变换为这个基上的坐标表示后,方差值最大,(即:投影之后的点比较分散,没有相关性。以达到一个很好的降维效果)

协方差

当协方差为0时,表示两个字段完全独立。为了让协方差为0,我们选择第二个基时只能在与第一个基正交的方向上选择。因此最终选择的两个方向一定是正交的。

至此,我们得到了降维问题的优化目标:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。即:投影之后的点比较分散,没有相关性。以达到一个很好的降维效果)

协方差矩阵

在数学上研究计算方案。

设我们有m个n维数据记录,将其按列排成n乘m的矩阵X,设C=1/m*XXT,则C是一个对称矩阵,其对角线分别个各个字段的方差,而第i行j列和j行i列元素相同,表示i和j两个字段的协方差

协方差矩阵对角化

根据上述推导,我们发现要达到优化目前,等价于将协方差矩阵对角化:即除对角线外的其它元素化为0,并且在对角线上将元素按大小从上到下排列,这样我们就达到了优化目的。这样说可能还不是很明晰,我们进一步看下原矩阵与基变换后矩阵协方差矩阵的关系:

设原始数据矩阵X对应的协方差矩阵为C,而P是一组基按行组成的矩阵,设Y=PX,则Y为X对P做基变换后的数据。设Y的协方差矩阵为D,我们推导一下D与C的关系:

D = 1/m*YYT= 1/m*(PX)(PX)T=1/m*PXXTP=P(1/m*XXT)P=PCPT

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

至此,我们离“发明”PCA还有仅一步之遥!

现在所有焦点都聚焦在了协方差矩阵对角化问题上,有时,我们真应该感谢数学家的先行,因为矩阵对角化在线性代数领域已经属于被玩烂了的东西,所以这在数学上根本不是问题。

由上文知道,协方差矩阵C是一个是对称矩阵,在线性代数上,实对称矩阵有一系列非常好的性质:

1)实对称矩阵不同特征值对应的特征向量必然正交。

2)设特征向量λ重数为r,则必然存在r个线性无关的特征向量对应于λ,因此可以将这r个特征向量单位正交化。

由上面两条可知,一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量,设这n个特征向量为e1,e2,?,en,我们将其按列组成矩阵:

E=(e1,e2,?en)

则对协方差矩阵C有如下结论:

ETCE=Λ;

其中Λ为对角矩阵,其对角元素为各特征向量对应的特征值(可能有重复)。

到这里,我们发现我们已经找到了需要的矩阵P:P=ET

P是协方差矩阵的特征向量单位化后按行排列出的矩阵,其中每一行都是C的一个特征向量。如果设P按照Λ中特征值的从大到小,将特征向量从上到下排列,则用P的前K行组成的矩阵乘以原始数据矩阵X,就得到了我们需要的降维后的数据矩阵Y。

进一步讨论

PCA本质上是将方差最大的方向作为主要特征,并且在各个正交方向上将数据“离相关”,也就是让它们在不同正交方向上没有相关性。

因此,PCA也存在一些限制,例如它可以很好的解除线性相关,但是对于高阶相关性就没有办法了,对于存在高阶相关性的数据,可以考虑Kernel PCA,通过Kernel函数将非线性相关转为线性相关,关于这点就不展开讨论了。

另外,PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣了。

原文地址:https://www.cnblogs.com/azhenwang/p/9263369.html

时间: 2024-11-08 10:55:46

最大方差和最小协方差解释(线性代数看PCA)的相关文章

最小方差解释(线性代数看PCA)

PCA降维                         ——最小方差解释(线性代数看PCA)    注:根据网上资料整理而得,欢迎讨论 机器学习算法的复杂度和数据的维数有着密切关系,甚至与维数呈指数级关联.因此我们必须对数据进行降维. 降维当然意味着信息的丢失,不过鉴于实际数据本身常常存在的相关性,我们可以想办法在降维的同时将信息的损失尽量降低. PCA是一种具有严格数学基础并且已被广泛采用的降维方法. 协方差矩阵及优化目标 如果我们必须使用一维来表示这些数据,又希望尽量保留原始的信息,你要

对模型方差和偏差的解释之一:过拟合

原文:http://blog.csdn.net/vivihe0/article/details/33317041 在说到模型过拟合问题的时候,我们经常听说到模型的方差和偏差,本系列就通过多项式拟合为例来说明什么是模型的方差和偏差,进而说明模型复杂度与模型预测效果之间的关系. 我们通过计算机产生样本数据点来进行多项式拟合.为了能在2维平面上方便显示拟合的函数,我们的输入向量和输出向量都是1维的.我们产生数据的函数是: y = sin(2*pi*x) 根据这个函数,我们以(0,0.1,....,0.

对模型方差和偏差的解释之二:泛化误差

原文:http://blog.csdn.net/vivihe0/article/details/33319969 我们说过,如何在实际应用中建模,我们不可能知道产生数据的真实函数是什么,那么如何评价模型的好坏呢?由于我们拟合曲线的目标是对新的x值做出好的预测.为了检验我们建立的模型的好坏,我们需要一个测试集,这个集合与我们训练模型的训练集相互独立.也就是说,测试集中的样本数据必须是在训练模型的时候,模型没有见过的样本数据.已经训练好的模型在遇见新的样本时的表现被称作泛化性能. 现在我们还是利用函

从开发者的角度解释网上看视频出现的各种问题

本文从开发者的角度给大家用通俗的语言来解释一下有关音视频播放的问题. 1. 为什么在视频网站上播放1080P视频有时候不是特别清晰? 1080P代表视频的分辨率是1920x1080,对于图像而言,分辨率越高,清晰度也越高:但是视频不同,视频是由多帧图像组成的,为了减少存储空间.便于传播,视频中的图像都是经过了一定的算法压缩,而压缩则必然导致失真. 在视频压缩算法中,有一个衡量压缩比率的参数,叫做:码率.它代表一秒钟的视频数据大小,例如:10Mb/s,代表1秒钟有10M bit的视频数据,对于YU

svm原理解释及推理

 1 初次理解SVM,咱们必须先弄清楚一个概念:线性分类器. 给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类.如果用x表示数据点,用y表示类别(y可以取1或者-1,分别代表两个不同的类),一个线性分类器的学习目标便是要在n维的数据空间中找到一个超平面(hyper plane),这个超平面的方程可以表示为( wT中的T代表转置): 可能有读者对类别取1或-1有疑问,事实上,这个1或-1的分类标准起源于logistic回归. Logistic回归目的是从特征学习

有向无环图的最小路径覆盖 二分图模型解题

有向无环图中,路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次). 最小路径覆盖就是找出最小的路径条数,使之成为原图的一个路径覆盖. 公式:最小路径覆盖=(原图)顶点数-对应的二分图的最大匹配数. 我们通过例题来解释如何把DAG转换为二分图模型. HDU1151Air Raid 题目大意:在一个城镇,有n个路口,和m条单向路,而且这些路不会形成环.现在要弄

最小化安装CentOS7 + xfce4 +PHP + nginx +mariadb 开发环境

虚拟机自定义最小化安装,新增用户做为管理员,打开自动获取网络,桥接模式.所有的操作只有命令,不做解释,看不明白的可以自行搜索相关的资料. # 开头的行是注释行,# 开头的空行,我自己装机时做了快照.未完待续 1 安装CentOS7 过程: 2 3 # 最小化安装完成快照 4 5 sudo yum install -y wget 6 7 # http://mirrors.163.com/.help/centos.html 8 9 sudo mv /etc/yum.repos.d/CentOS-Ba

SPSS(一)方差、相关和回归

引言 全局的概览+八个案例+窜一下 抽象的一般具有连续的性质,分类变量的小数位是没有意义的.抽象的变量,它的0往往是没有意义的,比如说幸福感.同样是连续性变量,有的0是有意义的,比如说订单量,如果0是有意义的,可以进行加减乘除运算,0没有意义,加减是可以的.标度可以分:间距(抽象的)和比率(0是有意义的,不抽象的变量).抽象叫潜,不抽象叫显,潜变量和显变量.潜变量是用来表示未来的,显变量是表示现在和过去.显变量不是预测,是用来描述,潜变量是用来预测的.显是用来归一,潜是用来 四种测量,名义.有序

想跳槽?先看什么是好工作

过完年了.非常多人想换工作,那究竟什么是好工作? 每年春节过后,旧的一年真的结束了,年终奖该拿的拿了,升职该升的升了,调薪该调的调了,而没有拿.升.调的,拿了.升了.调了还不惬意的.就開始春心萌动准备跳槽了. 所以这个时候,究竟什么是好工作这个问题就又冒出来了. 究竟什么是好工作?这是个问题,自从我在微信订阅号"程序视界"上開始公布程序猿职业相关的文章后,就一直在和不同的人讨论什么是好工作,什么样的工作更适合自己. 然而这个问题的答案从本质上讲,却能够一言以蔽之: 你喜欢的工作就是好工