期望、方差、协方差与相关系数

一句话概述

期望、方差、协方差和相关系数是描述随机变量"中心"、"离散"、"关联"的四大数字特征。如果说分布是随机变量的"全身照",那这些数字特征就是"身高体重三围"——简洁但信息量丰富。它们在 AI 中无处不在:损失函数是期望的估计,正则化控制方差,PCA 降维依赖协方差矩阵,而特征选择则基于相关系数。

💡 核心要点:①期望是随机变量的"加权平均",是分布的中心位置,也是大数定律的收敛目标 ②方差衡量随机变量围绕期望的离散程度,标准差是其平方根,具有与原变量相同的量纲 ③协方差刻画两个随机变量"同增同减"还是"一增一减"的线性关联,是协方差矩阵和 PCA 的基础 ④相关系数将协方差标准化到 [-1, 1],消除了量纲影响,便于比较不同变量对之间的线性关联强度

教学与演示

一、期望——加权平均

是什么(定义):期望(Expected Value)E[X] 是随机变量 X 的"概率加权平均"。离散:E[X] = Σ x·P(X=x);连续:E[X] = ∫ x·f(x)dx。期望是随机变量"长期平均"的理论值。

大白话 期望就是"如果这件事重复很多很多次,平均结果会是多少"。掷骰子的期望是 3.5——虽然你永远掷不出 3.5 这个点数,但掷一万次的平均点数会非常接近 3.5。期望不一定是"可能的结果",而是"平均意义上的结果"。

为什么(原理):期望的线性性质是最强大的工具:E[aX + bY] = aE[X] + bE[Y],无论 X 和 Y 是否独立!这个性质让复杂的期望计算变得简单。期望还是大数定律的收敛目标——样本均值以概率收敛到期望。在决策论中,期望值最大化是最优决策准则。

怎么做(实现)

import numpy as np

# 演示期望的线性性质
np.random.seed(42)  # 固定随机种子

# 两个不独立的随机变量
X = np.random.normal(10, 2, 100000)  # N(10, 4)
Y = X * 0.5 + np.random.normal(0, 1, 100000)  # Y与X相关:Y = 0.5X + noise

# 验证期望的线性性质
print(f"E[X] = {np.mean(X):.4f}(理论=10)")  # X的期望
print(f"E[Y] = {np.mean(Y):.4f}(理论≈5)")  # Y的期望

# E[3X + 2Y] = 3E[X] + 2E[Y]
linear_combo = 3 * X + 2 * Y  # 线性组合
print(f"E[3X+2Y] = {np.mean(linear_combo):.4f}")  # 直接计算
print(f"3E[X]+2E[Y] = {3*np.mean(X) + 2*np.mean(Y):.4f}")  # 线性性质计算
print(f"二者相等!(即便X和Y不独立)")  # 线性性质成立

# 一个有趣的反直觉例子:期望不一定等于"可能的结果"
dice = np.random.randint(1, 7, 100000)  # 掷骰子
print(f"\n掷骰子的期望: {np.mean(dice):.4f}(理论=3.5)")  # 期望
print("注意:期望3.5不是一个可能的点数!")  # 反直觉

# 大数定律的演示
sample_sizes = [10, 100, 1000, 10000, 100000]  # 不同样本量
for n in sample_sizes:
    sample_mean = np.mean(np.random.exponential(scale=2.0, size=n))  # 指数分布采样
    print(f"n={n:6d}: 样本均值={sample_mean:.4f}(理论期望=2.0)")  # 样本量增大→收敛到期望

什么用(应用):在 AI 中,损失函数(如交叉熵、MSE)的期望就是"总体风险"(population risk),我们通过最小化训练集上的经验风险(empirical risk)来近似。强化学习中的状态价值函数 V(s) 和动作价值函数 Q(s,a) 都是期望的定义。Batch Normalization 中的均值就是期望的估计。

哪些坑(缺点):期望不一定存在(如柯西分布没有期望),也不一定是"典型值"(如收入分布中,期望被少数高收入者拉高,远大于中位数)。在决策时,只看期望可能忽略风险——"期望收益 100 万但可能亏 1000 万"和"期望收益 100 万且最多亏 1 万"是完全不同的投资。这就是为什么还需要方差。

二、方差——离散程度

是什么(定义):方差(Variance)Var(X) = E[(X-E[X])²] = E[X²] - (E[X])²,衡量随机变量围绕期望的离散程度。标准差 σ = √Var(X),具有与 X 相同的量纲。

大白话 方差就是"数据有多散"。两个班级的平均分都是 70 分,但 A 班大家分数都差不多(方差小),B 班有人考 100 有人考 30(方差大)。方差大意味着不确定性大、风险大。标准差是方差的平方根,因为方差是"平方"的,量纲不一致(比如身高的方差单位是 cm²),标准差才和原始数据同单位。

为什么(原理):方差公式 E[(X-μ)²] 反映了"平均偏离程度"。平方处罚让远离均值的点贡献更大。方差的性质:Var(aX+b) = a²Var(X)(加常数不改变方差,乘常数方差变为 a² 倍)。对于独立随机变量,Var(X+Y) = Var(X) + Var(Y)。

怎么做(实现)

import numpy as np

# 演示方差:相同均值,不同方差
np.random.seed(42)  # 固定种子
n = 10000  # 样本量

# 三个分布,均值都约为0,但方差不同
data_small_var = np.random.normal(0, 1, n)  # 方差=1
data_medium_var = np.random.normal(0, 3, n)  # 方差=9
data_large_var = np.random.normal(0, 10, n)  # 方差=100

print("均值相同(≈0),方差不同:")
print(f"小方差: 均值={np.mean(data_small_var):.4f}, 方差={np.var(data_small_var):.4f}")  # 方差≈1
print(f"中方差: 均值={np.mean(data_medium_var):.4f}, 方差={np.var(data_medium_var):.4f}")  # 方差≈9
print(f"大方差: 均值={np.mean(data_large_var):.4f}, 方差={np.var(data_large_var):.4f}")  # 方差≈100

# 验证方差性质:Var(aX+b) = a²Var(X)
a, b = 3, 5  # 变换参数
transformed = a * data_small_var + b  # 线性变换
print(f"\nVar(aX+b) = a²Var(X):")
print(f"Var(X) = {np.var(data_small_var):.4f}")  # 原始方差
print(f"Var(aX+b) = {np.var(transformed):.4f}")  # 变换后方差
print(f"a²Var(X) = {a**2 * np.var(data_small_var):.4f}")  # 理论值

# 独立随机变量之和的方差
x1 = np.random.normal(5, 2, n)  # N(5, 4)
x2 = np.random.normal(3, 3, n)  # N(3, 9)
sum_var = np.var(x1 + x2)  # 和的实际方差
theo_sum_var = np.var(x1) + np.var(x2)  # 理论:Var(X1)+Var(X2)
print(f"\n独立变量之和的方差:")
print(f"Var(X1+X2) = {sum_var:.4f}")  # 实际方差
print(f"Var(X1)+Var(X2) = {theo_sum_var:.4f}")  # 理论方差(应相等,因为独立)
期望与方差\(E[X] = \sum x P(X=x), \quad \text{Var}(X) = E[(X-E[X])^2] = E[X^2] - (E[X])^2\)

什么用(应用):偏差-方差分解是理解模型泛化性能的核心框架。高偏差意味着欠拟合(模型太简单),高方差意味着过拟合(模型太复杂)。正则化(L1/L2)本质上是通过约束权重来控制方差。模型集成(Bagging、随机森林)通过平均多个模型来降低方差。Batch Normalization 的白化操作也涉及方差标准化。

哪些坑(缺点):方差对异常值敏感(因为是平方惩罚),一个极端值就能显著拉大方差。这时可用 MAD(中位数绝对偏差)或 IQR(四分位距)作为更稳健的离散度度量。另外,方差只描述"平均离散程度",不描述分布的形状,两个完全不同的分布可以有相同的均值和方差。

三、协方差——两个变量的协同变化

是什么(定义):协方差(Covariance)Cov(X,Y) = E[(X-E[X])(Y-E[Y])] = E[XY] - E[X]E[Y],衡量两个随机变量"同向变化"还是"反向变化"的趋势。

