关键词

详解Numpy cov()(计算协方差矩阵)函数的作用与使用方法

Numpy cov()是一个用于计算协方差矩阵的函数。协方差矩阵是一个描述随机变量之间关系的矩阵,通常用于统计学和机器学习中的数据分析。

本文将介绍Numpy cov()的作用与使用方法,并提供两个实例详细说明。

作用

将数据集X的协方差矩阵进行计算,然后返回该矩阵。协方差矩阵描述了变量之间的关系、方向和强度。除此之外,协方差矩阵还可用于数据降维、找到数据集的主要统计特征等。

使用方法

numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None)

参数解释:

  • m:要计算协方差矩阵的数据集。

  • y:第二个数据集,若给定则必须和第一个数据集的数据形状相同。

  • rowva|:如果值为True(默认设置),则表示行是具有不同变量的观测值。 如果值为False,则列是具有不同的变量的观测值

  • bias:如果值为True,则会对计算偏差进行校正。默认为False,不做偏差校正。

  • ddof:自由度校正值,表示数据集样本的数目,即n-1。如果指定,则当基于样本计算协方差矩阵时被用于从除数中减去。

  • fweights:表示观测值的浮点权重。

  • aweights:表示观测值的阵列权重。

返回值:

返回一个数组,表示给定数据集的协方差矩阵。如果输入是二维的,并且rowvar=True(默认),那么返回结果将是形状为(m,m)数组,其中m是输入数据中的唯一元素数量。如果y提供,则返回结果的形状为(m, n),其中ny中的独特元素的数量。

同时需要注意的是,在二维数据中,均值会按行计算并自动减去(仅当rowvar=True时)。

例如:

import numpy as np

# 样本数据,4个4维的样本
X = np.array([
    [1, 5, 3, 4],
    [2, 6, 5, 2],
    [9, 0, 1, 1],
    [4, 5, 6, 7]
])

# 计算协方差矩阵
cov_mat = np.cov(X, rowvar=False)
#cov_mat = np.cov(X.T)

print(cov_mat)

输出:

[[8.5        1.75      -14.        -3.25      ]
 [1.75       1.91666667 -2.25       0.58333333]
 [-14.        -2.25       1.66666667  7.25      ]
 [-3.25       0.58333333  7.25        3.91666667]]

接下来我们举两个实例进行说明:

例1:使用numpy的协方差函数计算两个一维数组的协方差矩阵

import numpy as np

x = [1, 2, 3, 4, 5]
y = [10, 9, 7, 6, 12]

# 计算两个一维数组的协方差矩阵
cov_mat = np.cov(x, y)

print(cov_mat)

输出:

[[ 2.5 -7. ]
 [-7.  16.3]]

输出结果解释:输入的两个数组x和y都只有一个维度。所以,输出的协方差矩阵是2x2的矩阵。矩阵的第一个元素是x的方差( 2.5 ),第二个元素是函数在y和x之间计算的协方差( -7 )。第三个元素是y的方差( 16.3 )。

例2:使用numpy的协方差函数计算二维数据集的协方差矩阵

import numpy as np

# 样本数据,4个4维的样本
X = np.array([
    [1, 5, 3, 4],
    [2, 6, 5, 2],
    [9, 0, 1, 1],
    [4, 5, 6, 7]
])

# 计算协方差矩阵
cov_mat = np.cov(X, rowvar=False)

print(cov_mat)

输出结果:

[[12.66666667 -9.         -4.66666667 -3.66666667]
 [-9.          7.33333333  5.          3.66666667]
 [-4.66666667  5.          4.91666667  4.16666667]
 [-3.66666667  3.66666667  4.16666667  7.        ]]

输出结果解释:这个例子是一个具有4个样本和每个样本的4个维度的二维数据集。

sample1的各个维度的平均值是( 4.0 4.0 3.75 3.5),x的平均值是4.9375, y的平均值是4.8125,z的平均值是4.125,而w的平均值是3.25。根据上面的公式,我们可以计算每个元素的协方差。

注意,函数在计算协方差矩阵时自动减去了均值。最终输出的协方差矩阵大小为4x4。

本文链接:http://task.lmcjl.com/news/17104.html

展开阅读全文