当前位置: 首页 > news >正文

【漫话机器学习系列】122.相关系数(Correlation Coefficient)

深入理解相关系数(Correlation Coefficient)

1. 引言

在数据分析、统计学和机器学习领域,研究变量之间的关系是至关重要的任务。我们常常想知道:当一个变量变化时,另一个变量是否也会随之变化?如果会,它们之间的关系有多强? 相关系数(Correlation Coefficient)是用来衡量两个变量之间线性关系的一种重要指标。

本文将深入解析:

  • 相关系数的定义与公式
  • 计算方法及示例
  • 相关系数的范围及解释
  • 相关系数的应用
  • 相关系数的局限性

2. 相关系数的定义

相关系数(Correlation Coefficient),通常指皮尔逊相关系数(Pearson Correlation Coefficient),用来衡量两个变量之间的线性关系。它的数学表达式如下:

Cor(X, Y) = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2} \cdot \sqrt{\sum (y_i - \bar{y})^2}}

3. 公式解析

让我们详细拆解皮尔逊相关系数公式中的各个部分:

Cor(X, Y) = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2} \cdot \sqrt{\sum (y_i - \bar{y})^2}}

其中:

  • x_iy_i​ 分别表示两个变量 X 和 Y 在第 i 个样本中的取值。

  • \bar{x}\bar{y}​ 分别是变量X 和 Y 的均值

    \bar{x} = \frac{1}{n} \sum x_i, \quad \bar{y} = \frac{1}{n} \sum y_i
  • 分子部分 \sum (x_i - \bar{x})(y_i - \bar{y}) 计算的是协方差(Covariance),用于衡量 X 和 Y 共同变化的程度:

    Cov(X, Y) = \frac{1}{n} \sum (x_i - \bar{x})(y_i - \bar{y})
  • 分母部分是两个变量的标准差的乘积:

    \sqrt{\sum (x_i - \bar{x})^2} \quad\quad \sqrt{\sum (y_i - \bar{y})^2}

    它的作用是对数据进行标准化,使得相关系数的值始终在[-1, 1]之间。


4. 相关系数的取值范围及解释

皮尔逊相关系数 Cor(X, Y) 的取值范围是 [-1, 1],其含义如下:

相关系数 Cor(X,Y)Cor(X, Y)Cor(X,Y)解释
Cor(X, Y) = 1完全正相关,即 X 增加时 Y 也以完全线性的方式增加。
0 < Cor(X, Y) < 1正相关,即 X 增加时 Y 也有增加的趋势,相关性越接近 1,线性关系越强。
Cor(X, Y) = 0无相关关系,即 X 和 Y 之间没有线性关系(但可能存在非线性关系)。
-1 < Cor(X, Y) < 0负相关,即 X 增加时 Y 倾向于减少,相关性越接近 -1,线性关系越强。
Cor(X, Y) = -1完全负相关,即 X 增加时 Y 以完全线性的方式减少。

简单来说:

  • 接近 1:强正相关
  • 接近 0:弱相关或无相关
  • 接近 -1:强负相关

5. 计算示例

假设我们有两个变量 X 和 Y 的五个样本点:

样本编号XY
123
236
349
4512
5615

步骤 1:计算均值

\bar{x} = \frac{2 + 3 + 4 + 5 + 6}{5} = 4
\bar{y} = \frac{3 + 6 + 9 + 12 + 15}{5} = 9

步骤 2:计算协方差

\sum (x_i - \bar{x})(y_i - \bar{y})

样本编号x_iy_ix_i - \bar{x}y_i - \bar{y}(x_i - \bar{x})(y_i - \bar{y})
123-2-612
236-1-33
349000
4512133
56152612

\sum (x_i - \bar{x})(y_i - \bar{y}) = 12 + 3 + 0 + 3 + 12 = 30

步骤 3:计算标准差

\sqrt{\sum (x_i - \bar{x})^2} = \sqrt{(-2)^2 + (-1)^2 + 0^2 + 1^2 + 2^2} = \sqrt{10}
\sqrt{\sum (y_i - \bar{y})^2} = \sqrt{(-6)^2 + (-3)^2 + 0^2 + 3^2 + 6^2} = \sqrt{90}

步骤 4:计算相关系数

Cor(X, Y) = \frac{30}{\sqrt{10} \times \sqrt{90}}

计算得到:

Cor(X, Y) \approx 1

结果表明,变量 X 和 Y 之间存在很强的正相关关系


