概率论基础、条件概率、全概率公式、贝叶斯推断、大数定律、中心极限定理
随机试验是可以在相同条件下重复进行、结果事先不确定的观察过程。所有可能结果的集合称为样本空间 Ω。
| 概念 | 定义 | 示例 |
|---|---|---|
| 随机试验 | 可重复、结果不确定 | 抛硬币 |
| 样本空间 Ω | 所有可能结果的集合 | 正面,反面 |
| 样本点 ω | 单个可能结果 | 正面 |
| 事件 | 样本空间的子集 | 出现正面 |
概率函数 P 必须满足三条公理:
古典概型: Ω 有限且各样本点等概率 → P(A) = |A|/|Ω|
几何概型: Ω 为 ℝⁿ 中的可度量区域 → P(A) = m(A)/m(Ω)
P(A|B) = P(A∩B) / P(B),当 P(B) > 0
条件概率是理解贝叶斯方法、隐马尔可夫模型等的核心工具。
全概率公式: 若 B₁,...,Bₙ 是 Ω 的一个划分,则 P(A) = Σᵢ P(A|Bᵢ)P(Bᵢ)
贝叶斯公式: P(Bⱼ|A) = P(A|Bⱼ)P(Bⱼ) / Σᵢ P(A|Bᵢ)P(Bᵢ)
贝叶斯公式将"由因推果"转化为"由果推因",是朴素贝叶斯分类器的理论基础。
设 X₁,X₂,... 独立同分布,E[Xᵢ]=μ,则对任意 ε>0:lim(n→∞) P(|X̄ₙ - μ| < ε) = 1
直觉: 样本均值依概率收敛到期望值。抛1000次硬币,正面比例接近0.5。
P(lim(n→∞) X̄ₙ = μ) = 1
机器学习意义: 经验风险最小化的理论保证——训练误差趋向真实风险。
设 X₁,...,Xₙ 独立同分布,E[Xᵢ]=μ,Var[Xᵢ]=σ²,则 √n(X̄ₙ - μ)/σ →ᵈ N(0,1)
这是统计学最重要的定理之一:无论原始分布是什么,大量独立同分布随机变量之和的标准化形式趋向标准正态分布。
应用: 构建置信区间、假设检验中的Z检验、解释为什么正态分布在自然界中如此普遍
E[X] = Σ xₖpₖ(离散)或 E[X] = ∫xf(x)dx(连续)
性质: E[aX+bY] = aE[X]+bE[Y](线性性,不要求独立)
Var[X] = E[(X-μ)²] = E[X²] - (E[X])²
性质: Var[aX+b] = a²Var[X]
Cov(X,Y) = E[(X-μₓ)(Y-μᵧ)] = E[XY] - E[X]E[Y]
ρ(X,Y) = Cov(X,Y)/(σₓσᵧ)
import numpy as np
from scipy import stats
np.random.seed(42)
print("=== 大数定律验证 ===")
for n in [10, 100, 1000, 10000, 100000]:
samples = np.random.binomial(1, 0.5, n)
print("n={:>6}: P(正面)={:.4f}".format(n, samples.mean()))
print("\n=== 中心极限定理验证 ===")
sample_means = [np.random.exponential(2, 100).mean() for _ in range(10000)]
print("样本均值: mean={:.4f}, std={:.4f}".format(np.mean(sample_means), np.std(sample_means)))
print("理论值: mean=2.0, std={:.4f}".format(2/np.sqrt(100)))
print("\n=== 贝叶斯定理验证 ===")
p_disease = 0.001
p_pos_given_d = 0.99
p_neg_given_h = 0.99
p_pos = p_disease * p_pos_given_d + (1-p_disease) * (1-p_neg_given_h)
p_d_given_pos = p_disease * p_pos_given_d / p_pos
print("P(病|阳性) = {:.4f} = {:.2f}%".format(p_d_given_pos, p_d_given_pos*100))
print("\n=== 期望方差验证 ===")
n, p = 10, 0.3
s = np.random.binomial(n, p, 100000)
print("B({},{}) 均值={:.3f}(理论{}), 方差={:.3f}(理论{:.3f})".format(n, p, s.mean(), n*p, s.var(), n*p*(1-p)))
print("\n=== 协方差验证 ===")
X = np.random.normal(0, 1, 10000)
Y = 0.7*X + np.random.normal(0, 0.7, 10000)
print("Cov(X,Y)={:.4f}, Corr(X,Y)={:.4f}".format(np.cov(X,Y)[0,1], np.corrcoef(X,Y)[0,1]))
概率论在机器学习中扮演着三个核心角色:
| 分布 | 参数 | 均值 | 方差 | ML应用 |
|---|---|---|---|---|
| Bernoulli(p) | p∈[0,1] | p | p(1-p) | 二分类标签 |
| B(n,p) | n∈ℕ,p∈[0,1] | np | np(1-p) | A/B测试 |
| Poisson(λ) | λ>0 | λ | λ | 计数数据 |
| N(μ,σ²) | μ∈ℝ,σ>0 | μ | σ² | 噪声模型 |
| Exp(λ) | λ>0 | 1/λ | 1/λ² | 等待时间 |
| Beta(α,β) | α,β>0 | α/(α+β) | αβ/((α+β)²(α+β+1)) | 贝叶斯推断 |
统计思维不仅是理论工具,更是ML工程师的核心素养。以下是一些日常工作中的统计思维应用:
在推荐系统中,贝叶斯平滑是处理冷启动问题的经典方法。例如,一个商品只有3个评分(5,5,4),均值4.67可能不可靠。贝叶斯平滑公式:smoothed = (n*mean + m*global_mean)/(n+m),其中m控制先验的强度。当m=10时,这个商品的平滑评分变为(3*4.67+10*4.0)/13=4.15,更接近全局均值,更稳健。
VC维是衡量模型复杂度的理论工具。VC维越高,模型能拟合的函数越复杂,但也越容易过拟合。结构风险最小化(SRM)在经验风险和模型复杂度之间取得平衡:SRM = 经验风险 + 复杂度惩罚。这解释了为什么正则化能防止过拟合——它在做结构风险最小化。