协方差矩阵及其计算方法
协方差矩阵(Covariance Matrix)是一个描述多维数据特征之间相互关系的矩阵,广泛应用于统计学和机器学习中。它用于表示各个特征之间的协方差,是分析多维数据分布和特征依赖性的重要工具。
什么是协方差矩阵?
协方差矩阵是一个方阵,其每个元素 σ i j \sigma_{ij} σij 代表第 i i i 个特征与第 j j j 个特征之间的协方差。协方差本质上是衡量两个变量是否相关以及它们的相关程度:
- 如果协方差为正,说明这两个特征具有正相关关系,即当一个特征增大时,另一个特征也倾向于增大。
- 如果协方差为负,说明这两个特征具有负相关关系,即当一个特征增大时,另一个特征倾向于减小。
- 如果协方差接近零,说明这两个特征之间几乎没有线性关系。
协方差矩阵是一个对称矩阵,因为 σ i j = σ j i \sigma_{ij} = \sigma_{ji} σij=σji。协方差矩阵的对角线元素是每个特征的方差,而非对角线元素则是特征之间的协方差。
协方差矩阵的计算
假设我们有一个包含 n n n 个样本和 m m m 个特征的数据集 X \mathbf{X} X,其中每个样本 x i = ( x i 1 , x i 2 , … , x i m ) \mathbf{x_i} = (x_{i1}, x_{i2}, \dots, x_{im}) xi=(xi1,xi2,…,xim) 是一个 m m m-维向量。为了计算协方差矩阵,我们通常按照以下步骤操作:
1. 计算每个特征的均值
首先,计算每个特征的均值。假设数据集的第 i i i 列是特征 x i x_i xi,其均值 x i ˉ \bar{x_i} xiˉ 为:
x i ˉ = 1 n ∑ k = 1 n x k i \bar{x_i} = \frac{1}{n} \sum_{k=1}^{n} x_{ki} xiˉ=n1k=1∑nxki
2. 中心化数据
对于每个特征,减去该特征的均值,得到中心化的数据:
x k i ′ = x k i − x i ˉ x_{ki}^\prime = x_{ki} - \bar{x_i} xki′=xki−xiˉ
3. 计算协方差矩阵
协方差矩阵的元素 σ i j \sigma_{ij} σij 代表第 i i i 个特征与第 j j j 个特征之间的协方差,计算公式如下:
σ i j = 1 n − 1 ∑ k = 1 n ( x k i ′ ) ( x k j ′ ) \sigma_{ij} = \frac{1}{n-1} \sum_{k=1}^{n} (x_{ki}^\prime)(x_{kj}^\prime) σij=n−11k=1∑n(xki′)(xkj′)
协方差矩阵是对称的,因此计算出来的矩阵是一个 m × m m \times m m×m 的对称矩阵,其中对角线上的元素是特征的方差,非对角线元素是特征之间的协方差。
协方差矩阵的示例
假设我们有以下数据集,其中每行表示一个样本,每列表示一个特征:
X = ( 1 2 2 3 3 4 4 5 ) \mathbf{X} = \begin{pmatrix} 1 & 2 \\ 2 & 3 \\ 3 & 4 \\ 4 & 5 \end{pmatrix} X= 12342345
这是一个包含 4 个样本和 2 个特征的数据集,特征分别为 “特征 1” 和 “特征 2”。
第一步:计算每个特征的均值
-
对于特征 1:
x 1 ˉ = 1 + 2 + 3 + 4 4 = 2.5 \bar{x_1} = \frac{1 + 2 + 3 + 4}{4} = 2.5 x1ˉ=41+2+3+4=2.5 -
对于特征 2:
x 2 ˉ = 2 + 3 + 4 + 5 4 = 3.5 \bar{x_2} = \frac{2 + 3 + 4 + 5}{4} = 3.5 x2ˉ=42+3+4+5=3.5
第二步:中心化数据
将每个特征的均值从每个数据点中减去,得到中心化的数据集:
X ′ = ( 1 − 2.5 2 − 3.5 2 − 2.5 3 − 3.5 3 − 2.5 4 − 3.5 4 − 2.5 5 − 3.5 ) = ( − 1.5 − 1.5 − 0.5 − 0.5 0.5 0.5 1.5 1.5 ) \mathbf{X^\prime} = \begin{pmatrix} 1 - 2.5 & 2 - 3.5 \\ 2 - 2.5 & 3 - 3.5 \\ 3 - 2.5 & 4 - 3.5 \\ 4 - 2.5 & 5 - 3.5 \end{pmatrix} = \begin{pmatrix} -1.5 & -1.5 \\ -0.5 & -0.5 \\ 0.5 & 0.5 \\ 1.5 & 1.5 \end{pmatrix} X′= 1−2.52−2.53−2.54−2.52−3.53−3.54−3.55−3.5 = −1.5−0.50.51.5−1.5−0.50.51.5
第三步:计算协方差矩阵
接下来,我们计算协方差矩阵的元素。由于数据集中有 2 个特征,我们需要计算以下协方差:
-
协方差 σ 11 \sigma_{11} σ11(特征 1 的方差):
σ 11 = 1 3 [ ( − 1.5 ) 2 + ( − 0.5 ) 2 + ( 0.5 ) 2 + ( 1.5 ) 2 ] = 1 3 [ 2.25 + 0.25 + 0.25 + 2.25 ] = 5 3 ≈ 1.6667 \sigma_{11} = \frac{1}{3} [(-1.5)^2 + (-0.5)^2 + (0.5)^2 + (1.5)^2] = \frac{1}{3} [2.25 + 0.25 + 0.25 + 2.25] = \frac{5}{3} \approx 1.6667 σ11=31[(−1.5)2+(−0.5)2+(0.5)2+(1.5)2]=31[2.25+0.25+0.25+2.25]=35≈1.6667 -
协方差 σ 12 \sigma_{12} σ12(特征 1 和特征 2 的协方差):
σ 12 = 1 3 [ ( − 1.5 ) ( − 1.5 ) + ( − 0.5 ) ( − 0.5 ) + ( 0.5 ) ( 0.5 ) + ( 1.5 ) ( 1.5 ) ] = 1 3 [ 2.25 + 0.25 + 0.25 + 2.25 ] = 5 3 ≈ 1.6667 \sigma_{12} = \frac{1}{3} [(-1.5)(-1.5) + (-0.5)(-0.5) + (0.5)(0.5) + (1.5)(1.5)] = \frac{1}{3} [2.25 + 0.25 + 0.25 + 2.25] = \frac{5}{3} \approx 1.6667 σ12=31[(−1.5)(−1.5)+(−0.5)(−0.5)+(0.5)(0.5)+(1.5)(1.5)]=31[2.25+0.25+0.25+2.25]=35≈1.6667 -
协方差 σ 22 \sigma_{22} σ22(特征 2 的方差):
σ 22 = 1 3 [ ( − 1.5 ) 2 + ( − 0.5 ) 2 + ( 0.5 ) 2 + ( 1.5 ) 2 ] = 5 3 ≈ 1.6667 \sigma_{22} = \frac{1}{3} [(-1.5)^2 + (-0.5)^2 + (0.5)^2 + (1.5)^2] = \frac{5}{3} \approx 1.6667 σ22=31[(−1.5)2+(−0.5)2+(0.5)2+(1.5)2]=35≈1.6667
因此,协方差矩阵为:
Σ = ( 1.6667 1.6667 1.6667 1.6667 ) \Sigma = \begin{pmatrix} 1.6667 & 1.6667 \\ 1.6667 & 1.6667 \end{pmatrix} Σ=(1.66671.66671.66671.6667)
协方差矩阵的意义
从协方差矩阵中我们可以得出以下结论:
- 方差:特征 1 和特征 2 的方差都是 1.6667,这说明数据在这两个特征上的离散程度是相同的。
- 协方差:特征 1 和特征 2 之间的协方差是 1.6667,表示这两个特征之间有正相关关系。
总结
协方差矩阵是分析多维数据的重要工具,它能够描述数据集中各个特征之间的关系。在机器学习中,协方差矩阵常用于主成分分析(PCA)等技术中,以帮助理解数据的内在结构。通过计算协方差矩阵,我们可以更好地了解特征之间的相关性和数据的分布特性。
相关文章:
协方差矩阵及其计算方法
协方差矩阵(Covariance Matrix)是一个描述多维数据特征之间相互关系的矩阵,广泛应用于统计学和机器学习中。它用于表示各个特征之间的协方差,是分析多维数据分布和特征依赖性的重要工具。 什么是协方差矩阵? 协方差矩…...
【OH】openHarmony开发环境搭建(基于windows子系统WSL)
前言 本文主要介绍基于windows子系统WSL搭建openHarmony开发环境。 WSL与Vmware虚拟机的区别,可以查看WSL与虚拟机的区别 更详细的安装配置过程可参考微软官网: 安装 WSL 前提 以下基于windows 111专业版进行配置,windows 10应该也是可以…...
Visual Studio Code 端口转发功能详解
Visual Studio Code 端口转发功能详解 引言 Visual Studio Code(简称 VS Code)是一个功能强大的源代码编辑器,它支持多种编程语言的语法高亮、智能代码补全、自定义快捷键、代码重构等特性。除了这些基本功能外,VS Code 还提供了…...
Android Framework AMS(14)ContentProvider分析-1(CP组件应用及开机启动注册流程解读)
该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读ContentProvider组件的基本知识。关注思维导图中左上侧部分即可。 有了前面activity组件分析、service组件分析、广播组件分析的基…...
Three.js PBR材质
本文将详细介绍Three.js中的PBR(Physically Based Rendering)材质,包括PBR的基本概念、适用场景、PBR材质的构建以及一些高级应用技巧。 1. PBR(Physically Based Rendering)基本概念 PBR,即Physically B…...
智谱AI清影升级:引领AI视频进入音效新时代
前几天智谱推出了新清影,该版本支持4k、60帧超高清画质、任意尺寸,并且自带音效的10秒视频,让ai生视频告别了"哑巴时代"。 智谱AI视频腾空出世,可灵遭遇强劲挑战!究竟谁是行业翘楚?(附测评案例)之前智谱出世那时体验了一…...
嵌入式硬件电子电路设计(五)MOS管详解(NMOS、PMOS、三极管跟mos管的区别)
引言:在我们的日常使用中,MOS就是个纯粹的电子开关,虽然MOS管也有放大作用,但是几乎用不到,只用它的开关作用,一般的电机驱动,开关电源,逆变器等大功率设备,全部使用MOS管…...
Centos 9 安装 PostgreSQL 16 并支持远程访问
仅列出核心操作,可以解决使用过程中遇到的访问问题。 1 安装 使用dnf源安装 sudo dnf module -y install postgresql:16 2 配置文件夹权限 使用root权限操作 sudo chown postgres:postgres /var/lib/pgsql/datasudo chmod -R 0750 /var/lib/pgsql/data 3 初…...
Dubbo源码解析(三)
一、Dubbo整合Spring启动流程 Dubbo的使用可以不依赖Spring,但是生产环境中Dubbo都是整合到Spring中一起使用,所以本章就解析Dubbo整合Spring的启动流程 一、传统的xml解析方式 一、Dubbo配置解析流程 在Java 中,一切皆对象。在JDK 中使用…...
HarmonyOS Next星河版笔记--界面开发(5)
1.字符串 1.1.字符串拼接 作用:把两个或多个字符串,拼成一个字符串。(通常是用来拼接字符串和变量) hello world > helloworld 加好作用:拼接 let name:string 小明 console.log(简介信息,名字是 name) …...
Spring Boot3 实战案例合集上线了
Spring Boot3实战案例合集...
在Ubuntu 24.04 LTS上安装飞桨PaddleX
前面我们介绍了《在Windows用远程桌面访问Ubuntu 24.04.1 LTS》本文接着介绍安装飞桨PaddleX。 PaddleX 3.0 是基于飞桨框架构建的一站式全流程开发工具,它集成了众多开箱即用的预训练模型,可以实现模型从训练到推理的全流程开发,支持国内外多…...
Homebrew 命令大全
Homebrew 是 macOS 和 Linux 系统上的一个流行的包管理器,它可以帮助用户轻松地安装、更新和管理软件包。以下是一些常用的 Homebrew 命令: 安装 Homebrew 如果你还没有安装 Homebrew,可以使用以下命令在 macOS 上进行安装: /b…...
Docker+Django项目部署-从Linux+Windows实战
一、概述 1. 什么是Docker Docker 是一个开源的应用容器引擎,支持在win、mac、Linux系统上进行安装。可以帮助我们在一台电脑上创建出多个隔离的环境,比传统的虚拟机极大的节省资源 。 为什么要创建隔离的环境? 假设你先在有一个centos7.…...
前端 JS 实用操作总结
目录 1、重构解构 1、数组解构 2、对象解构 3、...展开 2、箭头函数 1、简写 2、this指向 3、没有arguments 4、普通函数this的指向 3、数组实用方法 1、map和filter 2、find 3、reduce 1、重构解构 1、数组解构 const arr ["唐僧", "孙悟空&quo…...
11.15 机器学习-集成学习方法-随机森林
# 机器学习中有一种大类叫**集成学习**(Ensemble Learning),集成学习的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话: # 三个臭皮匠,…...
【SQL】E-R模型(实体-联系模型)
目录 一、介绍 1、实体集 定义和性质 属性 E-R图表示 2. 联系集 定义和性质 属性 E-R图表示 一、介绍 实体-联系数据模型(E-R数据模型)被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式…...
C/C++静态库引用过程中出现符号未定义的处理方式
问题背景: 在接入新库(静态库)时遇到了符号未定义问题,并发现改变静态库的链接顺序可以解决问题。 问题根源: 静态库是由 .o 文件拼接而成的,链接静态库时,链接器以 .o 文件为单位进行处理。链接…...
『VUE』27. 透传属性与inheritAttrs(详细图文注释)
目录 什么是透传属性(Forwarding Attributes)使用条件唯一根节点禁用透传属性继承总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 什么是透传属性(Forwarding Attributes) 在 V…...
借助Excel实现Word表格快速排序
实例需求:Word中的表格如下图所示,为了强化记忆,希望能够将表格内容随机排序,表格第一列仍然按照顺序编号,即编号不跟随表格行内容调整。 乱序之后的效果如下图所示(每次运行代码的结果都不一定相同&#x…...
PN5180 ISO15693协议栈实现与嵌入式NFC开发指南
1. PN5180库深度解析:面向嵌入式工程师的NFC ISO15693协议栈实现指南NXP PN5180是业界领先的多协议NFC控制器,支持ISO/IEC 14443 A/B、ISO/IEC 15693、Felica及NFC Forum Type 1–5标签。其核心优势在于高集成度射频前端、可编程调制解调器及灵活的主机接…...
7大维度测评:2023年开源付费墙绕过工具终极选择指南
7大维度测评:2023年开源付费墙绕过工具终极选择指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字内容访问需求日益增长的今天,选择一款高效可靠的开源…...
3大技术突破重新定义魔兽地图编辑工作流
3大技术突破重新定义魔兽地图编辑工作流 【免费下载链接】HiveWE A Warcraft III world editor. 项目地址: https://gitcode.com/gh_mirrors/hi/HiveWE 对于《魔兽争霸III》地图制作者而言,最令人沮丧的体验莫过于:精心设计的地形布局在实际测试中…...
LimeReport:终极跨平台Qt报表生成解决方案
LimeReport:终极跨平台Qt报表生成解决方案 【免费下载链接】LimeReport Report generator for Qt Framework 项目地址: https://gitcode.com/gh_mirrors/li/LimeReport LimeReport 是一款专为 Qt 开发者设计的开源报表生成库,提供完整的报表设计、…...
从零开始用Typora写技术文档:完整配置指南与高效排版秘籍
从零开始用Typora打造专业技术文档:配置、排版与效率全攻略 在技术写作领域,文档的呈现质量往往直接影响知识传递的效果。Typora作为一款轻量级Markdown编辑器,凭借其即时渲染、简洁界面和强大的扩展功能,已成为众多开发者和技术作…...
Adafruit ST7735/ST7789 TFT驱动库详解:SPI接口与GFX分层架构
1. 项目概述 Adafruit ST7735 和 ST7789 库是一个面向嵌入式平台(尤其是 Arduino 生态)的轻量级图形驱动库,专为基于 Sitronix ST7735、ST7789 及 ST7796S 显示控制器的彩色 TFT 液晶模组设计。该库并非仅适配单一型号,而是通过统…...
Music Tag Web:智能音乐元数据管理工具解决音乐收藏混乱难题
Music Tag Web:智能音乐元数据管理工具解决音乐收藏混乱难题 【免费下载链接】music-tag-web 音乐标签编辑器,可编辑本地音乐文件的元数据(Editable local music file metadata.) 项目地址: https://gitcode.com/gh_mirrors/mu/…...
轻量级PDF阅读器SumatraPDF核心功能与效率提升指南
轻量级PDF阅读器SumatraPDF核心功能与效率提升指南 【免费下载链接】sumatrapdf SumatraPDF reader 项目地址: https://gitcode.com/gh_mirrors/su/sumatrapdf 在数字文档处理领域,速度与资源占用往往难以平衡。SumatraPDF以其独特的轻量级设计,重…...
使用Papanastasiou正交模型求解‘宾汉姆浆液在5mm开度裂隙中,注浆压力1MPa、塑...
使用Papanastasiou正交模型求解宾汉姆浆液单一裂隙注浆扩散范围 裂隙开度5mm,注浆管半径2.5cm,注浆压力1MPa 塑性粘度6PaS,屈服应力2Pa COMSOL注浆打开COMSOL新建一个流体模型,先别急着点确定——宾汉姆流体这种带屈服应力的家伙&…...
GIL已死?不,它正被绕过!:细粒度原子操作、RCU模式与Zero-Copy共享内存在Python 3.13中的性能压测全记录
第一章:Python无锁GIL环境下的并发模型性能调优指南Python标准解释器(CPython)受全局解释器锁(GIL)限制,导致多线程无法真正并行执行CPU密集型任务。然而,在无GIL环境(如PyPy的某些配…...
