numpy.cov()计算协方差矩阵

协方差矩阵定义

矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据是按行排列的,即每一行是一个sample,那么每一列就是一个随机变量,
X_{m \times n} = \left[ \begin{matrix} x_{_{11} } & x_{_{12} } & \dots & x_{_{1n} } \\ x_{_{21} } & x_{_{22} } & \dots & x_{_{2n} } \\ \vdots & \vdots & \ddots & \vdots \\ x_{_{m1} } & x_{_{m2} } & \dots & x_{_{mn} } \\ \end{matrix} \right] = \left[ \begin{matrix} c_{_{1} } & c_{_{2} } & \dots & c_{_{n} }\end{matrix} \right]
协方差矩阵:
covMatrix = \frac{1}{m-1} \left[ \begin{matrix} cov(c_{_{1} }, c_{_{1} }) & cov(c_{_{1} }, c_{_{2} }) & \dots & cov(c_{_{1} }, c_{_{n} }) \\ cov(c_{_{2} }, c_{_{1} }) & cov(c_{_{2} }, c_{_{2} }) & \dots & cov(c_{_{2} }, c_{_{n} }) \\ \vdots & \vdots & \ddots & \vdots \\ cov(c_{_{n} }, c_{_{1} }) & cov(c_{_{n} }, c_{_{2} }) & \dots & cov(c_{_{n} }, c_{_{n} }) \end{matrix} \right]
numpy.cov()计算协方差矩阵为按列计算,举个例子,

则每个维度的平均值为

将的每一列减去平均值

其中:

计算协方差矩阵

>>> x = np.array([[0, 2], [1, 1], [2, 0]]).T
>>> x
array([[0, 1, 2],
       [2, 1, 0]])
>>> np.cov(x)
array([[ 1., -1.],
       [-1.,  1.]])

参考

  1. 协方差矩阵的计算及意义

你可能感兴趣的:(numpy.cov()计算协方差矩阵)