相关性检验之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. 机器学习——聚类算法
  2. 【转载】浅析游戏引擎开发
  3. 学习一下spring-cloud-function中官方修复的一个问题
  4. Elastic-Job项目启动后,控制台一直报Cron表达式有误且Cron表达式与当前配置的表达式不一样
  5. 日本词汇的认识与理解
  6. python验证码识别——前处理
  7. 基于Yolov5目标检测的物体分类识别及定位(三) -- 训练、测试
  8. 关于wps公式编辑器的大括号里面空白很大
  9. ae插件form_四分钟了解全网最受欢迎的10大AE插件
  10. 一个完全免费的在线文字云网站
  11. python调整excel列宽_python - 有没有一种方法可以使用pandas.ExcelWriter自动调整Excel列的宽度? - 堆栈内存溢出...
  12. DLL加载: Debug版本正常加载,Release版本LoadLibrary加载失败,返回错误126
  13. 【829】【06 信息检索策略和方法】
  14. g6的minimap中的配置_Minimap 缩略图
  15. C语言推荐书籍从入门到进阶带你走上大牛之路(珍藏版)
  16. Lora技术- 码片/码元/数据速率以及空中时间计算
  17. java 时分秒加减_JAVA日期加减运算
  18. 普通话测试哪个软件准确吗,免费普通话测试软件哪个好_哪个app可以免费测普通话_普通话测试软件准不准...
  19. GE Fanuc触摸屏维修ES0611人机界面维修详解
  20. 为啥需要RPC,而不是简单的HTTP?

热门文章

  1. shiro包_Spring Boot 整合 Shiro-登录认证和权限管理
  2. [水晶报表]金额转英文大写
  3. 计算机专业经典著作(转载)
  4. mysql基本知识学习
  5. MongoDB的可视化工具(Studio 3T)
  6. 麦肯锡最新调查:大多数公司缺乏人工智能的基础设施
  7. svn服务器搭建之SlikSvn
  8. 《飞桨PaddleSpeech语音技术课程》一句话语音合成全流程实践
  9. VMware安装CentOS7时遇到的黑屏问题解决方法
  10. JAVA ajax搜索框_JS+Ajax实现百度智能搜索框