理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了

浅谈协方差矩阵

今天看论文的时候又看到了协方差矩阵这个破东西,以前看模式分类的时候就特困扰,没想到现在还是搞不清楚,索性开始查协方差矩阵的资料,恶补之后决定马上记录下来,嘿嘿~本文我将用自认为循序渐进的方式谈谈协方差矩阵。

统计学的基本概念

学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合

,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。

均值:

标准差:

方差:

很 显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为 例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是 1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的 逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。

为什么需要协方差?

上 面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的 大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的 猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,嘿嘿~协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:

来度量各个维度偏离其均值的程度,标准差可以这么来定义:

协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越猥琐就越受女孩子欢迎,嘿嘿,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。

从协方差的定义上我们也可以看出一些显而易见的性质,如:

协方差多了就是协方差矩阵

上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算

个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:

这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有

三个维度,则协方差矩阵为

可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

Matlab协方差实战

上面涉及的内容都比较容易,协方差矩阵似乎也很简单,但实战起来就很容易让人迷茫了。必须要明确一点,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数(蓝色部分为Matlab代码)。

首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。

1MySample = fix(rand(10,3)*50)

根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

1dim1 = MySample(:,1);2dim2 = MySample(:,2);3dim3 = MySample(:,3);

计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

1sum( (dim1-mean(dim1)) .* (dim2-mean(dim2)) ) / ( size(MySample,1)-1 ) % 得到  74.53332sum( (dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -10.08893sum( (dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -106.4000

搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:

1std(dim1)^2 % 得到   108.32222std(dim2)^2 % 得到   260.62223std(dim3)^2 % 得到   94.1778

这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:

1cov(MySample)

把我们计算的数据对号入座,是不是一摸一样?

Update: 今天突然发现,原来协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘 上它的转置,然后除以(N-1)即可。其实这种方法也是由前面的公式通道而来,只不过理解起来不是很直观,但在抽象的公式推导时还是很常用的!同样给出 Matlab代码实现:

1X = MySample - repmat(mean(MySample),10,1);    % 中心化样本矩阵,使各维度均值为02C = (X'*X)./(size(X,1)-1);

lda 协方差矩阵_协方差矩阵概念及计算相关推荐

  1. java 协方差矩阵_协方差矩阵概念(易理解)

    一.统计学的基本概念 统计学里最基本的概念就是样本的均值.方差.标准差.首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述: 均值: 标准差: 方差: 均值描述的是样本集合的中间点,它告 ...

  2. java编写计算协方差矩阵_协方差矩阵的实例与意义

    在机器学习中经常需要计算协方差矩阵,本科时没学过这个概念,一直对此非常头疼.现在试图通过实例的计算.图形化的表示来梳理一下什么是协方差矩阵. ###A numerical example 问题: 有一 ...

  3. python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现

    原标题:协方差矩阵.相关系数矩阵的EXCEL和python实现 CPDA广州19期学员 现任职务:数据分析师 史金乐 优秀学员原创文章 要计算相关系数矩阵,那就不得不提协方差矩阵.在<概率论与数 ...

  4. python协方差矩阵_协方差矩阵的理解

    1. 写在前面 2. 均值,方差 统计里最基本的概念就是样本的均值,方差,或者再加个标准差.假定有一个含有n个样本的集合X={X1,-,Xn},依次给出这些概念的公式描述: 很显然,均值描述的是样本集 ...

  5. python协方差矩阵_协方差矩阵的python实现

    学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差.首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过. 很显 ...

  6. python求协方差矩阵_协方差矩阵python实现

    当你有一个数据集,每一条数据都M种属性,然后你想知道M种属性对数据集的影响的时候.你需要用到协方差矩阵. 求协方差矩阵之前请一定要知道协方差矩阵是干嘛的,是表示属性之间关系的矩阵,协方差矩阵的规模只与 ...

  7. 协方差、协方差矩阵的数学概念及算法计算

    在讲解协方差之前,我们先一起回忆一下样本的均值.方差.标准差的定义. 方差,协方差和协方差矩阵 1.概念 方差(Variance)是度量一组数据的分散程度.方差是各个样本与样本均值的差的平方和的均值: ...

  8. 协方差矩阵数学原理,numpy计算协方差矩阵(np.cov)函数详解与源码剖析

    协方差矩阵详解以及numpy计算协方差矩阵(np.cov) 协方差矩阵详解 均值,标准差与方差 由简单的统计学基础知识,我们有如下公式: X ˉ = ∑ i = 1 n X i n \bar X{\r ...

  9. 协方差的计算公式例子_协方差矩阵是什么_协方差矩阵计算公式_如何计算协方差矩阵...

    协方差矩阵是什么 在统计学与概率论中,协方差矩阵的每个元素是各个向量元素之间的协方差,是从标量随机变量到高维度随机向量的自然推广. 矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据 ...

最新文章

  1. 开发者进阶宝典,HarmonyOS 职业认证全奉上
  2. LeetCode - Valid Sudoku
  3. python自学流程-各个阶段的python学习路线?
  4. QT+VS中使用qDebbug()打印调试信息无法显示
  5. Zabbix 3.0 配置企业微信报警(注册---测试)
  6. 苹果正在研发iPhone检测抑郁症功能
  7. Golang服务端开发及微服务架构
  8. 基于Hadoop集群的Spark集群搭建
  9. Ehcache 整合Spring 使用页面、对象缓存(转)
  10. linux打包根目录
  11. 移动端html5广告的优势,移动端H5广告的互动类型探析
  12. 阅读笔记20141202
  13. js 数组按奇偶拆分_js数组拆分问题
  14. 《电商后台系统产品逻辑解析》学习笔记
  15. TI单芯片毫米波雷达xWR1642开箱例程
  16. 【面试】896- 助力春招!2021 阿里字节快手新鲜面经
  17. Android友盟第三方登录
  18. vue2 视频下载本地,图片压缩包下载
  19. 百度飞桨第一天学习笔记
  20. 《嵌入式 – GD32开发实战指南》第20章 GD32的存储结构

热门文章

  1. vim复制粘贴(从系统粘贴到vim中,以及从vim中粘贴到系统中)
  2. 数据共享与整合技术-总结01
  3. 关于xmpp丢包的问题探讨聊天记录
  4. 今天给大家聊一聊Apple ID的那些事
  5. 百度智能云服务器 笔记
  6. php 高深题,高深的脑筋急转弯题目
  7. HTML和JSP的交互
  8. kafuka学习之路(一)kafuka安装和简单使用
  9. 轻量级聊天应用VoceChat
  10. Echarts V5.0版本学习