编辑提供的图片
阅读完本文后,读者将学到以下内容:
-
相关性的定义
-
正相关
-
负相关
-
无相关性
-
相关性的数学定义
-
相关系数的 Python 实现
-
协方差矩阵
-
协方差矩阵的 Python 实现
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 在 IT 方面支持你的组织
相关性衡量两个变量的共同变化程度。
如果变量Y在变量X增加时也增加,那么X和Y是正相关的,如下所示:
X 和 Y 之间的正相关。 图片由作者提供。
如果变量Y在变量X增加时减少,那么X和Y是负相关的,如下所示:
X 和 Y 之间的负相关。 图片由作者提供。
当X和Y之间没有明显关系时,我们说X和Y是无相关的,如下所示:
X 和 Y 是无相关的。 图片由作者提供。
设X和Y为两个特征
X = (X1 , X2 , . . ., Xn )
Y = (Y1 , Y2 , . . ., Yn )
X和Y之间的相关系数定义为
其中 mu 和 sigma 分别表示均值和标准差,Xstd 是变量 X 的标准化特征。相关系数是X和Y的标准化特征之间的向量点积(标量积)。相关系数的取值范围在-1 到 1 之间。接近 1 的值表示强正相关,接近-1 的值表示强负相关,接近零的值表示低相关性或无相关性。
import numpy as np
import matplotlib.pyplot as plt
n = 100
X = np.random.uniform(1,10,n)
Y = np.random.uniform(1,10,n)
plt.scatter(X,Y)
plt.show()
X 和 Y 之间没有相关性。图片由作者提供。
X_std = (X - np.mean(X))/np.std(X)
Y_std = (Y - np.mean(Y))/np.std(Y)
np.dot(X_std, Y_std)/n
0.2756215872210571
# Using numpy
np.corrcoef(X, Y)
array([[1\. , 0.27562159],
[0.27562159, 1\. ]])
协方差矩阵 是数据科学和机器学习中非常有用的矩阵。它提供了数据集中特征之间的共同变动(相关性)信息。协方差矩阵定义如下:
其中 mu 和 sigma 代表给定特征的均值和标准差。这里的 n 是数据集中观察的数量,j 和 k 的下标取值为 1, 2, 3, . . ., m,其中 m 是数据集中的特征数量。例如,如果一个数据集有 4 个特征和 100 个观察值,则 n = 100,m = 4,因此协方差矩阵将是一个 4 x 4 的矩阵。对角线元素将全为 1,因为它们表示特征与自身之间的相关性,根据定义,相关性等于 1。
假设我想计算 4 只科技股票(AAPL、TSLA、GOOGL 和 AMZN)在 1000 天内的相关程度。我们的数据集有 m = 4 个特征和 n = 1000 个观察值。协方差矩阵将是一个 4 x 4 的矩阵,如下图所示。
技术股票之间的协方差矩阵。图片由作者提供。
生成上述图形的代码可以在这里找到:数据科学和机器学习的基本线性代数。
总之,我们回顾了相关性的基础知识。相关性定义了 2 个变量之间的共同变动程度。相关系数的取值范围在 -1 和 1 之间。接近零的值表示低相关性或无相关性。
本杰明·O·塔约 是物理学家、数据科学教育者和作家,同时也是 DataScienceHub 的拥有者。之前,本杰明曾在中央俄克拉荷马大学、大峡谷大学和匹兹堡州立大学教授工程学和物理学。