首页 > 编程知识 正文

python的相关性,python计算相关性的函数

时间:2023-12-28 11:56:42 阅读:327649 作者:NNOG

本文目录一览:

如何用python进行相关性分析

用python进行相关性分析应该主要根据数据的内容进行分析,如果是带标注的数据可以通过模型训练的方式来获取进行分析,找出对目标结果有最大影响的因素。如果没有标注的话,可以用python构建网络知识图谱手动分析,或者自己构建数据表格,人为观察数据分布图找到其中规律。一般来说相关性分析,主要依靠人为的观察,并用数据和模型来辅助计算,从而获得相对准确的结果。

python计算多个数组的相关性

线性相关:主要采用皮尔逊相关系数来度量连续变量之间的线性相关强度;

线性相关系数|r| 相关程度

0=|r|0.3 低度相关

0.3=|r|0.8 中度相关

0.8=|r|1 高度相关

1 函数

相关分析函数:

DataFrame.corr()

Series.corr(other)

说明:

如果由数据框调用corr方法,那么将会计算每个列两两之间的相似度

如果由序列调用corr方法,那么只是计算该序列与传入序列之间的相关度

返回值:

dataFrame调用:返回DataFrame

Series调用: 返回一个数值型,大小为相关度

2 案例

import pandas

data=pandas.read_csv('C:\Users\Desktop\test.csv')

print(data.corr())

#由数据框调用corr方法,将会计算每个列两两之间的相似度,返回的是一个矩形

print(data['人口'].corr(data['文盲率']))

#由某一列调用corr方法,只是计算该序列与传入序列(本例中的'文盲率')之间的相关度

print(data['超市购物率','网上购物率','文盲率','人口']).corr()

如何利用python进行数据的相关性分析

1. 运算优先级

括号、指数、乘、除、加、减

2

如果你使用了非 ASCII 字符而且碰到了编码错误,记得在最顶端加一行 # -- coding: utf-8 --

3. Python格式化字符

使用更多的格式化字符。例如 %r 就是是非常有用的一个,它的含义是“不管什么都打印出来”。

%s -- string

%% 百分号标记 #就是输出一个%

%c 字符及其ASCII码

%s 字符串

%d 有符号整数(十进制)

%u 无符号整数(十进制)

%o 无符号整数(八进制)

%x 无符号整数(十六进制)

%X 无符号整数(十六进制大写字符)

%e 浮点数字(科学计数法)

%E 浮点数字(科学计数法,用E代替e)

%f 浮点数字(用小数点符号)

%g 浮点数字(根据值的大小采用%e或%f)

%G 浮点数字(类似于%g)

%p 指针(用十六进制打印值的内存地址)

%n 存储输出字符的数量放进参数列表的下一个变量中

%c 转换成字符(ASCII 码值,或者长度为一的字符串)

%r 优先用repr()函数进行字符串转换(Python2.0新增)

%s 优先用str()函数进行字符串转换

%d / %i 转成有符号十进制数

%u 转成无符号十进制数

%o 转成无符号八进制数

%x / %X (Unsigned)转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)

%e / %E 转成科学计数法(e / E控制输出e / E)

%f / %F 转成浮点数(小数部分自然截断)

%g / %G : %e和%f / %E和%F 的简写

%% 输出%

辅助符号 说明

* 定义宽度或者小数点精度

- 用做左对齐

+ 在正数前面显示加号(+)

sp 在正数前面显示空格

# 在八进制数前面显示零(0),在十六进制前面显示“0x”或者“0X”(取决于用的是“x”还是“X”)

0 显示的数字前面填充“0”而不是默认的空格

m.n m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

学Python有前途么?

毋庸置疑,Python前景很广阔。首先,对应岗位多。Python被称为编程语言中的万能胶水,这是一门应用面很广的语言,被广泛的用在Web开发、运维自动化、测试自动化、数据挖掘等多个行业和领域。

无论是国内的百度、字节跳动、阿里巴巴、腾讯、华为还是国外的谷歌、NASA、YouTube、Facebook、工业光魔、红帽等都在用Python完成各种各样的任务。其次,市场需求大。从最新Python招聘岗位需求来看,Python工程师的岗位需求量巨大,并且岗位需求量还在呈现上涨的趋势。全国Python岗位需求量接近10W个。最后,薪资水平。目前初级Python工程师薪资待遇就达10-15K,而随着开发年限的增加,Python开发者薪资呈直线上升的变化趋势,工作8年的Python薪资攀升至25K左右。此外,国家也在加大培养Python人才。国务院发布《新一代人工智能发展规划》,人工智能正式纳入国家发展战略,并且已经有数个省份将Python纳入到高考体系,国家计算机二级考试新增 “ Python 语言程序设计”科目。总的来说,Python是很有前途的,符合时代发展的大方向,感兴趣的小伙伴,可以放心大胆的去尝试。关于Python培训的更多相关知识,建议到千锋教育进行更详细的了解,目前,千锋教育已在北京、深圳、上海、广州、郑州、大连等20余个核心城市建立直营校区,等待你的随听。

为什么要学 Python

① 简单易学

Python语言相对于其他编程语言来说,属于比较容易学习的一门编程语言。开发语言在大数据里面是必不可少的,而简单易学,上手快的Python语言,将作为大数据的首选语言。

② 语法优美

Python语言力求代码简洁、优美,在Python语言中,采用缩进来标识代码块,通过减少无用的大括号,去除语句末尾的分号等视觉杂讯,使得代码的可读性显著提高。阅读一段良好的Python程序就感觉像是在读英语一样,它使你能够专注于解决问题,而不用太纠结编程语言本身的语法