6. 相关系数的应用

6.1 经济学

  • 研究某种产品的价格与销量之间的关系。
  • 研究工资与消费水平的关系。

6.2 机器学习

  • 在特征工程中,去除相关性极高的特征,防止共线性问题。
  • 选择与目标变量最相关的特征,提高模型性能。

6.3 生物统计

  • 研究身高与体重的关系。
  • 研究药物剂量与治疗效果的关系。

7. 相关系数的局限性

  • 只能衡量线性关系,不能捕捉非线性关系。例如,如果数据是曲线相关的,皮尔逊相关系数可能接近 0,但实际上它们仍然存在关系。
  • 受异常值影响,如果数据集中存在极端值,可能会影响相关系数的计算结果。
  • 相关不代表因果,即使 X 和 Y 相关,也不能直接推断 X 导致 Y 发生变化。

8. 总结

  • 相关系数 Cor(X, Y) 衡量两个变量之间的线性关系
  • 取值范围在 [-1,1] 之间,绝对值越大,线性相关性越强。
  • 计算方法基于协方差标准差
  • 应用于经济学、机器学习、生物统计等多个领域。
  • 需要注意非线性关系异常值因果推断 的问题。

相关系数是数据分析中的重要工具,正确理解和使用它,可以帮助我们更好地解读数据之间的关系!

相关文章:

【漫话机器学习系列】122.相关系数(Correlation Coefficient)

深入理解相关系数&#xff08;Correlation Coefficient&#xff09; 1. 引言 在数据分析、统计学和机器学习领域&#xff0c;研究变量之间的关系是至关重要的任务。我们常常想知道&#xff1a;当一个变量变化时&#xff0c;另一个变量是否也会随之变化&#xff1f;如果会&…...

控制系统分类

文章目录 定义与特点1. 自治系统&#xff08;Autonomous System&#xff09;与非自治系统&#xff08;Non-Autonomous System&#xff09;自治系统非自治系统 2. 线性系统&#xff08;Linear System&#xff09;与非线性系统&#xff08;Nonlinear System&#xff09;线性系统非…...

文档操作方法得合理使用

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…...

Python asyncIO 面试题及参考答案 草

目录 如何正确定义一个协程函数?直接调用协程会引发什么问题? 使用 async def 定义的协程与普通函数执行流程有何本质区别? 解释 asyncio.run () 的作用及与手动管理事件循环的差异 为什么协程中必须使用 await 而非 yield 挂起操作? 写出通过 async for 实现异步迭代器…...

计算机网络——交换机

一、什么是交换机&#xff1f; 交换机&#xff08;Switch&#xff09;是局域网&#xff08;LAN&#xff09;中的核心设备&#xff0c;负责在 数据链路层&#xff08;OSI第二层&#xff09;高效转发数据帧。它像一位“智能交通警察”&#xff0c;根据设备的 MAC地址 精准引导数…...

matlab和FPGA联合仿真时读写.txt文件数据的方法

在FPGA开发过程中&#xff0c;往往需要将MATLAB生成的数据作为原始激励灌入FPGA进行仿真。为了验证FPGA计算是否正确&#xff0c;又需要将FPGA计算结果导入MATLAB绘图与MATLAB计算结果对比。 下面是MATLAB“写.txt”、“读.txt”&#xff0c;Verilog“读.txt”、“写.txt”的代…...

解锁DeepSpeek-R1大模型微调:从训练到部署,打造定制化AI会话系统

目录 1. 前言 2.大模型微调概念简述 2.1. 按学习范式分类 2.2. 按参数更新范围分类 2.3. 大模型微调框架简介 3. DeepSpeek R1大模型微调实战 3.1.LLaMA-Factory基础环境安装 3.1大模型下载 3.2. 大模型训练 3.3. 大模型部署 3.4. 微调大模型融合基于SpirngBootVue2…...

【分布式】聊聊分布式id实现方案和生产经验

对于分布式Id来说&#xff0c;在面试过程中也是高频面试题&#xff0c;所以主要针对分布式id实现方案进行详细分析下。 应用场景 对于无论是单机还是分布式系统来说&#xff0c;对于很多场景需要全局唯一ID&#xff0c; 数据库id唯一性日志traceId 可以方便找到日志链&#…...

uniapp或者vue 使用serialport

参考https://blog.csdn.net/ykee126/article/details/90440499 版本是第一位&#xff1a;否则容易编译失败 node 版本 18.14.0 npm 版本 9.3.1 electron 版本 30.0.8 electron-rebuild 版本 3.2.9 serialport 版本 10.0.0 需要python环境 main.js // Modules to control app…...

机器学习12-视觉识别任务

机器学习12-视觉识别任务 分类语义分割滑动窗口滑动窗口的实现思路优点缺点现代替代方法 全卷积&#xff08;Fully Convolutional Networks, FCN&#xff09;FCN 的工作原理FCN 的性能优势FCN 的应用案例FCN 的局限性改进方向下采样可学习的上采样:转置卷积 目标检测区域建议Se…...

使用paramiko爆破ssh登录

一.确认是否存在目标主机是否存在root用户 重跑 CVE-2018-15473用户名枚举漏洞 检测&#xff1a; import paramiko from paramiko.ssh_exception import AuthenticationExceptiondef check_user(username, hostname, port):ssh paramiko.SSHClient()ssh.set_missing_host_key…...

游戏引擎学习第146天

音高变化使得对齐读取变得不可能&#xff0c;我们可以支持循环声音了。 我们今天的目标是完成之前一段时间所做的音频代码。这个项目并不依赖任何引擎或库&#xff0c;而是一个教育项目&#xff0c;目的是展示从头到尾运行一个游戏所需要的全部代码。无论你对什么方面感兴趣&a…...

装饰器模式--RequestWrapper、请求流request无法被重复读取

目录 前言一、场景二、原因分析三、解决四、更多 前言 曾经遇见这么一段代码&#xff0c;能看出来是把request又重新包装了一下&#xff0c;核心信息都不会改变 后面了解到这叫 装饰器模式&#xff08;Decorator Pattern&#xff09; &#xff1a;也称为包装模式(Wrapper Pat…...

【算法题】小鱼的航程

问题&#xff1a; 分析 分析题目&#xff0c;可以看出&#xff0c;给你一个开始的星期&#xff0c;再给一个总共天数&#xff0c;在这些天内&#xff0c;只有周六周日休息&#xff0c;其他全要游泳250公里。 那分支处理好啦 当星期为6时&#xff0c;需要消耗2天&#xff0c;…...

视频录像机视频通道是指什么

视频录像机的视频通道是指摄像机在监控矩阵或硬盘录像机设备上的视频输入的物理位置。 与摄像头数量关系&#xff1a;在视频监控系统中&#xff0c;有多少个摄像头就需要多少路视频通道&#xff0c;通道数量决定了视频录像机可接入摄像头的数量&#xff0c;一般硬盘录像机有4路…...

RISC-V医疗芯片工程师复合型转型的路径与策略

从RISC-V到医疗芯片:工程师复合型转型的路径与策略 一、引言 1.1 研究背景 在科技快速发展的当下,芯片技术已然成为推动各行业进步的核心驱动力之一。其中,RISC-V 架构作为芯片领域的新兴力量,正以其独特的优势迅速崛起,对整个芯片产业的格局产生着深远影响。RISC-V 架…...

《Gradio : AI awesome-demos》

《Gradio : AI awesome-demos》 This is a list of some wonderful demos & applications built with Gradio. Heres how to contribute yours! &#x1f58a;️ Natural language processing Demo name (link to demo)input type(s)output type(s)status badgeruDALL-ET…...

DeepSeek R1-7B 医疗大模型微调实战全流程分析(全码版)

DeepSeek R1-7B 医疗大模型微调实战全流程指南 目录 环境配置与硬件优化医疗数据工程微调策略详解训练监控与评估模型部署与安全持续优化与迭代多模态扩展伦理与合规体系故障排除与调试行业应用案例进阶调优技巧版本管理与迭代法律风险规避成本控制方案文档与知识传承1. 环境配…...

javascript实现生肖查询

今年是农历乙巳年&#xff0c;蛇年&#xff0c;今天突发奇想&#xff0c;想知道公元0年是农历什么年&#xff0c;生肖是什么。没想到AI给我的答复是&#xff0c;没有公元0年。我瞬间呆愣&#xff0c;怎么可能&#xff1f;后来详细查询了一下&#xff0c;还真是没有。具体解释如…...

UE5从入门到精通之如何创建自定义插件

前言 Unreal 的Plugins插件系统中有很多的插件供大家使用,包括官方的和第三方的,这些插件不仅能帮我我们实现特定功能,还能够提升我们的工作效率。 所以我们今天就来自己创建一个自定义插件,如果我们想实现什么特定的功能,我们也可以发布到商店供大家使用了。 创建插件 …...

