学习相关性的基础知识以及在数据科学和机器学习中的应用
阅读本文后,读者将学到以下内容:
- 相关性的定义
- 正相关性
- 负相关性
- 不相关性
- 相关性的数学定义
- Python实现相关系数
- 协方差矩阵
- Python实现协方差矩阵
相关性
相关性衡量两个变量的共同移动程度。
正相关性
如果变量Y随着变量X的增加而增加,则X和Y呈正相关关系,如下所示:
负相关性
如果变量Y随着变量X的增加而减少,则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的值表示强负相关,接近零的值表示低相关或不相关。
Python实现相关系数
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_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
# 使用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×4矩阵。对角线元素都为1,因为它们表示特征与自身之间的相关性,根据定义等于1。
Python实现协方差矩阵
假设我想计算4个科技股票(AAPL、TSLA、GOOGL和AMZN)在1000天内的相关性程度。我们的数据集有m=4个特征和n=1000个观测值。协方差矩阵将是一个4 x 4矩阵,如下图所示。
科技股票之间的协方差矩阵。作者提供的图片。
上述图像的代码可以在这里找到:Essential Linear Algebra for Data Science and Machine Learning 。
摘要
总之,我们回顾了相关性的基础知识。相关性定义了两个变量之间的协同运动程度。相关系数的取值范围为-1到1。接近零的值意味着低相关性或不相关性。 Benjamin O. Tayo是一位物理学家、数据科学教育家和作家,也是DataScienceHub的所有者。以前,Benjamin在俄克拉荷马中央大学、大峡谷大学和匹兹堡州立大学教授工程和物理学。