协方差矩阵

协方差矩阵是一个对称矩阵,用来描述多个随机变量之间的协方差关系。协方差反映了两个随机变量如何共同变化的趋势,协方差矩阵将这种关系扩展到了多维数据。

1. 定义

假设有一个 n 维随机向量 X = [X_1, X_2, \dots, X_n]^T,协方差矩阵 Σ 定义为:

\Sigma = \begin{bmatrix} \text{Var}(X_1) & \text{Cov}(X_1, X_2) & \cdots & \text{Cov}(X_1, X_n) \\ \text{Cov}(X_2, X_1) & \text{Var}(X_2) & \cdots & \text{Cov}(X_2, X_n) \\ \vdots & \vdots & \ddots & \vdots \\ \text{Cov}(X_n, X_1) & \text{Cov}(X_n, X_2) & \cdots & \text{Var}(X_n) \end{bmatrix}

其中:

  • \text{Var}(X_i) = \mathbb{E}[(X_i - \mu_i)^2]是变量 X_i 的方差;
  • \text{Cov}(X_i, X_j) = \mathbb{E}[(X_i - \mu_i)(X_j - \mu_j)] 是 X_i 和 X_j 的协方差;
  • \mu_i 是 X_i ​ 的期望。

协方差矩阵中的每个元素 \Sigma_{ij} 表示第 i 随机变量和第 j 个随机变量之间的协方差。

2. 协方差的取值范围

  1. \text{Cov}(X_i, X_j) > 0:表示 X_iX_j 正相关,两个变量趋于同向变化。

  2. \text{Cov}(X_i, X_j) < 0:表示 X_iX_j 负相关,两个变量趋于反向变化。

  3. \text{Cov}(X_i, X_j) = 0:表示 X_i 和 X_j 不相关。

协方差矩阵的对角线上的值是每个变量的方差。

3. 计算协方差矩阵的步骤:

给定一个数据矩阵 X(每行代表一个样本,每列代表一个特征),计算协方差矩阵的步骤如下:

  1. 数据中心化: 对每一列(即每个特征),计算其均值,然后减去该列的均值,使得数据矩阵的每一列的均值为零。

    X = [x_1, x_2, \dots, x_n] 是 n×m 的数据矩阵,其中每一列 x_i​ 对应一个特征。对每个特征 x_i,计算均值 \mu_i​,然后通过:

    X_{\text{centered}} = X - \mu

    其中 μ 是每列的均值向量。

  2. 计算协方差矩阵: 协方差矩阵 Σ 由以下公式计算:

    \Sigma = \frac{1}{n-1} X_{\text{centered}}^T X_{\text{centered}}

    其中,X_{\text{centered}}^TX_{\text{centered}} 的转置,n-1是自由度的调整因子(对于样本协方差矩阵)。


协方差矩阵的作用

1. 描述数据分布的特性
  • 协方差矩阵描述了多维数据中每对特征之间的线性相关性(通过协方差)。
  • 对角线上的方差描述了各特征的分布范围。
  • 协方差矩阵可以反映数据的变化模式,例如是否有某些特征具有强相关性。
2. 数据降维
  • 在主成分分析(PCA)中,协方差矩阵用于特征提取:
    • 通过对协方差矩阵进行特征值分解,可以找出数据分布方差最大的方向(主成分)。
    • PCA利用协方差矩阵将高维数据投影到低维空间,保留尽可能多的信息。
3. 特征相关性分析
  • 协方差矩阵可以帮助判断数据集中哪些特征具有强相关性(高协方差),哪些特征相对独立(低协方差)。
  • 这对于特征选择和特征工程非常有用。
4. 多元概率分布
  • 在多元高斯分布中,协方差矩阵描述了不同随机变量的分布和相关性,影响分布的形状和方向。
5. 信号处理与图像分析
  • 协方差矩阵在图像处理、信号分析中广泛应用,例如在光谱数据分析中用于分离独立成分。

协方差矩阵的局限性

  1. 线性相关性

    • 协方差仅能衡量线性相关性,无法反映非线性相关性。
    • 如果变量间具有复杂的非线性关系,协方差矩阵可能无法完全描述。
  2. 单位依赖性

    • 协方差的值受到特征单位的影响。例如,米和厘米的协方差会有数量级的差异。
    • 为避免这种影响,常使用相关系数矩阵(对协方差矩阵进行标准化)。

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

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

