当前位置:首页 > 教育培训 >

python协方差计算步骤(python怎么打印协方差矩阵)

来源:原点资讯(www.yd166.com)时间:2023-04-26 12:18:33作者:YD166手机阅读>>

理解两个变量之间的关系是数据科学任务中常见的问题。我们主要用相关性来理解两个变量之间的关系。但我们也经常听说散布矩阵(也是散点图)和协方差。让我们来看看它们是什么,它们是如何计算的,以及它们各自的意义。我们还将实现它们中的每一个,并在另一个之上进行构建。

python协方差计算步骤,python怎么打印协方差矩阵(1)

用seaborn产生的散布矩阵

所有答案的问题是数据中的变量之间的关系是什么?

散布矩阵(Scatter Matrix ):

散布矩阵是协方差矩阵的估计,当协方差无法计算或计算成本很高时。散布矩阵也用于许多降维练习。如果有k个变量,散布矩阵将有k行k列即kxk矩阵。

python协方差计算步骤,python怎么打印协方差矩阵(2)

如何计算散布矩阵

在Python中散布矩阵的代码:

#Create a 3 X 20 matrix with random values.

mu_vec1 = np.array([0,0,0])

cov_mat1 = np.array([[1,0,0],[0,1,0],[0,0,1]])

samples = np.random.multivariate_normal(mu_vec1, cov_mat1,20).T

#Compute the mean vector

mean_x = np.mean(samples[0,:])

mean_y = np.mean(samples[1,:])

mean_z = np.mean(samples[2,:])

mean_vector = np.array([[mean_x],[mean_y],[mean_z]])

#Computation of scatter plot

scatter_matrix = np.zeros((3,3))

for i in range(all_samples.shape[1]):

scatter_matrix = (all_samples[:,i].reshape(3,1) - mean_vector).dot((all_samples[:,i].reshape(3,1) - mean_vector).T)

print('Scatter Matrix:\n', scatter_matrix)

散布矩阵包含变量的每个组合,它们之间的关系。让我们观察以下矩阵的散布矩阵,Python代码如下:

arange = np.arange(0, 40)

samples = np.array([arange * 3 , arange * -1])

scatter_matrix = np.zeros((2,2))

for i in range(samples.shape[1]):

scatter_matrix = (samples[:,i].reshape(2,1) - mean_vector).dot((samples[:,i].reshape(2,1) - mean_vector).T)

print('Scatter Matrix:', scatter_matrix)

Output :

'Scatter Matrix:', array([[ 47970., -15990.],

[-15990., 5330.]])

如果我们通过将-1更改为1来调整矩阵生成:

arange = np.arange(0, 40)

samples = np.array([arange * 3 , arange * 1])

输出也会改变符号:

Output :

('Scatter Matrix:', array([[ 47970., -15990.],

[-15990., 5330.]]))

我们可以观察到,两个变量对的散布矩阵的符号表示一个变量随另一个变量的增加/减少而增加。

协方差矩阵:

协方差被定义为两个随机变量联合变化的度量。在计算散布矩阵的前提下,协方差矩阵的计算是直接进行的。我们只需要按n-1缩放散布矩阵的值来计算协方差矩阵。

这个我们可以验证一下,看看Python代码:

print('Covariance Matrix:'np.cov(samples))

print('Scatter Matrix:', scatter_matrix)

print('Unscaled covariance matrix which is same as Scatter Matrix:'np.cov(samples) * 39)

Output :

'Covariance Matrix:', array([[1230. , 410. ],

[ 410. , 136.66666667]])

'Scatter Matrix:', array([[47970., 15990.],

[15990., 5330.]])

'Unscaled covariance matrix which is same as Scatter Matrix:', array([[47970., 15990.],

[15990., 5330.]])

无论是散布矩阵还是协方差矩阵,都很难解释这些值的大小,因为这些值受变量大小的影响。要真正理解变量之间关系的强度,我们必须看一下相关性。

相关矩阵:

相关矩阵为我们提供了有关两个变量如何相互作用的信息,包括方向和幅度。常用的协方差基于Pearson相关系数 。我们计算相关矩阵的方法是将两个变量的协方差值除以两个变量的标准差的乘积。

