为了账号安全,请及时绑定邮箱和手机立即绑定

皮尔森相关系数(Pearson Correlation)

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

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

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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
205
获赞与收藏
1008

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消