相关文章

spring boot controller放到那一层

在 Spring Boot 应用程序中&#xff0c;Controller 层通常被放置在应用程序的 表示层&#xff08;Presentation Layer&#xff09; 或 用户界面层&#xff08;UI Layer&#xff09; 中。Controller 层的主要职责是处理用户的 HTTP 请求&#xff0c;并将请求转发给服务层进行业务…

计算机网络之---局域网

什么叫局域网 局域网&#xff08;LAN&#xff0c;Local Area Network&#xff09; 是指在一个相对较小的区域内&#xff0c;如家庭、办公室、学校、企业等&#xff0c;连接多个计算机和设备的网络。局域网的特点是覆盖范围小、传输速度快、构建成本较低。 局域网的主要特点&…

Spring Boot + Jasypt 实现application.yml 属性加密的快速示例

Jasypt(Java Simplified Encryption)是一个专为Java应用程序设计的开源加密库,旨在简化加密和解密流程,保护敏感数据如密码、API密钥等。 jasypt-spring-boot-starter允许开发者在Spring Boot应用中轻松地实现加密和解密功能。 本篇介绍使用 jasypt-spring-boot-starter 以…

HarmonyOS开发:传参方式

一、父子组件传参 1、父传子&#xff08;Prop方式&#xff09; 父组件代码 Entry Component struct ParentComponent {State parentMessage: string Hello from Parent;build() {Column() {ChildComponent({ message: this.parentMessage });}} } 子组件代码 Component s…

deepin系统下开放指定端口

一、安装ufw 若已安装则跳过 sudo apt-get install ufw二、查看防火墙状态 sudo ufw status三、打开防火墙 sudo ufw enable四、开放端口 sudo ufw allow 6654/tcp五、windows下测试远程端口 telnet 192.168.1.22 6654六、关闭防火墙 sudo ufw disable附上ufw的全部命令…

微信小程序中使用 TypeScript 定义组件时,Component 函数确实需要多个类型参数

在微信小程序中使用 TypeScript 定义组件时&#xff0c;Component 函数确实需要多个类型参数&#xff0c;而不仅仅是一个。这些参数包括&#xff1a; Properties&#xff1a;组件的属性&#xff08;props&#xff09;类型。 Data&#xff1a;组件的内部数据类型。 Methods&am…

我在广州学 Mysql 系列——与索引相关的练习题

ℹ️大家好&#xff0c;我是练小杰&#xff0c;今天星期二啦&#xff0c;还有三天就是星期五了&#xff0c;为了美好生活奋斗吧朋友们&#xff01; 本文将学习MYSQL中数据表内容的索引相关练习题目~~ 复习&#xff1a;&#x1f449;【索引详解】 数据库专栏&#x1f449;【数据…

通过 route 或 ip route 管理Linux主机路由

目录 一&#xff1a;route 使用说明1、查看路由信息2、删除指定路由3、增加指定路由 二&#xff1a;ip route 使用说明1、查看主机路由2、新增主机路由3、删除主机路由 通过route 或者ip route修改Linux主机路由后属于临时生效&#xff0c;系统重启后就恢复默认值了&#xff0c…

SASS 简化代码开发的基本方法

概要 本文以一个按钮开发的实例&#xff0c;介绍如何使用SASS来简化CSS代码开发的。 代码和实现 我们希望通过CSS开发下面的代码样式&#xff0c;从样式来看&#xff0c;每个按钮的基本样式相同&#xff0c;就是颜色不同。 如果按照传统的方式开发&#xff0c;需要开发btn &…

我用Ai学Android Jetpack Compose之Button

答案来自 通义千问&#xff0c;代码同样需要到Android Studio里实践&#xff0c;才能学会。完整工程代码见文末。 我要学Button&#xff0c;麻烦介绍一下 当然可以&#xff01;Button 是 Jetpack Compose 中用于创建可点击按钮的 Composable 函数。它提供了丰富的配置选项来定…

flutter 专题三十六 Flutter动态化框架Thresh

