继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

皮尔森相关系数(Pearson Correlation)

青春有我
关注TA
已关注
手记 1239
粉丝 205
获赞 1008

皮尔森相关系数是一种最简单的反应特征和响应之间关系的方法。

这个方法衡量的是变量之间的线性相关性。

结果的取值区间为[-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]))

webp

image.png

这是我的代码和数据的运行结果。
还是依照惯例,跟进去看一下源码和说明文字。


webp

image.png


上面的说明信息,皮尔森相关系数描述的是线性关系。严格来说,需要数据集是正态分布的,但不必是零均值的。
从代码里可以看出来,只能计算两组数据之间的皮尔森相关系数,不能批量计算。


webp

image.png


webp

image.png

返回值的第一项是皮尔森相关系数,第二项是p_value值。一般来说皮尔森相关系数越大,p_value越小,线性相关性就越大。但是看到note里讲的。p_value不是完全的可靠,当数据量大于500的时候,可能是合理的。



作者:曦宝
链接:https://www.jianshu.com/p/b43c8731a309


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP