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

【深度学习与大模型基础】第10章-期望、方差和协方差

一、期望

———————————————————————————————————————————

1. 期望是什么?

期望(Expectation)可以理解为“长期的平均值”。比如:

  • 掷骰子:一个6面骰子的点数是1~6,每个数字概率是1/6。
    期望值 = (1+2+3+4+5+6)/6 = 3.5
    意思是:如果你掷骰子无数次,平均每次的结果会趋近于3.5。

  • 程序员类比
    假设你每天写代码的bug数量是随机变量,长期平均每天产生2个bug,那么 bug数的期望就是2


2. 期望的公式

离散随机变量的期望公式:

E(X)=X_{1}P_{1}+X_{2}P_{3}+...+X_{K}P_{K}

即:每个值 × 它的概率,再全部加起来


3. 代码例子

例子1:计算骰子的期望
import numpy as np

# 骰子的可能取值和概率
values = np.array([1, 2, 3, 4, 5, 6])
probabilities = np.array([1/6] * 6)  # 每个概率1/6

# 期望 = sum(值 × 概率)
expectation = np.sum(values * probabilities)
print(expectation)  # 输出:3.5

4. 期望的现实意义

  • 决策依据:比如比较两个功能的预期收益,选期望更高的。

  • 风险评估:比如算法的平均时间复杂度就是期望的体现。

  • 机器学习:损失函数的期望最小化(如交叉熵)是训练模型的核心。


5. 注意

  • 期望≠必然结果!比如骰子期望是3.5,但永远掷不出3.5。

  • 期望可能是无限(如某些概率分布的期望不存在)。

———————————————————————————————————————————

二、方差

_____________________________________________________________________________

1. 方差是什么?

方差衡量的是数据的“离散程度”,即数据点与期望值(均值)的偏离程度。
通俗说:方差越大,数据越“散”;方差越小,数据越“集中”

  • 例子1
    两组程序员每天写的代码行数:

    • A组:[90, 100, 110](均值=100,波动小)→ 方差小

    • B组:[50, 100, 150](均值=100,波动大)→ 方差大

  • 例子2(程序员版)
    你的代码在测试环境跑10次,每次耗时可能是:

    • 低方差:[9ms, 10ms, 11ms](稳定)

    • 高方差:[1ms, 10ms, 20ms](波动大,性能不可靠)


2. 方差的公式

设随机变量 X的期望为 E(X),则方差 Var(X)为:

 Var(X)=E[(X-E(X))^{2}]

即:每个数据与均值的差的平方的平均


3. 代码例子

例子1:计算骰子的方差

import numpy as np

# 骰子的可能取值和概率
values = np.array([1, 2, 3, 4, 5, 6])
probabilities = np.array([1/6] * 6)  # 每个概率1/6

# 期望 = sum(值 × 概率)
expectation = np.sum(values * probabilities)
print(expectation)  # 输出:3.5

# 方差 = sum( (x_i - 期望)^2 × 概率 )
variance = np.sum((values - expectation) ** 2 * probabilities)
print(variance)  # 输出:2.916...
 

解释

  • 骰子的结果1~6分别与期望3.5的差是[-2.5, -1.5, -0.5, 0.5, 1.5, 2.5]

  • 平方后求和再平均,得到方差≈2.92(说明骰子点数波动较大)。


4. 方差的意义

  • 稳定性评估:比如API接口的响应时间方差越小越好。

  • 风险控制:在强化学习中,策略的方差高可能导致训练不稳定。

  • 特征选择:机器学习中,方差接近0的特征可能对模型无用(如常数列)。


5. 注意

  • 方差单位是原数据的平方(比如“秒²”),有时用标准差(方差的平方根)更直观。

  • 方差对异常值敏感(一个极端值会大幅拉高方差)。


 三、协方差

———————————————————————————————————————————

1. 协方差是什么?

协方差衡量的是两个随机变量的“协同变化关系”:

  • 协方差 > 0:一个变量增大,另一个也倾向于增大(正相关)。

  • 协方差 < 0:一个变量增大,另一个倾向于减小(负相关)。

  • 协方差 ≈ 0:两个变量无明显线性关系。

通俗比喻

  • 程序员版:

    • 正相关:代码量增加 → Bug数量也增加 😅

    • 负相关:测试覆盖率提高 → Bug数量减少 🎉

    • 无关系:咖啡饮用量和代码性能(可能毫无关联)☕→🤖


2. 协方差公式

对于两个随机变量 X 和 Y,协方差 Cov(X,Y) 定义为:

Cov(X,Y)=E[(X−E[X])(Y−E[Y])]Cov(X,Y)=E[(X−E[X])(Y−E[Y])]

即:两个变量分别与各自均值的偏差,乘积的平均值


3. 代码例子

例子1:程序员工作时长与Bug数量的关系

假设5天数据:

  • 每天工作时间(小时):[6, 8, 10, 12, 14]

  • 对应Bug数量:[3, 5, 7, 9, 11]

import numpy as np

# 数据
hours = np.array([6, 8, 10, 12, 14])  # X
bugs = np.array([3, 5, 7, 9, 11])     # Y

# 计算协方差
covariance = np.cov(hours, bugs, ddof=0)[0, 1]  # ddof=0表示总体协方差
print(covariance)  # 输出:10.0
 

解释

  • 协方差=10(正数),说明工作时长和Bug数量呈正相关(工作时间越长,Bug越多)。


例子2:代码覆盖率与Bug数量的关系

新数据:

  • 代码覆盖率(%):[70, 80, 90, 95, 99]

  • Bug数量:[10, 7, 5, 3, 1]

coverage = np.array([70, 80, 90, 95, 99])
bugs = np.array([10, 7, 5, 3, 1])

covariance = np.cov(coverage, bugs, ddof=0)[0, 1]
print(covariance)  # 输出:-32.16
 

解释

  • 协方差≈-32(负数),说明覆盖率越高,Bug越少(负相关)。


4. 协方差的意义

  • 特征相关性分析:在机器学习中,协方差矩阵用于筛选高相关性的特征。

  • 投资组合:在量化中,不同股票收益的协方差衡量风险分散效果。

  • 性能优化:比如分析CPU占用和内存使用的协方差,优化资源分配。


5. 注意

  • 协方差的数值大小受数据单位影响(比如“小时×Bug数”),难以直接比较。

  • 更常用的是相关系数(Pearson系数),它标准化协方差到[-1, 1]范围:

    corr = np.corrcoef(hours, bugs)[0, 1]  # 输出:1.0(完全线性正相关)

附:协方差矩阵

协方差矩阵是机器学习中常用的工具,例如PCA降维:

# 计算协方差矩阵
data = np.vstack([hours, bugs])
cov_matrix = np.cov(data, ddof=0)
print(cov_matrix)

输出:

 [[ 8.   -8.8 ]
 [-8.8   9.76]]


总结

  • 协方差告诉你两个变量如何共同变化。

  • 正/负协方差 → 正/负相关;接近0 → 无线性关系。

  • 代码中用np.cov()计算,但实际分析更常用相关系数。

相关文章:

  • 文献分享: DESSERT基于LSH的多向量检索(Part3.2.外部聚合的联合界)
  • lx2160 LSDK21.08 firmware 笔记 - 0.基于fip.bin 编译流程展开的 makefile 分析
  • DrissionPage详细教程
  • Django3 - 建站基础
  • AcWing 5969. 最大元素和
  • openapi + knife4j的使用
  • C++动态规划基础入门
  • Numpy和OpenCV库匹配查询,安装OpenCV ABI错误
  • 深度学习ResNet模型提取影响特征
  • 小米运维面试题及参考答案(80道面试题)
  • CST1016.基于Spring Boot+Vue高校竞赛管理系统
  • DOM解析XML:Java程序员的“乐高积木式“数据搭建
  • 国内AI大模型卷到什么程度了?
  • Linux虚拟内存详解
  • LLaMA 常见面试题
  • 探索加密期权波动率交易的系统化实践——动态对冲工具使用
  • 配置SecureCRT8.5的粘贴复制等快捷键
  • 代码生成工具explain的高级用法
  • 【随身wifi】青龙面板保姆级教程
  • ROS2---std_msgs基础消息包
  • 焦点访谈丨售假手段又翻新,警惕化肥“忽悠团”的坑农套路
  • 上海黄浦:新婚夫妻来登记可“摇号”定制无人机表演,每周三对
  • 美国前驻华大使携美大学生拜访中联部、外交部
  • 申伟强任上海申通地铁集团有限公司副总裁
  • 牛市早报|上市公司重大资产重组新规出炉,4月经济数据将公布
  • 解放日报:“感觉全世界人都在上海买买买”