大家好,又见面了,我是你们的朋友全栈君。
突然发现给一组数据去实际计算对应得协方差矩阵,让人有点懵,并未找到太清楚的讲解,这里举一个实例记录一下。
1、别把样本数和维度数搞混了
具体进行计算容易懵的原因就是很容易把样本数和维度数搞混,维度数n,那么得到的协方差矩阵就是n*n的,和样本数没啥关系。
这里还是要明确一下,维度数即是每条样本中的变量数,协方差即是对不同变量的同向程度进行的衡量,下面举个例子来具体说明一下。
2、实例说明一下
样本:一共4条,2维的
这里再强调一下,每条样本都是2维的,即每条样本都包含对两个变量(X和Y)的一个观察(observation)。
所以
X=[1,2,4,1]
Y=[2,3,2,5]
对应的协方差矩阵为:
我自己感觉这比第几列减均值啥的要好理解。
实际计算一下:
a、首先把每条样本转置一下,组成样本矩阵:
b、求X、Y的均值
c、求协方差
所以协方差矩阵为:
4、python中验证
numpy中提供了计算协方差矩阵的接口:np.cov©直接调用即可
test_mat = np.array([[1, 2, 4, 1], [2, 3, 2, 5]])
print(np.cov(test_mat))
输出的结果:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153943.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...