电力负荷预测基线模型构建
数据口径
负荷预测的输入通常包含:历史负荷、气象(温度/湿度)、日历(工作日/节假日)。先把缺失与异常点按以下规则处理:
- 连续缺失超过 3 小时用分段线性插值;
- 负值或超物理上限的点直接置为缺失;
- 节假日当作独立类别而非简单剔除。
季节性朴素法
在建模之前,先用同比昨日同时刻作为朴素基线,它往往已经很强:
import numpy as np
import pandas as pd
def seasonal_naive(load: pd.Series, period: int = 24 * 7) -> pd.Series:
# 取上周同一时刻作为预测
return load.shift(period)
任何复杂模型的第一个 KPI 应当是:显著优于这个朴素基线。
LightGBM 基线
构造滞后特征与日历特征后,用 LightGBM 拟合:
import lightgbm as lgb
features = [f"lag_{k}" for k in (1, 2, 24, 24 * 7)]
cat_feats = ["hour", "weekday", "is_holiday"]
train = lgb.Dataset(X_train, y_train, categorical_feature=cat_feats)
params = {
"objective": "regression_l1",
"n_estimators": 800,
"learning_rate": 0.05,
"num_leaves": 64,
"device": "cpu",
}
model = lgb.train(params, train)
评估要点
- 同时报告 MAE / MAPE / 峰值误差;
- 关注日内曲线形状而非仅点误差;
- 保留一段最近的滚动窗口做外推测试。
构建好基线后,再考虑深度模型才有意义。
评论
评论系统待配置:请部署 Waline 服务并填写 walineServerURL。
详情见 README「Waline 配置步骤」。