转自:https://www.cnblogs.com/terencezhou/p/6235974.html
https://www.cnblogs.com/nsnow/p/4758202.html
这个讲到了协方差矩阵的几何解释,,我现在是看不懂的。。。
2020-9-14更新——————
https://blog.csdn.net/theonegis/article/details/85059105
import numpy as np # 随机生成两个样本 x = np.random.randint(0, 9, 1000) y = np.random.randint(0, 9, 1000) # 计算平均值 mx = x.mean() my = y.mean() # 计算标准差 stdx = x.std() stdy = y.std() # 计算协方差矩阵 covxy = np.cov(x, y) print(covxy) # 我们可以手动进行验证 # covx等于covxy[0, 0], covy等于covxy[1, 1] # 我们这里的计算结果应该是约等于,因为我们在计算的时候是使用的总体方差(总体方差和样本方差是稍微有点区别的) covx = np.mean((x - x.mean()) ** 2) covy = np.mean((y - y.mean()) ** 2) print(covx) print(covy) # 这里计算的covxy等于上面的covxy[0, 1]和covxy[1, 0],三者相等 covxy = np.mean((x - x.mean()) * (y - y.mean())) print(covxy) # 下面计算的是相关系数矩阵(和上面的协方差矩阵是类似的) coefxy = np.corrcoef(x, y) print(coefxy)
上面这个例子很生动,能够明白是怎么计算协方差的了。
[[6.83907508 0.10925926] [0.10925926 6.53390891]] 6.832236 6.527375 0.10914999999999989 [[1. 0.01634455] [0.01634455 1. ]]