协方差,协方差矩阵,相关系数

对于一个随机变量的分布特征,可以用均值,方差,标准差来描述。对于两个随机变量,可以用协方差,和相关系数来描述两个随机变量的相互关系。

注意在机器学习中一个向量为m*n,m表示样本个数,n表示特征个数,这里的随机变量表示的是每一列,而不是每一行。

协方差

 协方差表示了两个随机变量线性相关的程度。

样本协方差

协方差,协方差矩阵,相关系数_第1张图片

 为什么要除以n-1,因为这样可以样本协方差才是总体协方差的无偏估计。

协方差,协方差矩阵,相关系数_第2张图片

相关系数

协方差,协方差矩阵,相关系数_第3张图片

协方差,协方差矩阵,相关系数_第4张图片

import numpy as np
x1 = [-2.1, -1,  4.3]
x2 = [3,  1.1,  0.12]

X = np.stack((x1, x2), axis=0)# 每一行作为一个变量
print('相关系数',np.corrcoef(X))
print('相关系数',np.corrcoef(x1,x2))

协方差,协方差矩阵,相关系数_第5张图片 

协方差矩阵

协方差,协方差矩阵,相关系数_第6张图片

协方差,协方差矩阵,相关系数_第7张图片

import numpy as np
x1 = [-2.1, -1,  4.3]  #天气这个随机变量,独立采样3次,得到三个样本值
x2 = [3,  1.1,  0.12]  #打球

X = np.stack((x1, x2), axis=0)  # 每一行作为一个变量
print('X的协方差矩阵',np.cov(X))
print('协方差矩阵',np.cov(x1, x2))
print('x1的方差',np.cov(x1))

#公式计算
def de_mean(x):
    xmean = np.mean(x)
    return [xi - xmean for xi in x]

def covariance(x, y):
    n = len(x)   #这里的n可以理解为独立采样的次数
    return np.dot(de_mean(x), de_mean(y)) / (n-1)

print('x1和x2的协方差',covariance(x1,x2))

 协方差,协方差矩阵,相关系数_第8张图片

参考文献:

协方差矩阵计算实例_lgcnongchaoer的博客-CSDN博客_协方差矩阵计算例题

协方差、样本协方差、协方差矩阵、相关系数详解(python代码)_虾米小馄饨的博客-CSDN博客_样本协方差

 为什么样本方差(sample variance)的分母是 n-1? - 知乎 (zhihu.com) 

你可能感兴趣的:(矩阵,人工智能,线性代数)