相关性检验之Pearson系数及python实现

一、Pearson相关系数

皮尔森相关系数是用来反应俩变量之间相似程度的统计量,在机器学习中可以用来计算特征与类别间的相似度,即可判断所提取到的特征和类别是正相关、负相关还是没有相关程度。

Pearson系数的取值范围为[-1,1],当值为负时,为负相关,当值为正时,为正相关,绝对值越大,则正/负相关的程度越大。若数据无重复值,且两个变量完全单调相关时,spearman相关系数为+1或-1。当两个变量独立时相关系统为0,但反之不成立

Pearson相关系数的计算方法有三种形式,如下列公式所示

其中X,Y代表两个特征数组, , 为X,Y特征的平均值。对于第一种形式的Pearson表示,可以看做是两个随机变量中得到的样本集向量之间夹角的cosine函数。

二、Python代码实现

在这里主要实现了第一种Pearson形式的代码,代码分为三个模块,第一个模块的功能是来获取两个向量的平均值;第二个模块的功能实现的是求两个向量间的pearson系数,返回pearson系数;最后一个模块是来求取所有特征和类的相似程度

[python]view plaincopy

#计算特征和类的平均值

ef calcMean(x,y):

sum_x = sum(x)

sum_y = sum(y)

n = len(x)

x_mean = float(sum_x+0.0)/n

y_mean = float(sum_y+0.0)/n

return x_mean,y_mean

[python]view plaincopy

#计算Pearson系数

def calcPearson(x,y):

x_mean,y_mean = calcMean(x,y)   #计算x,y向量平均值

n = len(x)

sumTop = 0.0

sumBottom = 0.0

x_pow = 0.0

y_pow = 0.0

for i in range(n):

sumTop += (x[i]-x_mean)*(y[i]-y_mean)

for i in range(n):

x_pow += math.pow(x[i]-x_mean,2)

for i in range(n):

y_pow += math.pow(y[i]-y_mean,2)

sumBottom = math.sqrt(x_pow*y_pow)

p = sumTop/sumBottom

return p

[python]view plaincopy

[python]view plaincopy

#计算每个特征的spearman系数,返回数组

def calcAttribute(dataSet):

prr = []

n,m = shape(dataSet)    #获取数据集行数和列数

x = [0] * n             #初始化特征x和类别y向量

y = [0] * n

for i in range(n):      #得到类向量

y[i] = dataSet[i][m-1]

for j in range(m-1):    #获取每个特征的向量,并计算Pearson系数,存入到列表中

for k in range(n):

x[k] = dataSet[k][j]

prr.append(calcSpearman(x,y))

return prr

三、样例演示

这里有一个1162*22的数据集,如下图所示,前21列表示特征,第22列表示类别。该数据集是一个二分类问题。

对于每个特征,调用上述函数,得出的每个特征的pearson系数如下图所示。根据得到的结果,对于特征选择就有一定的依据啦~

完 谢谢观看