③ 丰富强大的类库

只要你想到的问题,只要你需要使用的第三方库,基本上都是Python的接口,无论什么功能,都有现成的类库可以使用,如果一个功能比较特殊,标准库没有提供相应的支持,那么,很大概率也会有相应的开源项目提供了类似的功能。

④ 开发效率高

Python的各个优点是相辅相成的。例如,Python语言因为有了丰富强大的类库,所以,Python的开发效率能够显著提高,实现相同的功能,Python代码的文件往往只有C、C++和Java代码的1/5~1/3。相对于C、C++和Java等编译语言,Python开发者的效率提高了数倍,开发效率高的语言,能够更好的满足互联网快速迭代的需求,因此,Python语言在互联网公司使用非常广泛。

⑤ 应用领域广泛

Python语言的另一大优点就是应用领域广泛,我们可以使用python做很多的事情。例如,Web

开发、网络编程、自动化运维、Linux系统管理、数据分析、科学计算、人工智能、机器学习等等。

相关性系数介绍+python代码实现 correlation analysis

参考文献:

1. python 皮尔森相关系数

2. 统计学之三大相关性系数(pearson、spearman、kendall)

皮尔森系数

重点关注第一个等号后面的公式,最后面的是推导计算,暂时不用管它们。看到没有,两个变量(X, Y)的皮尔森相关性系数(ρX,Y)等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY)。

公式的分母是变量的标准差,这就意味着计算皮尔森相关性系数时,变量的标准差不能为0(分母不能为0),也就是说你的两个变量中任何一个的值不能都是相同的。如果没有变化,用皮尔森相关系数是没办法算出这个变量与另一个变量之间是不是有相关性的。

皮尔森相关系数(Pearson correlation coefficient)也称皮尔森积矩相关系数(Pearson product-moment correlation coefficient) ,是一种线性相关系数。皮尔森相关系数是用来反映两个变量线性相关程度的统计量。相关系数用r表示,其中n为样本量,分别为两个变量的观测值和均值。r描述的是两个变量间线性相关强弱的程度。r的绝对值越大表明相关性越强。

简单的相关系数的分类

0.8-1.0 极强相关

0.6-0.8 强相关

0.4-0.6 中等程度相关

0.2-0.4 弱相关

0.0-0.2 极弱相关或无相关

r描述的是两个变量间线性相关强弱的程度。r的取值在-1与+1之间,若r0,表明两个变量是正相关,即一个变量的值越大,另一个变量的值也会越大;若r0,表明两个变量是负相关,即一个变量的值越大另一个变量的值反而会越小。r 的绝对值越大表明相关性越强,要注意的是这里并不存在因果关系。

斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。下面来看一下它的计算公式:

计算过程就是:首先对两个变量(X, Y)的数据进行排序,然后记下排序以后的位置(X’, Y’),(X’, Y’)的值就称为秩次,秩次的差值就是上面公式中的di,n就是变量中数据的个数,最后带入公式就可求解结果

带入公式,求得斯皮尔曼相关性系数:ρs= 1-6 (1+1+1+9)/6 35=0.657

而且,即便在变量值没有变化的情况下,也不会出现像皮尔森系数那样分母为0而无法计算的情况。另外,即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小!

由于斯皮尔曼相关性系数没有那些数据条件要求,适用的范围就广多了。

肯德尔相关性系数,又称肯德尔秩相关系数,它也是一种秩相关系数,不过它所计算的对象是分类变量。

分类变量可以理解成有类别的变量,可以分为

无序的,比如性别(男、女)、血型(A、B、O、AB);

有序的,比如肥胖等级(重度肥胖,中度肥胖、轻度肥胖、不肥胖)。

通常需要求相关性系数的都是有序分类变量。

举个例子。比如评委对选手的评分(优、中、差等),我们想看两个(或者多个)评委对几位选手的评价标准是否一致;或者医院的尿糖化验报告,想检验各个医院对尿糖的化验结果是否一致,这时候就可以使用肯德尔相关性系数进行衡量。

pandas.DataFrame.corr()

DataFrame.corr(method='pearson', min_periods=1)[source]

Compute pairwise correlation of columns, excluding NA/null values

Parameters:

method : {‘pearson’, ‘kendall’, ‘spearman’}

pearson : standard correlation coefficient

kendall : Kendall Tau correlation coefficient

spearman : Spearman rank correlation

min_periods : int, optional

Minimum number of observations required per pair of columns to have a valid result. Currently only available for pearson and spearman correlation

Returns:

y : DataFrame

numpy.corrcoef(x,y = None,rowvar = True,bias = class'numpy._globals._NoValue',ddof = class'numpy._globals._NoValue' )

返回Pearson乘积矩相关系数。

cov有关更多详细信息,请参阅文档。相关系数矩阵R和协方差矩阵C之间的关系为

R的值在-1和1之间(含)。

参数:

x:array_like

包含多个变量和观察值的1维或2维数组。x的每一行代表一个变量,每一列都是对所有这些变量的单独观察。另请参阅下面的rowvar。

y:array_like,可选

一组额外的变量和观察。y的形状与x相同。

rowvar:布尔,可选

如果rowvar为True(默认),则每行表示一个变量,并在列中有观察值。否则,该关系将被转置:每列表示一个变量,而行包含观察值。

bias : _NoValue, optional Has no effect, do not use. Deprecated since version 1.10.0.

ddof : _NoValue, optional Has no effect, do not use. Deprecated since version 1.10.0.

返回:

R:ndarray 变量的相关系数矩阵。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。