一、前言 移动端技术栈自诞生以来&#xff0c;其双端开发成本和发布效率一直广受诟病。为了解决这些问题&#xff0c;前端跨端技术一直在不断尝试&#xff0c;希望能一次开发、多端运行并且能做到快速发布。期间经历了多个技术发展阶段。 第一阶段&#xff1a;以H5为代表&…

NodeJs 箭头函数:`()=>{}` 和 `()=>()` 的区别与使用场景

在 JavaScript 中&#xff0c;箭头函数&#xff08;Arrow Function&#xff09;是一种简洁的函数写法&#xff0c;它不仅可以减少代码量&#xff0c;还能避免 this 绑定的问题。然而&#xff0c;箭头函数有两种常见的写法&#xff1a;()>{} 和 ()>()。这两种写法虽然看起…

缓存-Redis-缓存更新策略-主动更新策略-Cache Aside Pattern(全面 易理解)

**Cache-Aside Pattern&#xff08;旁路缓存模式&#xff09;**是一种广泛应用于缓存管理的设计模式&#xff0c;尤其在使用 Redis 作为缓存层时尤为常见。该模式通过在应用程序与缓存之间引入一个旁路&#xff0c;确保数据的一致性和高效性。本文将在之前讨论的 Redis 主动更新…

python制作翻译软件

本文复刻此教程&#xff1a;制作属于自己的翻译软件-很简单【Python】_哔哩哔哩_bilibili 一、明确需求&#xff08;以搜狗翻译为例&#xff09; &#xff08;1&#xff09;网址&#xff1a;https://fanyi.sogou.com/text &#xff08;2&#xff09; 数据&#xff1a;翻译内容…

【C++】20.二叉搜索树

文章目录 1. 二叉搜索树的概念2. 二叉搜索树的性能分析3. 二叉搜索树的插入4. 二叉搜索树的查找5. 二叉搜索树的删除6. 二叉搜索树的实现代码7. 二叉搜索树key和key/value使用场景7.1 key搜索场景&#xff1a;7.2 key/value搜索场景&#xff1a;7.3 主要区别&#xff1a;7.4 ke…

vue3探索——使用ref与$parent实现父子组件间通信

在vue3中&#xff0c;可以使用vue3的API defineExpose()函数结合ref或者$parent&#xff0c;实现父子组件数据的传递。 子组件向父组件传递数据defineExpose()和ref 子组件&#xff1a;通过defineExpose() 函数&#xff0c;向外暴露响应式数据或者方法 // src/components/son…

Opencv图片的旋转和图片的模板匹配

图片的旋转和图片的模板匹配 目录 图片的旋转和图片的模板匹配1 图片的旋转1.1 numpy旋转1.1.1 函数1.1.2 测试 1.2 opencv旋转1.2.1 函数1.2.2 测试 2 图片的模板匹配2.1 函数2.2 实际测试 1 图片的旋转 1.1 numpy旋转 1.1.1 函数 np.rot90(kl,k1)&#xff0c;k1逆时针旋转9…

重温设计模式--13、策略模式

策略模式介绍 文章目录 策略模式介绍C 代码示例 策略模式是一种行为设计模式&#xff0c;它允许在运行时选择算法的行为。该模式将算法的定义和使用分离开来&#xff0c;使得算法可以独立于使用它的客户端而变化&#xff0c;提高了代码的灵活性和可维护性。 其主要包含以下几个…

计算机基础知识复习1.5

标记-清除算法&#xff1a;标记-清除分为标记 和清除 两个阶段&#xff0c;首先通过可达性分析&#xff0c;标记出所有需要回收的对象&#xff0c;然后统一回收所有被标记的对象。 复制算法&#xff1a;为了解决碎片空间的问题&#xff0c;出现了复制算法 将内存分成两块&…

SQL Server 中的覆盖索引

1. 覆盖索引的工作原理 当查询只涉及索引中已经包含的列时&#xff0c;SQL Server 可以直接使用索引来返回查询结果&#xff0c;而不需要回表到数据页去检索实际的数据行。覆盖索引因此能够显著减少 I/O 操作&#xff0c;提高查询效率。 例如&#xff0c;假设有一个表 Employ…