zoukankan      html  css  js  c++  java
  • 求解协方差矩阵

    如何求协方差矩阵

    一. 协方差定义

    X、Y 是两个随机变量,X、Y 的协方差 cov(X, Y) 定义为:

    其中:

     、

    . 协方差矩阵定义

    矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据是按行排列。即每一行是一个observation(or sample),那么每一列就是一个随机变量。协方差对角线处的元素表示的是方差,这个关系我们记住就行了。比如目前我们从之前的两个变量过渡成了三个变量,则我们的协方差矩阵可以写为:

    从上面我们可以清楚的看到对角线上的数值是cov(x,x)=var(x),cov(y,y)=var(y),cov(y,y)=var(z),因此对角线处是我们的方差,有一个函数trace()专门则用于表示提取我们矩阵当中的对角线处的元素。下面我们把用cov函数表示的形式变化为更加普世的形式也就是用aij来表示我们的每一个协方差的数值。

    协方差矩阵:

    协方差矩阵的维度等于随机变量的个数,即每一个 observation 的维度。在某些场合前边也会出现 1 / m,而不是 1 / (m - 1).求解得到的样本协方差是1 / (m - 1),总体协方差是1/m。

    . 求解协方差矩阵的步骤

    举个例子,矩阵 X 按行排列:

     
     

    1. 求每个维度的平均值

     
     

    2. 将 X 的每一列减去平均值

     
     
    其中:
     

    3. 计算协方差矩阵

     
     
     也就是将所有的方差都相乘乘起来,然后再求出方差的平均数,就得到协方差,相当于二维情况下的标准差的平方。协方差在高维度的高斯分布当中非常重要。
     
    注意:
    有时候在书上或者网上会看到这样的公式,协方差矩阵 Σ:
     
    这里之所以会是 X * X’ 是因为原始数据集 X 是按列排列的,即:
     
     
     
    备注:为什么协方差矩阵的最大特征向量能使得误差较小?
    回答:因为协方差矩阵表示向量两两之间的相似度,可以理解为向量之间的关系信息。协方差矩阵保存的信息越多,误差越小。怎么保存更多信息呢?需要说明的是特征值代表特征向量的权重,所以挑最大的几个特征向量就能保存更多的信息
  • 相关阅读:
    jmeter 工具学习 未完待续
    测试学习
    JavaScript
    新概念第1册
    day08
    LeetCode OJ:Invert Binary Tree(反转二叉树)
    LeetCode OJ:Lowest Common Ancestor of a Binary Search Tree(最浅的公共祖先)
    LeetCode OJ:Maximum Depth of Binary Tree(二叉树最大深度)
    LeetCode OJ:Path Sum(路径之和)
    LeetCode OJ:Symmetric Tree(对称的树)
  • 原文地址:https://www.cnblogs.com/geeksongs/p/11190295.html
Copyright © 2011-2022 走看看