大白话 协方差就像"默契度":X 变大的时候 Y 也变大(一同涨),协方差为正;X 变大 Y 变小(一个涨一个跌),协方差为负。协方差为 0 表示两者没有线性关联。但注意:协方差的大小受量纲影响——如果把身高从"米"换成"厘米",协方差会放大 10000 倍!

为什么(原理):协方差是线性关联的度量。公式 (X-μ_X)(Y-μ_Y) 的正负决定了乘积的符号:同向偏离均值时乘积为正,反向偏离时乘积为负。独立必导致协方差为 0,但协方差为 0 不一定独立(可能有非线性关联,如 Y=X²)。协方差矩阵 Σ = Cov(X, X) 是多元统计的基础。

怎么做(实现)

import numpy as np

# 演示协方差:正相关、负相关、不相关
np.random.seed(42)  # 固定种子
n = 10000  # 样本量

# 正相关:X和Y同向变化
X_pos = np.random.normal(0, 1, n)  # 标准正态
Y_pos = 0.8 * X_pos + np.random.normal(0, 0.5, n)  # Y = 0.8X + noise
cov_pos = np.cov(X_pos, Y_pos)[0, 1]  # 计算协方差
print(f"正相关协方差: {cov_pos:.4f}")  # 应为正

# 负相关:X和Y反向变化
X_neg = np.random.normal(0, 1, n)  # 标准正态
Y_neg = -0.8 * X_neg + np.random.normal(0, 0.5, n)  # Y = -0.8X + noise
cov_neg = np.cov(X_neg, Y_neg)[0, 1]  # 计算协方差
print(f"负相关协方差: {cov_neg:.4f}")  # 应为负

# 不相关(独立)
X_ind = np.random.normal(0, 1, n)  # 标准正态
Y_ind = np.random.normal(0, 1, n)  # 独立标准正态
cov_ind = np.cov(X_ind, Y_ind)[0, 1]  # 计算协方差
print(f"独立协方差: {cov_ind:.4f}(应接近0)")  # 应接近0

# 演示协方差矩阵
data = np.column_stack([X_pos, Y_pos])  # 合并为二维数据
cov_matrix = np.cov(data, rowvar=False)  # 计算协方差矩阵
print(f"\n协方差矩阵:")
print(f"[[{cov_matrix[0,0]:.4f}, {cov_matrix[0,1]:.4f}]")  # Var(X), Cov(X,Y)
print(f" [{cov_matrix[1,0]:.4f}, {cov_matrix[1,1]:.4f}]]")  # Cov(Y,X), Var(Y)
print("对角线是方差,非对角线是协方差(对称矩阵)")  # 对称矩阵
协方差与协方差矩阵\(\text{Cov}(X,Y) = E[(X-E[X])(Y-E[Y])], \quad \Sigma = \begin{bmatrix} \text{Var}(X) & \text{Cov}(X,Y) \\ \text{Cov}(Y,X) & \text{Var}(Y) \end{bmatrix}\)

什么用(应用):协方差矩阵是 PCA(主成分分析)的核心——PCA 对协方差矩阵做特征分解,找到方差最大的方向(主成分)。在金融中,协方差矩阵用于投资组合优化(马科维茨模型)。在卡尔曼滤波中,协方差矩阵描述状态估计的不确定性。在多元正态分布中,协方差矩阵决定分布的形状和方向。

哪些坑(缺点):协方差的值受量纲影响,无法直接比较不同变量对的关联强度。另外,协方差只能捕捉线性关联——如果 X 和 Y 的关系是 Y = X²,它们的协方差可能为 0(对称分布时),但显然不是独立的。这时需要互信息(Mutual Information)等更一般的关联度量。

四、相关系数——标准化的协方差

是什么(定义):皮尔逊相关系数(Pearson Correlation Coefficient)ρ(X,Y) = Cov(X,Y) / (σ_X · σ_Y),取值范围 [-1, 1]。ρ=1 表示完全正线性相关,ρ=-1 表示完全负线性相关,ρ=0 表示无线性相关。

大白话 相关系数就是"把协方差标准化到 [-1, 1] 之间"。协方差告诉你"关系是正还是负",但数值大小没法直接用(受量纲影响)。相关系数消除了量纲,让你可以公平比较——身高和体重的关系、温度和销量的关系,都可以用相关系数比较。