python质量数据关联性分析_相关性检验之Pearson系数及python实现相关推荐

  1. 相关性检验之Pearson系数及python实现

    一.Pearson相关系数 皮尔森相关系数是用来反应俩变量之间相似程度的统计量,在机器学习中可以用来计算特征与类别间的相似度,即可判断所提取到的特征和类别是正相关.负相关还是没有相关程度. Pears ...

  2. python爬取岗位数据并分析_区块链岗位薪资高,Python爬取300个区块链岗位分析,龙虎榜出炉...

    原创: 菜鸟哥 菜鸟学Python 最近区块链技术再次被大家热议,既然区块链受到如此高的关注,我们就不妨去采集数据分析看看,目前所有与区块链相关的招聘信息吧. 1数据的爬取 首先是对于数据的爬取,由于 ...

  3. python金融量化书籍_超强干货 | Python金融数据量化分析教程+机器学习电子书

    如今Python语言的学习已经上升到了国家战略的层面上.Python语言是人工智能的基础语言,国家相关教育部门对于"人工智能普及"格外重视,不仅将Python列入到小学.中学和高中 ...

  4. [转载] Python大数据文本分析及应用

    参考链接: 使用Python的SQL 3(处理大数据) 实践课题报告: 大数据文本分析与应用 学 校:xxx 学 院:大数据与智能工程学院 专 业:信息工程(数据科学与大数据技术) 年 级:2017级 ...

  5. Python基金数据实战分析:偏债混合基金篇

    Python基金数据实战分析:偏债混合基金篇 如何从众多的基金中选择适合自己的 需求场景 从基金网站获取基金代码 先整体看一下基金情况 获取所有混合C基金的历史净值数据 分析混合C基金 画线图予以核实 ...

  6. 如何对质量数据进行分析?

    请参考下表对质量数据进行分析. 常见质量管理手段的定量分析方法示例 横向对比 纵向对比 性能基线 性能模型 质量保证过程 不同NC问题类型的分布分析 不同类型项目的NC问题类型分布对比分析 各个检查项 ...

  7. python大数据可视化分析淘宝商品,开专卖店不行啊

    python大数据可视化分析淘宝商品,开专卖店不行啊 现如今大数据分析异常火爆,如何正确分析数据,并且抓住数据特点,获得不为人知的秘密?今天沉默带你用python爬虫,爬取淘宝网站进行淘宝商品大数据分 ...

  8. 数据探索性分析_探索性数据分析

    数据探索性分析 When we hear about Data science or Analytics , the first thing that comes to our mind is Mod ...

  9. 数据挖掘——如何利用Python实现产品关联性分析apriori算法篇

    在实际业务场景中,我们常常会探讨到产品的关联性分析,本篇文章将会介绍一下如何在Python环境下如何利用apriori算法进行数据分析. 1.准备工作 如果需要在Python环境下实现apriori算 ...

最新文章

  1. php查找函数所在文件
  2. Redux 学习笔记
  3. Exynos4412 Uboot 移植(三)—— Uboot添加自定义命令
  4. python 浏览器自动化 弹窗控制_Selenium2+Python自动化-处理浏览器弹窗(转载)
  5. 【金融】【python】处理表格(*.xlsx)形式的期货数据
  6. 非常简单,让log4j输出mybatis的sql语句和执行结果
  7. C#基础知识回顾-- 反射(1)
  8. 17、生命周期-BeanPostProcessor在Spring底层的使用
  9. 峨眉山三日游攻略:带一个伤心的女纸,去峨眉寻一点清净
  10. CHAPTER 10 Formal Grammars of English
  11. Mac 配置远程服务器 - 免密登陆
  12. 卡通人物数据集下载地址
  13. java.lang.reflect.AccessibleObject
  14. Värde任命新合伙人和高级董事总经理
  15. mysql如何查看事务日记_详解 Mysql 事务和Mysql 日志
  16. Elasticsearch X-pack证书过期解决方法
  17. 制造业企业防范勒索病毒攻击的一些建议措施
  18. matlab用正弦做随机信号程序,(MATLAB辅助现代工程数字信号处理)第6章平稳随机信号处理与分析.ppt...
  19. 分布式事务简介(seata)
  20. arduino红外对管

热门文章

  1. 对象可以创建数组吗_“跟相亲对象这样聊天可以吗?在线等挺急的!”哈哈哈哈……太逗了...
  2. 基于Matlab火灾图像检测系统设计
  3. C语言的函数实现模板化程序
  4. MCN的网红孵化毁了短视频行业
  5. Hibernate - 单向一对多关联关系映射
  6. c# 自动安装X509证书\windows安装X509证书\端口绑定ssl\服务端开启ssl
  7. 什么事webshell?
  8. 为小程序端添加一个session机制
  9. python的金融计算器_基于python实现的计算器
  10. 《动物庄园》的乌托邦