协方差矩阵及其计算方法

协方差矩阵(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=1nxki

2. 中心化数据

对于每个特征,减去该特征的均值,得到中心化的数据:

x k i ′ = x k i − x i ˉ x_{ki}^\prime = x_{ki} - \bar{x_i} xki=xkixiˉ

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=n11k=1n(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= 12.522.532.542.523.533.543.553.5 = 1.50.50.51.51.50.50.51.5

第三步:计算协方差矩阵

接下来,我们计算协方差矩阵的元素。由于数据集中有 2 个特征,我们需要计算以下协方差:

  1. 协方差 σ 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]=351.6667

  2. 协方差 σ 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]=351.6667

  3. 协方差 σ 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]=351.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)等技术中,以帮助理解数据的内在结构。通过计算协方差矩阵,我们可以更好地了解特征之间的相关性和数据的分布特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙学习生态应用开发能力全景图-三方库(3)

鸿蒙生态三方库,是在鸿蒙系统上可重复使用的软件库,可帮助开发者重用技术资产,快速开发鸿蒙生态应用、元服务,提升开发效率。根据不同的开发语言分为两种:  ArkTS/TS/JS 语言的三方库,可直接导入并使用。…

OpenAI官方发布:利用ChatGPT提升写作的12条指南

近日,OpenAI官方发布了学生如何利用ChatGPT提升写作的12条指南,值得深入研究学习。 在如今AIGC应用爆发增长的时间点,如何充分利用生成式AI工具,如ChatGPT,有效切快速的提升写作和学习能力,成为每个学生、…

【数据库系列】Spring Data Neo4j Cypher 查询使用进阶指南

在 Neo4j 中,Cypher 查询语句并不像 MySQL 的 mapper XML 那样直接支持拆分和组织。然而,你可以使用一些策略来管理和重用 Cypher 查询,使其更易于维护和组织。以下是几种方法: 1. 使用 Spring Data Neo4j 的 Repository 接口 通…

.net core开发windows程序在国产麒麟操作系统中运行

.net core自从3.1版本号后,完全是一个独立的开源的多平台开发组件,目前国产化是趋势,不少项目需要开发国产如Kylin操作系统中运行的程序,无论是Web程序还是桌面程序,都有这样的需求。 首先,可明确的的.net…

基于 Python 的 Bilibili 评论分析与可视化

一、项目概述 本项目利用 Python 对 Bilibili (哔哩哔哩)平台上的视频评论数据进行爬取、清洗和分析,并通过可视化展示数据的主要特征。我们通过以下几个步骤实现了这一过程: 数据爬取:使用 Bilibili 提供的 API 获取…

如何禁用VMware虚拟网卡

安装VMWare虚拟机之后,会在本地创建两个虚拟网卡VMware Network Adapter VMnet1和VMware Network Adapter VMnet8,如果使用iNode客户端联网时会进行禁用多网卡检测,否则无法联网。因此,问题根源就在于虚拟网卡未禁用。 1、网络和…

ElasticSearch备考 -- Cross cluster replication(CCR)

一、题目 操作在cluster1(local)中操作索引task,复制到cluster2(remote)中 二、思考 CCR 我们可以对标MySQL 理解为为主从,后者备份。主节点负责写入数据,从/备节点负责同步时主节点的数据。 …

界面控件DevExpress WPF中文教程:TreeList视图及创建分配视图

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

基于Java的药店管理系统

药店管理系统 一:基本介绍开发环境管理员功能模块图系统功能部分数据库表设计 二:部分系统页面展示登录界面管理员管理进货信息界面管理员管理药品信息界面管理员管理员工界面管理员管理供应商信息界面管理员管理销售信息界面员工对信息进行管理员工对销…

Qwen2-VL:发票数据提取、视频聊天和使用 PDF 的多模态 RAG 的实践指南

概述 随着人工智能技术的迅猛发展,多模态模型在各类应用场景中展现出强大的潜力和广泛的适用性。Qwen2-VL 作为最新一代的多模态大模型,融合了视觉与语言处理能力,旨在提升复杂任务的执行效率和准确性。本指南聚焦于 Qwen2-VL 在三个关键领域…

探索Python的HTTP利器:Requests库的神秘面纱

文章目录 **探索Python的HTTP利器:Requests库的神秘面纱**一、背景:为何选择Requests库?二、Requests库是什么?三、如何安装Requests库?四、Requests库的五个简单函数使用方法1. GET请求2. POST请求3. PUT请求4. DELET…

信号保存和信号处理

目录 信号保存中重要的概念 内核中信号的保存 对sigset_t操作的函数 对block,pendding,handler三张表的操作 sigpromask ​编辑 sigpending 是否有sighandler函数呢? 案例 信号处理 操作系统是如何运行的? 硬件中断 …

基于HTTP编写ping操作

基于HTTP编写ping操作 前言 在上一集我们就完成了创建MockServer的任务,那么我们就可以正式开始进行网络的通讯,那么我们今天就来基于HTTP来做一个客户端ping服务端的请求,服务端返回pong的响应。 需求分析 基于HTTP,实现ping…

机器学习 贝叶斯公式

这是条件概率的计算公式 𝑃(𝐴|𝐵)𝑃(B|A)𝑃(𝐴)/𝑃(𝐵) 全概率公式 𝑃(𝐵)𝑃(𝐵|𝐴)𝑃(𝐴)&am…

【工具插件类教学】在 Unity 中使用 iTextSharp 实现 PDF 文件生成与导出

目录 一、准备工作 1. 安装 iTextSharp 2. 准备资源文件 二、创建 ExportPDFTool 脚本 1、初始化 PDF 文件,设置字体 2、添加标题、内容、表格和图片 三、使用工具类生成 PDF 四、源码地址 在 Unity 项目中,我们有时会需要生成带有文本、表格和图片的 PDF 文件,以便…

Java 责任链模式 减少 if else 实战案例

一、场景介绍 假设有这么一个朝廷,它有 县-->府-->省-->朝廷,四级行政机构。 这四级行政机构的关系如下表: 1、县-->府-->省-->朝廷:有些地方有完整的四级行政机构。 2、县-->府-->朝廷:直…

vue项目使用eslint+prettier管理项目格式化

代码格式化、规范化说明 使用eslintprettier进行格式化,vscode中需要安装插件ESLint、Prettier - Code formatter,且格式化程序选择为后者(vue文件、js文件要分别设置) 对于eslint规则,在格式化时不会全部自动调整&…

Leetcode 整数转罗马数字

这段代码的算法思想是基于罗马数字的减法规则,将整数转换为罗马数字的字符串表示。下面是详细的解释: 算法步骤: 定义数值和符号对应关系:代码中定义了两个数组:values 和 symbols。values 数组包含了罗马数字的数值&…

web——sqliabs靶场——第六关——报错注入和布尔盲注

这一关还是使用报错注入和布尔盲注 一. 判断是否有sql注入 二. 判断注入的类型 是双引号的注入类型。 3.报错注入的检测 可以使用sql报错注入 4.查看库名 5. 查看表名 6.查看字段名 7. 查具体字段的内容 结束 布尔盲注 结束

Spring Cloud Eureka 服务注册与发现

Spring Cloud Eureka 服务注册与发现 一、Eureka基础知识概述1.Eureka两个核心组件2.Eureka 服务注册与发现 二、Eureka单机搭建三、Eureka集群搭建四、心跳续约五、Eureka自我保护机制 一、Eureka基础知识概述 1.Eureka两个核心组件 Eureka Server :服务注册中心…