爱心目录

  • 一.公式化简
  • 二.代码部分

一.公式化简

  • 一般的我们学到的公式

一般我们学到的皮尔逊相关系数公式可能长这个样子,但是这个样子不好用代码实现呀!所以我们帮它化简成下面的样子

  • 化简后的公式

二.代码部分

  • 代码说明
    程序中用Numpy库中自带的相关系数包进行了结果验证,结果是一样的,所以可以证明此代码的正确性!
    【另外说明一点,Numpy库输出的是相关系数矩阵,只不过矩阵化了,是一个意思!】

  • 运行环境
    2019版PyCharm,Python版本是3.8

import numpy as np
from math import *def myltipl(a,b):"""作用:求取∑xiyi(序列1和序列2所有元素分别相乘再相加)地位:总体公式的子公式:param a:x序列:param b:y序列:return:"""sumofab = 0.0for i in range(len(a)):temp = a[i]*b[i]sumofab+=tempreturn sumofabdef cal_pccs(x,y):"""总体公式(Pearson)皮尔逊相关系数总体计算公式:param x:序列1:param y:序列2:return:返回相关系数"""n = len(x)  # 获取“序列1”的长度# 求和sum1=sum(x) # ∑xi 计算”序列1“所有元素的和sum2=sum(y) # ∑yj 计算“序列2”所有元素的和# 求乘积之和sumofxy = myltipl(x,y)  # 求∑xiyi# 求平方和sumofx2 = sum([pow(i,2) for i in x])  # pow(i,2)函数功能求的是i的平方sumofy2 = sum([pow(j,2) for j in y])num = sumofxy-(float(sum1) * float(sum2) / n) # 公式中分子的“被减数 - 减数”# 计算皮尔逊相关系数den = sqrt((sumofx2 - float(sum1**2) / n) * (sumofy2 -float(sum2**2) / n)) # 公式中的分母return num/den # 返回最终的计算结果def Zpow():print(pow(2,2))if __name__=='__main__':"""-----------数据集-------------------"""x = np.array([1,2,3,4,5,6,7,8,9])  # 这两个序列是测试用的y = np.array([1,2,3,4,5,6,7,8,9])"""-----------手写公式-------------------"""corr_Handcraft = cal_pccs(x,y) # 输入两个序列"""-----------numpy库写公式-------------------"""corr_Numpy = np.corrcoef(x, y)"""-----------展示-------------------"""print("手写皮尔逊相关系数公式的结果:",corr_Handcraft)print("运用numpy包写的皮尔逊相关系数公式:\n",corr_Numpy)


如果对你有帮助的话请点个赞再走吧~你的支持是我做下去的动力呀!

皮尔逊相关系数公式手写代码【Python+详细注解】(Pearson correlation coefficient)相关推荐

  1. python基础代码事例-推公式到写代码-python基础

    推公式到写代码-python基础 希望你能像看小说看杂文一样的心情看完这一系列,因为学习不总是枯燥的,希望像聊天一样娓娓道来. 专辑系列的阅读对象是那些懂些高等数学和线性代数,但没有经过编码训练的人. ...

  2. 手写算法-python代码实现Ridge(L2正则项)回归

    手写算法-python代码实现Ridge回归 Ridge简介 Ridge回归分析与python代码实现 方法一:梯度下降法求解Ridge回归参数 方法二:标准方程法实现Ridge回归 调用sklear ...

  3. 多元线性回归算法python实现_手写算法-Python代码推广多元线性回归

    1.梯度下降-矩阵形式 上篇文章介绍了一元线性回归,包括Python实现和sklearn实现的实例.对比,以及一些问题点,详情可以看这里: 链接: 手写算法-Python代码实现一元线性回归 里面封装 ...

  4. python手写代码面试_常见Python面试题—手写代码系列

    原标题:常见Python面试题-手写代码系列 1.如何反向迭代一个序列 #如果是一个list,最快的方法使用reverse tempList = [1,2,3,4] tempList.reverse( ...

  5. python手写代码面试_常见Python面试题 — 手写代码系列

    原标题:常见Python面试题 - 手写代码系列 作者: Peace & Love 来自:https://blog.csdn.net/u013205877/article/details/77 ...

  6. python在哪里写代码比较适合-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...

    原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...

  7. python在哪里写代码-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...

    原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...

  8. ML之FE:PCC皮尔逊相关系数(Pearson correlation coefficient)的简介、案例应用(与spearman相关系数对比及其代码实现)之详细攻略

    ML之FE:PCC皮尔逊相关系数(Pearson correlation coefficient)的简介.案例应用(与spearman相关系数对比及其代码实现)之详细攻略 目录 PCC/PPMCC皮尔 ...

  9. python是如何实现进程池和线程池的_高并发:线程、线程锁与线程池(精华),手写代码实现线程池...

    前文: 单线程--多线程的开启--线程锁--线程同步工具--手写连接池--连接池工具类. 一.线程 1.线程的概念 2.线程与进程的关系 3.定义: 区别:如上!!! 4.wait()和sleep() ...

  10. 多元线性回归,岭回归,lasso回归(具体代码(包括调用库代码和手写代码实现)+一点点心得)

    最近数据挖掘导论老师布置了一项作业,主要就是线性回归的实现,笔者之前听过吴恩达的线性回归的网课,但一直没有进行代码的实现,这次正好相对系统的整理一下,方便各位同学的学习,也希望能够对其进行优化,优化的 ...

最新文章

  1. Leaflet中原生方式实现测距
  2. 温州大学《机器学习》课程代码(三)逻辑回归
  3. 更新整理本人全部博文中提供的代码与工具(Java,2014.09)
  4. 如果没有就插入,如果有就更新
  5. 检测和语义分割_分割和对象检测-第1部分
  6. 十动然鱼!《闲鱼年会经济数据》来了:卖得最快的奖品还是它
  7. arpspoof渗透工具使用方法详解+实战
  8. 错误:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
  9. B代表哪一种氨基酸?B和b代表的氨基酸一样吗?
  10. 打字会出声音的计算机,笔记本电脑打字时发出声响敲击电脑时也有回声发出怎么办? 爱问知识人...
  11. 阿里巴巴图库下载的在线图标显示为方框的问题
  12. 爬虫-1-基础和urllib
  13. 海信e5k和e5h区别 对比评测 哪个好
  14. Android 截屏并保存到本地(兼容Android 10.0)
  15. 远程控制计算机控制不,远程控制电脑为什么打不了字
  16. JavaScript是解释型语言--V8、JIT
  17. 数据,数据对象,数据元素,数据项的关系图
  18. 许昌一高2021年高考成绩查询,2021年许昌最好的高中排名,许昌重点高中升学率排名...
  19. 《工业APP白皮书》发布,鼎捷软件ERP,MES等系统方案获专业推荐
  20. mac隐藏文件及查看隐藏文件

热门文章

  1. 七款好看文字样式纯css
  2. 探索式测试之隐喻(篮球)
  3. ZBrush与数位板雕刻模型如何才能结合
  4. 第三章 一元函数积分概念、计算及应用
  5. 至强服务器系列,2020 最新 至强 Xeon 服务器系列 CPU天梯图
  6. 师创作业--Bank Account Management System 银行账户管理系统 简称BAM
  7. HDMI调试基本原理
  8. 关于unity商店里的隐藏组件
  9. UART通信协议知识入门
  10. 实验9 面向对象程序设计方法