为什么(原理):相关系数本质上是"标准化后"的协方差。如果先对 X 和 Y 做标准化(减均值除标准差),得到 Z_X = (X-μ_X)/σ_X, Z_Y = (Y-μ_Y)/σ_Y,那么 Cov(Z_X, Z_Y) = ρ(X,Y)。这样就把所有变量拉到同一尺度上比较。|ρ| 越接近 1,线性关系越强;|ρ| 越接近 0,线性关系越弱。

怎么做(实现)

import numpy as np

# 演示相关系数:不同强度、不同方向的线性关系
np.random.seed(42)  # 固定种子
n = 10000  # 样本量

# 生成不同相关系数的数据
correlations = {}  # 存储不同相关强度的数据
for rho in [0.0, 0.3, 0.6, 0.9, -0.6]:
    X = np.random.normal(0, 1, n)  # 标准正态
    noise = np.random.normal(0, np.sqrt(1 - rho**2), n)  # 噪声,控制相关系数
    Y = rho * X + noise  # Y = ρX + noise
    correlations[f"ρ={rho}"] = np.corrcoef(X, Y)[0, 1]  # 计算实际相关系数

for label, est_rho in correlations.items():
    print(f"{label} → 实际计算: {est_rho:.4f}")  # 验证理论值

# 演示:相关系数不受量纲影响
height_cm = np.random.normal(170, 10, n)  # 身高cm
weight_kg = 0.6 * height_cm + np.random.normal(0, 8, n)  # 体重kg(与身高相关)

# 变换单位
height_m = height_cm / 100  # 身高换成米
weight_g = weight_kg * 1000  # 体重换成克

rho_original = np.corrcoef(height_cm, weight_kg)[0, 1]  # 原始单位
rho_changed = np.corrcoef(height_m, weight_g)[0, 1]  # 变换单位后
print(f"\n相关系数不受量纲影响:")
print(f"身高cm vs 体重kg: ρ = {rho_original:.4f}")  # 原始
print(f"身高m  vs 体重g:  ρ = {rho_changed:.4f}")  # 变换后(应相等)
print("相关系数不变!这就是标准化的威力")  # 量纲不变性
相关系数\(\rho(X,Y) = \frac{\text{Cov}(X,Y)}{\sigma_X \sigma_Y}, \quad -1 \leq \rho \leq 1\)

什么用(应用):特征选择中,删除与其他特征高度相关(|ρ|>0.9)的冗余特征,减少多重共线性。在探索性数据分析(EDA)中,相关系数矩阵热力图是理解变量间关系的标准工具。推荐系统中,皮尔逊相关系数用于计算用户或物品间的相似度。在金融风控中,相关系数衡量不同资产的风险联动。

