皮尔森相关系数是一种最简单的反应特征和响应之间关系的方法。
这个方法衡量的是变量之间的线性相关性。
结果的取值区间为[-1,1]。-1表示完全的负相关,+1表示完全的正相关,0表示没有线性相关。
皮尔森相关系数有一个明显的缺陷就是,它只对线性关系敏感。如果关系是非线性的,哪怕两个变量之间是一一对应的关系,皮尔森相关系数也可能接近0.
from pandas import read_csv
import numpy as np
from scipy.stats import pearsonr
def PearsonrCorrelation():
tps = read_csv('E:\workfile\data\trade\tps.csv', header=0)
label = np.array(tps)[:, 0]
feature = np.array(tps)[:, 1:]
for i in range(0, len(feature[0])): print("第'%i'属性的皮尔森相关系数为" % (i+1), pearsonr(label, feature[:, i]))
image.png
这是我的代码和数据的运行结果。
还是依照惯例,跟进去看一下源码和说明文字。
image.png
上面的说明信息,皮尔森相关系数描述的是线性关系。严格来说,需要数据集是正态分布的,但不必是零均值的。
从代码里可以看出来,只能计算两组数据之间的皮尔森相关系数,不能批量计算。
image.png
image.png
返回值的第一项是皮尔森相关系数,第二项是p_value值。一般来说皮尔森相关系数越大,p_value越小,线性相关性就越大。但是看到note里讲的。p_value不是完全的可靠,当数据量大于500的时候,可能是合理的。
作者:曦宝
链接:https://www.jianshu.com/p/b43c8731a309
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