Python实现如下:

print('Covariance Matrix:',np.cov(samples))

std_dev_of_x1 = np.std(arange * 3)

std_dev_of_x2 = np.std(arange * -1)

std_dev_products = np.array(

[[std_dev_of_x1 * std_dev_of_x1, std_dev_of_x1 * std_dev_of_x2],

[std_dev_of_x1 * std_dev_of_x2, std_dev_of_x2 * std_dev_of_x2]]

)

print('Covariance Matrix:', np.corrcoef(samples))

print('Std deviation products :', std_dev_products)

print('Covariance Matrix computed from covariance :', np.divide(np.cov(samples), std_dev_products))

('Covariance Matrix:', array([[1., 1.],

[1., 1.]]))

('Std deviation products :', array([[1199.25, 399.75],

[ 399.75, 133.25]]))

('Covariance Matrix computed from covariance :', array([[1.02564103, 1.02564103],

[1.02564103, 1.02564103]]))

来自numpy的相关矩阵非常接近我们从协方差矩阵计算得到的。

栏目热文

python求一组数的方差(怎么用python计算方差)

python求一组数的方差(怎么用python计算方差)

作者 | CDA数据分析师进行到这一步就可以算是开始正式的烹饪了,在这部分之前的数据操作部分我们列举了一些不同维度的分析...

2023-04-26 11:58:22查看全文 >>

python求方差的代码(python官网计算方差)

python求方差的代码(python官网计算方差)

作者:Jason Brownlee翻译:吴振东校对:车前子本文约3800字,建议阅读8分钟。本文为你讲解模型偏差、方差和...

2023-04-26 11:44:10查看全文 >>

python方差的计算公式

python方差的计算公式

Numpy提供各种统计函数,用于数据统计分析,用于从数组中给定的元素中查找最小,最大,百分位数、加权平均值和方差等。从数...

2023-04-26 12:23:45查看全文 >>

和平精英滑雪板怎么卡箱子(和平精英怎么卡滑雪板)

和平精英滑雪板怎么卡箱子(和平精英怎么卡滑雪板)

和平精英温泉宝箱遁地BUG怎么卡?温泉宝箱是一个非常适合阴人的资源点,玩家如何才能完成遁地呢?遁地有哪些小技巧呢?下面就...

2023-04-26 12:05:53查看全文 >>

普高的利弊(为什么花钱都要上普高)

普高的利弊(为什么花钱都要上普高)

普高和职高有什么不同,成绩一般的孩子,究竟该选普高还是职高?中考过后强制分流,很多人都在讲中考有多么严格,选拔有多么残酷...

2023-04-26 11:51:19查看全文 >>

利用列表求方差python(python编写函数求列表的方差)

利用列表求方差python(python编写函数求列表的方差)

第四节 测量离散度3.4.1 计算一组数字的极差再次考虑之前的一组捐款清单,100, 60,70, 900, 100, ...

2023-04-26 12:05:59查看全文 >>

python求均方差(python求均值方差标准差)

python求均方差(python求均值方差标准差)

标题 | python-is-cool作者 | chiphuyen原文 | https://github.com/chi...

2023-04-26 11:53:56查看全文 >>

python求方差初级代码(python按步骤计算方差)

python求方差初级代码(python按步骤计算方差)

方差:方差是衡量一组数据离散程度的统计量。统计学中的方差(样本方差)是每个样本值与全体样本值的均值之差的平方的均值。概率...

2023-04-26 12:23:31查看全文 >>

python怎么求协方差(python官网计算方差)

python怎么求协方差(python官网计算方差)

▌概述 本文主要介绍一种降维方法,PCA(Principal Component Analysis,主成分分析)。降维致...

2023-04-26 11:55:57查看全文 >>

怎样用python求标准差(python求标准差用计算公式)

怎样用python求标准差(python求标准差用计算公式)

最近在做股票分析的时候,需要用到 布林带 。以 宁德时代 为例,图片上的圈圈的部分就是布林带。为了方便查看,我用圈圈代替...

2023-04-26 11:45:43查看全文 >>

文档排行