数学基础回顾:概率论与数理统计与线性代数

各位同学,欢迎来到负荷预测算法的数学基础课。说实话,很多搞算法的朋友一听到数学就头疼。我当年刚入行时也一样,觉得「我写代码就行了,数学差不多得了」。直到有一次,我做的负荷预测模型在夏天连续三天误差超过15%,被领导叫去喝茶……嗯,从那以后我老老实实把数学基础补了一遍。

今天咱们聊三个核心板块:概率统计、线性代数、微积分。它们就像算法的三根支柱,缺一不可。我会结合自己在电力负荷预测项目中的实际踩坑经历来讲,保证你听完能直接用。

核心观点:数学不是用来考试的,是用来理解算法为什么work、为什么不work的。

负荷预测算法数学基础 概率论与数理统计 线性代数 微积分 均值 · 方差 · 正态分布 矩阵运算 · 特征值 导数 · 梯度 负荷预测算法中的应用

一、概率论与数理统计基础

先聊聊概率统计。你想想看,负荷预测本质上就是在「猜」未来。既然是猜,就得知道猜得准不准、误差有多大。这就是概率统计干的事。

1. 均值与方差

均值就是一组数据的「中心」。比如过去30天的日最高负荷,算个均值,这就是你预测的基准线。

# 均值计算
import numpy as np
loads = [120, 135, 128, 142, 138]  # 单位:MW
mean_load = np.mean(loads)
print(f"平均负荷: {mean_load:.1f} MW")

方差衡量数据波动有多大。我做过一个项目,某工业园区的负荷方差特别大,后来发现是因为里面有个炼钢厂,一开工就猛涨。如果不考虑方差,直接用均值预测,误差能让你怀疑人生。

我的经验:在负荷预测中,我习惯先算方差。方差大的时段,我会单独建模型,而不是用全局模型硬套。

2. 正态分布

正态分布,也叫高斯分布。为什么它这么重要?因为大量自然现象都服从它。负荷预测的误差,在大多数情况下也近似正态分布。

正态分布的概率密度函数长这样:

f(x) = (1 / (σ * √(2π))) * exp(-(x - μ)² / (2σ²))

其中 μ 是均值,σ 是标准差。68%的数据落在 μ±σ 范围内,95%落在 μ±2σ 范围内。这个「3σ原则」我经常用来判断预测结果是否异常。

注意:不是所有数据都服从正态分布!我曾经遇到过一个地区的负荷数据呈双峰分布——白天一个峰,晚上一个峰。这时候硬套正态分布就会出大问题。

二、线性代数基础

线性代数在负荷预测里无处不在。说白了,你的模型参数、输入特征,最后都变成矩阵在算。

1. 矩阵运算

假设你有 n 个样本,每个样本有 m 个特征(比如温度、湿度、星期几),那你的输入就是一个 n×m 的矩阵。模型参数是一个 m×1 的向量。预测结果就是矩阵乘向量。

import numpy as np
# 假设3个样本,每个样本2个特征
X = np.array([[30, 0.6],   # 温度30°C,湿度60%
              [28, 0.7],
              [35, 0.5]])
# 模型参数:温度权重0.5,湿度权重-10
w = np.array([0.5, -10])
# 预测负荷
y_pred = X @ w  # 矩阵乘法
print(y_pred)   # 输出:[9. 7. 12.5]

你看,就这么简单。但实际项目中,特征可能有几十上百个,矩阵维度就上去了。我记得有一次处理一个200维的特征矩阵,内存差点爆了——后来才学会用稀疏矩阵。

2. 特征值与特征向量

特征值这个概念,很多同学觉得抽象。我换个说法:特征值告诉你一个矩阵「最重要的方向」是什么。

在负荷预测中,特征值分解常用于主成分分析(PCA)。比如你有100个特征,但很多特征之间高度相关。通过PCA,你可以找到最重要的几个「综合特征」,把维度降下来。

核心理解:特征值越大,对应的特征向量方向上的数据方差越大,信息量越多。我一般保留特征值之和占总量90%以上的那些主成分。

三、微积分基础

微积分是优化算法的灵魂。没有它,模型就没法「学习」。

1. 导数

导数衡量函数在某一点的变化率。在机器学习里,我们用它来回答一个问题:参数往哪个方向调,能让损失函数下降最快?

举个例子,假设损失函数是 L(w) = (w - 3)²,它的导数是 L'(w) = 2(w - 3)。当 w=5 时,导数为4,说明w需要减小才能让L下降。这就是梯度下降的基本思想。

# 手动实现梯度下降
w = 5.0
learning_rate = 0.1
for i in range(10):
    grad = 2 * (w - 3)  # 导数
    w = w - learning_rate * grad
    print(f"第{i+1}步: w={w:.3f}")

2. 梯度

梯度是导数的推广——当参数不止一个时,梯度就是每个方向上的偏导数组成的向量。它指向函数增长最快的方向。所以我们沿着梯度的反方向更新参数,就能找到最小值。

避坑指南:我曾经把学习率设得太大,结果模型参数来回震荡,就是不收敛。后来我学会了用学习率衰减——刚开始大步走,接近最优解时小步慢走。

在负荷预测中,梯度下降用于训练几乎所有模型——线性回归、神经网络、甚至一些树模型的后处理。你想想看,没有微积分,这些模型都转不起来。

四、三者如何协同工作

这三个数学工具不是孤立的。我举个例子你就明白了:

  1. 概率统计告诉你数据长什么样——均值、方差、分布类型
  2. 线性代数帮你把数据组织成矩阵,高效计算
  3. 微积分帮你找到最优的模型参数

比如做一个简单的线性回归负荷预测:先用概率统计分析历史负荷的分布,用线性代数把特征和参数组织成矩阵运算,再用梯度下降(微积分)求解最优参数。三者缺一不可。

总结一下:数学不是负担,是你的工具箱。每个工具都有它的用途。我在项目中遇到的大部分问题,归根结底都是数学基础没打牢。把今天这三个板块吃透,后面学具体算法会轻松很多。


公众号:蓝海资料掘金营,微信deep3321