CentOS 7下OnlyOffice离线部署全攻略:从依赖包下载到一键配置(避坑指南)

CentOS 7下OnlyOffice离线部署全攻略&#xff1a;从依赖包下载到一键配置&#xff08;避坑指南&#xff09; 在企业内网或安全隔离环境中部署文档协作平台时&#xff0c;OnlyOffice凭借其开源特性和丰富的编辑功能成为首选方案。本文将深入探讨如何在CentOS 7系统中实现完全离线…...

UE4SS终极指南:解锁虚幻引擎4/5游戏Mod开发新境界

UE4SS终极指南&#xff1a;解锁虚幻引擎4/5游戏Mod开发新境界 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS …...

vLLM-v0.17.1参数详解:--enforce-eager --disable-custom-all-reduce说明

vLLM-v0.17.1参数详解&#xff1a;--enforce-eager --disable-custom-all-reduce说明 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库&#xff0c;以其出色的吞吐量和易用性著称。这个项目最初由加州大学伯克利分校的天空计算实验室开发&#xff…...

Science重磅指南:如何打造高影响力论文摘要?附Abstract写作黄金法则!

1. 科学论文摘要的黄金结构 写论文摘要就像给陌生人讲一个精彩的故事——要在短短200字内让人眼前一亮。我在Nature和Science上发过几篇论文&#xff0c;也审过上百篇投稿&#xff0c;发现顶级期刊的摘要其实有套"万能公式"。这个公式的核心是把摘要拆解成7个关键部分…...

文艺复兴,什么是XSS,常见形式(二)

前言 本文将继续介绍XSS的常见形状&#xff0c;依赖于portswigger提供的免费Lab环境&#xff0c;将重点介绍关于使用脚本来进行表单XSS验证以及针对标签的模糊测试。 Lab: Stored DOM XSS 这是一个存储型的DOM类的XSS&#xff0c;具体的是当你将内容提交到评论区&#xff0c…...

Comsol异构电池力电热耦合模型:探索电池的多场奥秘

comsol异构电池力电热耦合模型 采用椭圆型电极颗粒模拟锂离子正负极的电极颗粒&#xff0c;还原真实电池的3D介观结构&#xff0c;耦合电化学场-热场-力学场&#xff0c;可模拟电流&#xff0c;浓度&#xff0c;温度&#xff0c;应力等多场结果在电池研究领域&#xff0c;深入理…...

Mojo项目无法import本地.py模块?工程师连夜修复的6种路径/环境变量/Loader级配置错误

第一章&#xff1a;Mojo项目无法import本地.py模块的根本原因剖析Mojo 语言虽兼容 Python 语法&#xff0c;但其运行时环境与 CPython 截然不同——它基于 LLVM 编译为原生机器码&#xff0c;并通过 Mojo Runtime 执行&#xff0c;**不依赖 Python 解释器进程**。因此&#xff…...

ColorMemLCD电子纸驱动库:面向LPM013M126A的嵌入式低功耗显示方案

1. ColorMemLCD 库概述ColorMemLCD 是一款专为 JDI&#xff08;Japan Display Inc.&#xff09;LPM013M126A 型彩色内存式 LCD 显示模块设计的嵌入式图形驱动库。该库并非从零构建&#xff0c;而是继承自 ARM mbed OS 生态中广泛使用的GraphicDisplay抽象基类&#xff0c;延续了…...

java打卡学习3:ArrayList扩容机制

ArrayList扩容机制概述ArrayList是基于动态数组实现的集合类&#xff0c;当元素数量超过当前数组容量时&#xff0c;会自动触发扩容机制。其核心目的是平衡内存占用与性能开销。默认初始容量未指定初始容量时&#xff0c;默认创建一个空数组&#xff08;JDK 1.8&#xff09;&am…...

I2CLCD驱动库:HD44780字符屏的I²C轻量级嵌入式适配方案

1. I2CLCD库概述&#xff1a;面向嵌入式系统的字符型LCD IC适配驱动I2CLCD是一个轻量级、可移植的C语言驱动库&#xff0c;专为将标准HD44780兼容的字符型LCD&#xff08;如1602、2004&#xff09;通过IC总线接入MCU而设计。其核心价值在于消除并行接口对GPIO资源的高占用&…...