本篇文章介绍了Python中NumPy库的相关函数 np.corrcoef()
函数。
NumPy 中的相关性
相关系数是一个数字值,表示数据集给定特征之间的关系。
相关性可以是正相关,这意味着它们具有直接关系,并且一个特征的增加会导致另一个特征的增加。 负相关也是可能的,这表明这两个特征彼此呈反比关系,这意味着一个特征的上升将导致另一个特征的下降。
以下是一些不同的相关性。
- 皮尔逊相关系数
- 肯德尔相关系数
- 斯皮尔曼相关系数
然而,NumPy 库函数 np.corrcoef()
仅关注并计算 Pearson 相关值。 其他相关性可以使用 SciPy 库提供的直接函数找到。
本篇文章仅关注 np.coefcorr()
函数及其实现。
使用 np.corrcoef() 函数在 Python 中实现关联
NumPy 库中的 np.corrcoef()
函数用于获取任意两个数组之间的皮尔逊相关系数矩阵,前提是两个数组的形状相同。 该函数通常返回一个二维数组,它描述了相关系数。
将 NumPy 库导入到 Python 代码中即可实现此功能,不会出现任何错误。
示例代码:
import numpy as np
a=np.arange(20,30)
b=np.array([8,12,29,33,60,48,21,44,78,96])
x=np.corrcoef(a,b)
print(x)
输出:
[[1. 0.82449488]
[0.82449488 1. ]]
输出矩阵的主对角线的所有值始终为一。 在我们的例子中,左上角元素的值为 1,因为它返回 x 与 x 的相关系数,右下元素返回 y 与 y 的相关系数。
给定输出矩阵中需要考虑的主要值是其他两个值。 对于我们的情况,该值约为 0.82。 此外,这两个元素始终具有相同的值。
使用 Matplotlib 库的 Correlation 来制作相关图
NumPy 库还可以与 Matplotlib 库一起使用,使用户能够将相关图作为输出。 以下代码使用 Matplotlib 库的相关函数 corrcoef()
来制作相关图。
示例代码:
import numpy as np
x=np.arange(20,30)
y=np.array([8,12,29,33,60,48,21,44,78,96])
print(np.corrcoef(x,y))
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
matplotlib.style.use('ggplot')
plt.scatter(x, y)
plt.show()
输出:
上图显示出正相关性,因为该图似乎具有总体向上的轨迹。 对于给定数组中元素数量较多的情况,这种类型的图表效果更好。