哪些坑(缺点):相关系数有几个著名的陷阱:①只衡量线性关系——Y=X² 的相关系数可能为 0,但显然强相关;②对异常值敏感——一个离群点就能把相关系数从 0.9 拉到 0.2;③安斯库姆四重奏(Anscombe's Quartet)——四组数据有完全相同的均值、方差、相关系数,但可视化后完全不同。因此,永远不要只看相关系数,一定要画散点图!

五、AI中的协方差——PCA的基础

是什么(定义):主成分分析(PCA)通过对数据协方差矩阵进行特征分解,找到数据方差最大的方向(主成分),实现降维。本质上,PCA 是在寻找一个线性变换,使得变换后的各维度协方差为 0(去相关),且方差递减(信息浓缩)。

大白话 你有 100 个特征,但很多特征其实说的是同一件事(比如"身高"和"腿长"高度相关)。PCA 就是帮你找到"最重要的几个方向",把 100 维压缩到 10 维,同时尽量保留信息。它的核心操作就是:算协方差矩阵 → 找特征值和特征向量 → 取最大的几个特征向量做投影。

为什么(原理):协方差矩阵的特征向量代表"数据变化的主要方向",特征值代表"该方向上的方差大小"。PCA 选择最大的 k 个特征值对应的特征向量作为投影方向,将原始数据投影到 k 维子空间。这等价于最小化重构误差(MSE)。PCA 假设数据是零均值的,通常需要先做中心化。

怎么做(实现)

import numpy as np

# 生成二维相关数据,演示PCA
np.random.seed(42)  # 固定种子
n = 1000  # 样本量

# 生成线性相关的二维数据
X_raw = np.random.normal(0, 3, n)  # 第一维
Y_raw = 2 * X_raw + np.random.normal(0, 1, n)  # 第二维与第一维强相关
data = np.column_stack([X_raw, Y_raw])  # 合并为二维数据

# 1. 中心化(减均值)
data_centered = data - np.mean(data, axis=0)  # 零均值化

# 2. 计算协方差矩阵
cov_matrix = np.cov(data_centered, rowvar=False)  # 协方差矩阵

# 3. 特征分解
eigenvalues, eigenvectors = np.linalg.eigh(cov_matrix)  # 特征值分解
# 按特征值降序排列
idx = np.argsort(eigenvalues)[::-1]  # 降序索引
eigenvalues = eigenvalues[idx]  # 排序后的特征值
eigenvectors = eigenvectors[:, idx]  # 排序后的特征向量

print("协方差矩阵的特征值(方差大小):")
print(f"λ1 = {eigenvalues[0]:.4f}(主成分方向方差)")  # 第一主成分方差
print(f"λ2 = {eigenvalues[1]:.4f}(第二主成分方差)")  # 第二主成分方差
print(f"方差解释比例: {eigenvalues[0]/np.sum(eigenvalues):.2%}")  # 第一主成分解释比例

# 4. 投影到主成分
pc1 = data_centered @ eigenvectors[:, 0]  # 投影到第一主成分
pc2 = data_centered @ eigenvectors[:, 1]  # 投影到第二主成分

# 验证:PCA变换后协方差为0(去相关)
pca_data = np.column_stack([pc1, pc2])  # 合并PCA坐标
pca_cov = np.cov(pca_data, rowvar=False)  # PCA后的协方差矩阵
print(f"\nPCA变换后的协方差矩阵(应接近对角矩阵):")
print(f"[[{pca_cov[0,0]:.4f}, {pca_cov[0,1]:.4f}]")  # 对角线上是方差
print(f" [{pca_cov[1,0]:.4f}, {pca_cov[1,1]:.4f}]]")  # 非对角线约为0(去相关)
print("非对角线接近0,说明PCA成功去除了相关性!")  # 去相关成功

什么用(应用):PCA 是最经典的线性降维方法,用于数据可视化(降到 2D/3D)、特征压缩(减少计算量)、去噪(丢弃小特征值对应分量)。在图像处理中,PCA 用于 Eigenfaces(特征脸)人脸识别。在 NLP 中,PCA 曾用于词向量降维。在推荐系统中,SVD 用于矩阵分解协同过滤。

哪些坑(缺点):PCA 是线性降维,无法处理非线性结构(需用 t-SNE、UMAP 等非线性方法)。PCA 对尺度敏感——如果某个特征的方差天然很大(如收入 vs 年龄),PCA 会优先保留该特征,所以在做 PCA 之前通常需要标准化。PCA 的可解释性差——主成分是原始特征的线性组合,往往难以赋予物理含义。

概念关系图谱

概念核心含义与AI的关系关联概念
期望 E[X]概率加权平均,分布的"中心"损失函数的总体期望、Q值函数方差、大数定律
方差 Var(X)偏离均值的平方平均,离散程度偏差-方差分解、正则化、模型集成期望、标准差、协方差
标准差 σ方差的平方根,同量纲标准化、BatchNorm、异常检测方差、正态分布
协方差 Cov(X,Y)线性协同变化趋势PCA、协方差矩阵、白化相关系数、方差
相关系数 ρ标准化后的协方差 [-1,1]特征选择、相似度、共线性诊断协方差、标准化
协方差矩阵 Σ多元方差-协方差矩阵PCA、多元正态分布、卡尔曼滤波协方差、特征值
偏差-方差分解MSE = Bias² + Variance + Noise模型选择、过拟合/欠拟合诊断方差、期望
PCA协方差矩阵特征分解降维数据压缩、去噪、可视化协方差矩阵、特征值
线性性质E[aX+bY]=aE[X]+bE[Y]损失函数推导、梯度计算期望、独立性
标准化Z=(X-μ)/σ → 均值0方差1BatchNorm、数据预处理期望、标准差

重点答疑

Q1: 期望为什么叫"期望"?它真的是我们"期望"的值吗?

这个名字来源于赌博——比如一个赌局有 50% 概率赢 100 元,50% 概率输 50 元,期望收益 = 0.5×100 + 0.5×(-50) = 25 元。这个 25 元就是你"期望"的平均收益。但现实生活中,期望不一定是"期待的结果"——比如收入期望是 10 万,但你可能只赚 5 万(因为收入分布右偏,少数富人的高收入拉高了期望)。所以期望更准确的叫法是"概率加权平均"。

Q2: 协方差为 0 就一定独立吗?为什么?

不!协方差只衡量线性关系。经典反例:X ~ N(0,1),Y = X²。Cov(X, Y) = E[X·X²] - E[X]·E[X²] = E[X³] - 0 = 0(正态分布的三阶矩为 0)。但 X 和 Y 显然不是独立的——知道了 X 就完全知道了 Y。所以协方差为 0 只是"无线性相关",不能推断"独立"。独立 ⇒ 协方差为 0,但反过来不成立。

Q3: PCA 为什么用协方差矩阵而不是相关系数矩阵?

都可以用,但结果不同。用协方差矩阵时,PCA 会被方差大的特征"主导"(比如收入方差天然比年龄方差大,PCA 会优先保留收入方向)。用相关系数矩阵(等价于先标准化再做 PCA)时,所有特征被平等对待,每个特征方差都是 1。实践中,如果特征量纲差异大,建议先标准化(等价于用相关系数矩阵做 PCA)。如果特征量纲相同且希望保留方差信息,直接使用协方差矩阵。

章节单词汇总

英文音标术语/释义
Expected Value/ɪkˈspektɪd ˈvæljuː/期望值,概率加权平均
Variance/ˈveriəns/方差,离散程度的度量
Standard Deviation/ˈstændərd ˌdiːviˈeɪʃən/标准差,方差的平方根
Covariance/koʊˈveriəns/协方差,两个变量的线性关联度量
Correlation Coefficient/ˌkɔːrəˈleɪʃən ˌkoʊɪˈfɪʃənt/相关系数,标准化的协方差 [-1,1]
Covariance Matrix/koʊˈveriəns ˈmeɪtrɪks/协方差矩阵,多元方差-协方差矩阵
Bias-Variance Decomposition/ˈbaɪəs ˈveriəns ˌdiːkɒmpəˈzɪʃən/偏差-方差分解,MSE的分解
PCA/piː siː eɪ/主成分分析,线性降维方法
Eigenvalue/ˈaɪɡənˌvæljuː/特征值,PCA中主成分的方差
Eigenvector/ˈaɪɡənˌvektər/特征向量,PCA中主成分的方向
Multicollinearity/ˌmʌltikoʊˌlɪniˈærəti/多重共线性,特征间高度相关
Whitening/ˈwaɪtənɪŋ/白化,使协方差矩阵变为单位矩阵
Anscombe's Quartet/ˈænskəmz kwɔːrˈtet/安斯库姆四重奏,相关系数的可视化警示
Standardization (Z-score)/ˌstændərdaɪˈzeɪʃən/标准化,将数据转换为均值0标准差1

面试练习

Q1 [单选] 如果 E[X]=2, E[Y]=3,且 X 和 Y 不独立,则 E[2X+3Y] 等于?

  • A. 无法确定(因为不独立)
  • B. 13
  • C. 需要独立条件
  • D. 10
解答:E[2X+3Y] = 2E[X] + 3E[Y] = 4+9 = 13。期望的线性性质不要求独立性!这是期望最强大的性质,无论 X 和 Y 是什么关系都成立。

Q2 [单选] 方差 Var(X) = 4,则 Var(3X+5) 等于?

  • A. 12
  • B. 17
  • C. 36
  • D. 41
解答:Var(3X+5) = 3²Var(X) = 9×4 = 36。加常数不改变方差(平移不改变离散程度),乘常数后方差变为原来的常数平方倍。

Q3 [多选] 关于协方差和相关系数,正确的有?

  • A. 相关系数是标准化的协方差,取值范围 [-1,1]
  • B. 协方差为 0 不一定意味着独立
  • C. 相关系数为 0 一定意味着独立
  • D. 协方差受量纲影响,相关系数不受量纲影响
解答:A 正确。B 正确,协方差为 0 只是无线性相关。C 错误,与 B 同理,ρ=0 只说明无线性相关,可能有非线性关系。D 正确,相关系数消除了量纲影响。

Q4 [单选] 在偏差-方差分解中,增加模型复杂度通常会导致?

  • A. 偏差和方差都减小
  • B. 偏差减小,方差增大
  • C. 偏差增大,方差减小
  • D. 偏差和方差都增大
解答:增加模型复杂度 → 模型更灵活 → 能更好地拟合训练数据 → 偏差减小。但灵活也意味着对训练数据的微小变化敏感 → 方差增大。这就是偏差-方差权衡。

Q5 [多选] 关于 PCA,以下哪些是正确的?

  • A. PCA 通过对协方差矩阵特征分解来实现
  • B. PCA 变换后的各维度是不相关的(协方差为 0)
  • C. PCA 可以处理非线性数据结构
  • D. PCA 在做降维前通常需要先对数据做中心化(零均值)
解答:A 正确,PCA 的核心就是协方差矩阵的特征分解。B 正确,PCA 变换后协方差矩阵为对角矩阵,各维度去相关。C 错误,PCA 是线性降维,非线性需用 t-SNE、UMAP 等。D 正确,中心化是 PCA 的必要预处理步骤。

Q6 [单选] 两个随机变量 X 和 Y,如果 Y = X² 且 X 关于 0 对称分布,则相关系数 ρ 最接近?

  • A. 1
  • B. -1
  • C. 0
  • D. 0.5
解答:如果 X 关于 0 对称(如标准正态分布),Cov(X, X²) = E[X³] - E[X]E[X²] = 0 - 0 = 0,所以 ρ ≈ 0。但 X 和 Y 显然不是独立的——这是相关系数不能反映非线性关系的经典例子。

Q7 [单选] 假设特征 A 和特征 B 的相关系数为 0.95,在特征选择中通常应该?

  • A. 同时保留两个特征
  • B. 删除其中一个特征
  • C. 删除两个特征
  • D. 对两个特征取平均后保留
解答:|ρ|=0.95 表示两个特征几乎在说同一件事,高度冗余。保留两个会导致多重共线性问题(模型不稳定、系数估计不可靠)。通常删除其中一个即可。

Q8 [多选] 以下哪些是方差的性质?

  • A. Var(X+b) = Var(X)(平移不变性)
  • B. Var(aX) = a²Var(X)
  • C. 独立时 Var(X+Y) = Var(X) + Var(Y)
  • D. Var(X) 总是小于 E[X²]
解答:A、B、C 都是方差的基本性质。D 错误,Var(X) = E[X²] - (E[X])²,所以 Var(X) ≤ E[X²],当 E[X]=0 时 Var(X) = E[X²],所以"总是小于"不成立(可能等于)。

Q9 [单选] 协方差矩阵是什么样的矩阵?

  • A. 非对称矩阵
  • B. 对称半正定矩阵
  • C. 非对称正定矩阵
  • D. 对角矩阵
解答:Cov(X_i, X_j) = Cov(X_j, X_i),所以协方差矩阵是对称的。对任意向量 v,v^T Σ v = Var(v^T X) ≥ 0,所以是半正定的。PCA 的特征分解正是利用了这两个性质。

Q10 [单选] 下面的哪个场景中,期望的解释最可能产生误导?

  • A. 掷骰子的期望点数 3.5
  • B. 抛公平硬币的期望正面次数
  • C. 一个国家的平均收入(存在极端高收入者)
  • D. 多次测量同一长度取平均值
解答:在收入分布中,少数高收入者会大幅拉高期望(均值),使得均值远大于中位数。此时"平均收入"并不能很好地代表"典型收入",中位数是更好的中心度量。这就是为什么期望虽然是"最佳中心"(最小化 MSE),但不一定是最"典型"的。