清晨七点,你站在窗前看云。云层灰厚,你翻开手机里的天气预报APP——今明两天降雨概率70%,气温骤降八度。开发商、菜农、旅行团都在等这则预报,因为他们都要为“明天”提前做准备。在智能电网的世界里,也有一群“电力天气预报员”——他们预测的不是云和雨,而是明天的用电负荷和电价。这份“电力天气预报”一旦准确,发电厂就能提前备好燃料,交易员就能挂出合理的买卖报价,变电站就能从容安排检修。这就是电力市场预测:用历史数据推算未来的用电量与价格走向,让看不见的电,在错误发生前就被安排得明明白白。这篇教程将带你拆解一套完整的“电力天气预报系统”——从数据清洗、模型选型到风险预案,把每一个环节都讲透。
电力市场预测是 AI 在能源领域价值最直接的落地场景——掌握它,你就握住了智能电网数据驱动决策的核心技能,能参与从数据治理到模型部署的全链路工作。
可视化演示
电力市场预测涵盖电价与负荷两个核心维度。演示基于时序模型与深度学习的预测方案,以及天气与政策等外部变量融合、预测不确定性与风险管理策略。
本节配有交互动效(进入视口后自动加载,约 3KB)。
电价预测:时序波形外推 历史电价波形作为输入 时序模型外推未来电价 预测区间量化不确定性 y(t+1)=f(y(t),y(t-1),...) 为交易决策提供价格前瞻
预测方法概览
想象你经营着一家加油站,明天该进多少油?最简单的办法是“看去年同期”——去年这个周五卖了 5 吨,那今年大约也差不了太多。这就是时序统计方法(如移动平均、指数平滑),它假设历史会重演。但电力负荷显然没那么乖:气温骤变、工厂开工、电价波动都会打破规律。于是你开始问“什么因素影响了销量”,像随机森林这样的机器学习模型就登场了——它能同时把温度、星期、政策都当作线索来加权。
当数据量大到以年为单位、且内部包含复杂的先后依赖时,深度学习模型(如 LSTM)展现出独特优势:它像一位记忆惊人的老预报员,能记住三十天前那场寒潮的完整过程。而组合模型则像召集多位专家会商,各抒己见后投票得出最终结论——通常比任何单一模型都稳定。
所以,“天气预报会商”的本质是:不要迷信任何单一模型,让统计、机器、深度各路专家坐在一起,用数据说话分配话语权。电力市场预测的第一步,就是搭建这样一个多模型协同的框架。
- 预测符号$\hat{y}$ 表示模型给出的预测值,区别于真实值 $y$,一个小帽子代表“估计量”。
- 基模型集合$\hat{y}_i$ 是第 $i$ 个模型的单独预测,求和符号 $\sum_{i=1}^{n}$ 把 $n$ 个不同模型的预测全部纳入。
- 权重系数$w_i$ 是每个模型的信任权重,所有权重加起来等于 1,越准的模型分到越大的分量。
数据质量治理
假设你心血来潮想统计“全城奶茶店一天卖出多少杯”,结果发现三分之一的店铺没联网、还有几家把“杯”记成了“桶”。这样的台账,统计得再认真也是灾难。电力预测同理——历史负荷数据中,采集器断电会产生缺失值,检修记录可能混进异常尖峰,不同计量设备的时间戳还经常错位。数据质量治理,就是给预测模型准备一份干净的“台账”。
处理缺失值,最简单的是用前后时刻的平均值插补,更稳妥的做法是用相邻几天的同一时刻建模补齐。异常值则可以用“三倍标准差”规则识别——超过历史正常波动范围的数值标记出来人工复核。时间对齐把分散在不同系统的数据统一到同一时间粒度(比如 15 分钟一条)。而归一化则是把温度、负荷、电价这些量纲不同的特征压到同一尺度,避免“体重大的人说话声音大”——数值大的特征在训练中天然更强势。
清洁的台账是预测准确的前提。一座城市的负荷数据动辄上亿条,没有扎实的清洗流程,再精妙的模型也只会从垃圾中提炼垃圾。
- 均值中心化$x - \mu$ 把数据的中心从原始均值平移到 0,这样正负对称。
- 标准差缩放$\sigma$ 衡量数据的离散程度,除以它相当于把“单位”统一成“标准差个数”。
- 归一化结果$x'$ 是变换后的标准值,通常在 -3 到 3 之间波动,不再受原始量纲支配。
负荷预测
早晨八点,全城闹钟同时响起,电磁炉、电热水器、地铁闸机一齐通电,负荷曲线陡峭爬升;晚上十点,霓虹渐熄,曲线缓缓回落。这就像潮汐——太阳和月亮的引力决定了潮水涨落,而人类活动的节律决定了电力负荷的涨落。负荷预测的核心,就是吃透这些节律:每天有早中晚三个峰,每周一至周五高、周末低,每年冬夏两季因取暖和制冷达到年峰。
指数平滑是一种轻量武器:它对最近的观察值给予更高权重,像近视的人更信“眼前的事”。而面对“上周寒潮导致负荷整体走高,这周还会不会延续”这类长程问题,LSTM 网络更拿手——它内置的记忆门控能自动决定保留多少昨日信息、遗忘多少过时信息。对新能源渗透率高的电网来说,净负荷预测(总负荷减去新能源出力)已成为更实际的预测对象。
负荷预测是一场“永远在追赶又永远在超越”的游戏:没有人能精准预知明天,但一个把日、周、年周期和节假日修正都纳入的模型,已经能像老渔民看云识天气一样,在变化来临前提前收帆。
- 平滑系数$\alpha$ 在 0 到 1 之间取值,越接近 1,模型对最新观测越敏感。
- 最新观测$y_t$ 是此刻刚拿到的真实负荷,相当于预报员刚刚读到的温度计。
- 旧预测回调$\hat{y}_t$ 是上一轮给出的预测,$(1-\alpha)$ 是它的留存比例,旧信息不会瞬间作废。
电价预测
菜市场的白菜价格,晴天三毛、暴雨天八毛。电力现货市场如出一辙——当全城空调同时开启(需求暴增)而风电场恰好无风(供给骤降),电价会瞬间飙升到平日的几十倍。电价预测因此比负荷预测更刺激:它不仅取决于“大家会用多少电”,还取决于“发电厂愿意报什么价”。
峰谷价差是交易员最关注的规律:深夜用电低谷电价便宜,白天高峰电价昂贵。储能电站通过“低价充电、高价放电”赚取价差,这份套利收益全靠电价预测提供依据。但电价序列有强烈的波动聚集性——大幅波动后往往跟着更大的波动,想精确预测到每个时点的具体数值极难。于是工业界逐渐达成共识:与其赌一个点,不如预测一个区间,像天气预报报“降雨概率 70%”,比报“明天下午三点整下雨”在决策上更有用。
电价是电力市场的体温计。能预测它,交易团队就能决定何时买入、何时卖出、何时让储能装置冲放电——每一次精准判断都直接转化为真金白银。
- 需求拉动$\alpha \hat{D}_t$ 是预测用电需求对电价的拉动项,系数 $\alpha > 0$ 表示需求越旺价格越高。
- 供给压制$\beta \hat{S}_t$ 是预测供给对电价的压制项,系数 $\beta > 0$ 而前面是减号,供给越足价格越低。
- 外部冲击$\gamma Z_t$ 纳入天气骤变、机组跳闸等突发因素,$\gamma$ 衡量这类事件的冲击力度。
外部变量建模
老渔民看天打鱼,既看云图也看风袋,还记着“禁渔期”的规矩。电力预测的外部变量恰似这三样东西:气象数据、新能源出力、政策规则。零下五度的寒潮让取暖负荷激增;乌云压境让光伏出力断崖下跌;而一份“峰谷电价试点通知”可能瞬间改写次日全天的负荷曲线。
把这些外部信息接入模型,有两种经典姿势。第一种是“先分后合”:让模型分别吸收历史负荷和外部变量,在最后的全连接层把两路信息拼接,像厨师把主菜和配菜分别做好再装盘。第二种是“特征级融合”:把天气、政策直接做成输入特征塞进模型,让模型自己学习它们与负荷的交互关系,像火锅把所有食材一锅涮。无论哪种,都要注意时效性——天气预报本身也只有未来三天的可信度,外部变量太旧了反而混淆视听。
天气预报员从不只看气压计,电力预报员也从不敢只看负荷曲线。把天气和政策的变量装进模型,等于给预报员配上了雷达和卫星云图。
- 主模型$g(x_t; \theta_g)$ 是处理历史负荷序列 $x_t$ 的主模型,$\theta_g$ 是它的内部参数。
- 修正模型$h(z_t; \theta_h)$ 是专门消化外部变量 $z_t$(气温、风速、政策编码)的辅助模型,$\theta_h$ 是其参数。
- 加法融合两者相加得到最终预测 $\hat{y}_t$,意味着外部变量作为“增量修正”叠加在主趋势之上。
特征工程
同样的食材,给米其林主厨和给新手小白的成品截然不同。原始数据就是食材,特征工程就是刀工与调味。面对一长串负荷序列和一个温度值,直接扔进模型只是“生吃食材”;而把温度改造成“当日最高温”“过去三日均温”“体感温度”等衍生特征,就是“烹饪入味”。
历史窗口宽度是第一个要调试的旋钮:窗口太短,模型看不到上周同一天的节律;窗口太长,噪声信息反而稀释了规律。分时特征把一天 24 小时编码成“峰、平、谷”三档——工作日早上八点属于高峰时段,这一信息对模型理解负荷的意义远超精确的“8.0 小时”。面对几十个候选特征,用互信息(MI)度量每个特征与目标之间的关联强度,把相关性极低、纯属噪音的特征剔除,既不损失信息又减轻了训练负担。
特征工程没有惊天动地的算法,却常常是预测项目成败的分水岭。把原始数据打磨成模型爱吃的形态,比盲目堆砌复杂模型更见效。
- 联合概率$p(x,y)$ 是特征 X 取 x、目标 Y 取 y 同时出现的概率。
- 独立基准$p(x)p(y)$ 是假设 X 和 Y 互不相关时的概率乘积,作为参照物。
- 对数比值$\log \frac{p(x,y)}{p(x)p(y)}$ 当联合概率远大于独立假设时取正值,说明两者相关性强。
- 双重求和对 X 和 Y 的所有取值累加,得到整个分布层面的关联总量。
预测评估
考试结束,怎么评卷?只看总分太粗糙,要看失分分布。预测评估亦是如此:MAE(平均绝对误差)告诉你平均每次偏差了多少 MW;RMSE(均方根误差)会放大那些偶尔出现的离谱大偏差——就像老师特别在意学生的重大失误;MAPE(平均百分比误差)则把误差归一化成“预测偏差了几个百分点”,对不懂电力的业务领导最直观。
但所有指标都有一个致命前提:必须在样本外评估。用模型没见过的未来数据来测试,才是真考试;拿着训练过的题目做开卷测验,成绩毫无意义。时间序列的评估还有一个暗坑——随机划分训练集和测试集会导致数据泄漏(用未来的信息预测过去),正确的做法是按时间先后切分:前 80% 训练,后 20% 检验。
评估指标是指挥棒,定义了什么算“好预测”。对电网调度而言,RMSE 大意味着偶尔有惊吓时刻,比稳定的小偏差更危险——这直接决定了指标选择。
- 误差平方$(y_i - \hat{y}_i)^2$ 计算第 i 个样本的误差并平方,正负误差不再相互抵消。
- 平均值$\frac{1}{n} \sum_{i=1}^{n}$ 把所有样本的平方误差加起来除以样本数,得到平均平方误差(MSE)。
- 开方还原$\sqrt{\cdot}$ 把量纲还原回原始单位(MW),便于与 MAE 直接对比。
风险管理
再好的天气预报,也难免有“报晴却下雨”的尴尬。电力市场预测的不确定性来自四面八方:天气突变、机组跳闸、政策临时调整。聪明的预报员不追求消灭不确定性,而是学会与它共舞。置信区间就是这种智慧的产物——不是给出“明天电价 300 元/兆瓦时”的单点断言,而是给出“大概率在 250 到 350 元之间”的范围,并说清楚这个范围有多可信。
多情景分析是更高级的应对:分别假设“高温无风”“温和多雨”“寒潮来袭”三种天气情景,各跑一遍预测模型,提前为每种可能备好预案。滚动更新让模型每天吸收最新数据,像开车时不停修正方向盘。硬件层面,电网运营商会预留一部分应急备用容量,用经济成本换安全裕度。交易策略上,购电方可以购买长期合约锁定基础电价,只在现货市场做小比例投机——把不确定性锁在可控范围内。
预报的价值不在“报得准”,而在“报得有用”。把不确定性显式地摆上桌面——无论是宽区间还是多情景——决策者反而能在风险来临时从容不迫。
- 标准误$s$ 是历史预测误差的标准差,度量模型通常“偏多远”。
- 临界系数$z_{1-\alpha/2}$ 是标准正态分布的临界值,取 1.96 时对应 95% 置信水平——意味着真实值有 95% 概率落在这个区间内。
- 区间表示$\pm$ 把预测值上下各展开一段距离,形成以预测为中心的对称区间。
AI 应用场景
电力现货交易中心的日前电价预测
阶段:模型构建与预测
解决的问题:现货交易要求市场主体在日前报出未来 24 小时每条时段的购售电曲线,传统人工经验估算在电价剧烈波动时经常报出离谱价格,导致高买低卖。AI 模型融合历史电价、负荷预测、新能源出力预报和气象数据,给出逐时段电价区间预测,直接支撑报价策略。
具体案例:某省级电力交易中心引入 LSTM + 外部变量融合模型,接入了省内 2000 余座气象站的温度、风速、辐照度数据。在夏季高温期间,模型提前 24 小时预测出傍晚 18:00 的电价尖峰,交易团队据此调整购电曲线,单日节省购电成本约 120 万元。模型同时输出 90% 置信区间,当区间过宽时自动触发人工复核流程。
电网调度中心的负荷预测与机组组合优化
阶段:数据预处理与模型部署
解决的问题:调度中心要提前决定哪些发电机组开机、哪些停机,起停一次火电机组成本极高。负荷预测不准会直接导致调度方案冗余或不足。AI 负荷预测模型结合节假日修正和温度衍生特征,把次日 96 点(每 15 分钟一个点)的负荷预测误差从 5% 压到 3% 以内。
具体案例:某省级电网在迎峰度夏期间采用集成学习模型(XGBoost + LSTM 加权平均),实时接入 300 万只智能电表和数值天气预报数据。当预测到次日午间负荷将破历史极值时,调度系统提前 12 小时调整机组组合方案,额外调用两台抽水蓄能机组,避免了限电风险。
售电公司的用户级负荷预测与套餐设计
阶段:特征工程与业务决策
解决的问题:售电公司从批发市场买电再卖给终端用户,赚取购销价差。如果预测不出用户明天的用电量,就只能按保守估计采购,白白多付容量费。AI 模型对每个工商业用户建立个性化负荷画像,输出负荷区间预测,指导购电与套餐定价。
具体案例:某民营售电公司为 300 家工商业用户构建了“分行业负荷预测模型组”,对水泥厂、商场、数据中心分别训练专属模型。模型识别出某大型商场的周末负荷比工作日低 40% 的规律后,公司将商场用户调至“峰谷套利套餐”,用户电费下降 8%,公司购销差收益提升 15%。
Python 演示
import numpy as np def make_dataset(days=720, seed=42): """生成模拟负荷与温度数据:负荷=日夜周期+周周期+温度耦合+噪声""" rng = np.random.default_rng(seed) t = np.arange(days * 24, dtype=float) hour = t % 24 day_of_week = (t // 24) % 7 temp = 25 + 12 * np.sin(2 * np.pi * (t % 8760) / 8760) + rng.normal(0, 1, t.shape) load = (300.0 + 80.0 * np.sin(2 * np.pi * (hour - 8) / 24) + 40.0 * np.sin(2 * np.pi * (day_of_week - 4) / 7) + 3.0 * (temp - 25) + rng.normal(0, 4, t.shape)) return load, temp def build_features(load, temp, hist_len=7): """构造特征:过去7天负荷窗口 + 温度 + 是否工作日标记""" X, Y = [], [] for i in range(hist_len, len(load) - 24): window = load[i - hist_len:i] feat = list(window / 400.0) + [temp[i] / 40.0, float((i // 24) % 7 < 5)] X.append(feat) Y.append(load[i + 24] / 400.0) return np.array(X, dtype=np.float32), np.array(Y, dtype=np.float32) class DemandMLP: """两层全连接网络:输入特征 -> 隐藏层(ReLU) -> 预测值""" def __init__(self, n_in, n_hidden=16, lr=0.02): self.lr = lr self.w1 = np.random.randn(n_in, n_hidden) * 0.3 self.b1 = np.zeros((1, n_hidden)) self.w2 = np.random.randn(n_hidden, 1) * 0.3 self.b2 = np.zeros((1, 1)) def forward(self, x): self.z1 = np.maximum(x @ self.w1 + self.b1, 0) return self.z1 @ self.w2 + self.b2 def train_step(self, x, y): out = self.forward(x) err = out - y.reshape(-1, 1) dz2 = err / len(x) dw2 = self.z1.T @ dz2 db2 = np.sum(dz2, axis=0, keepdims=True) dz1 = (dz2 @ self.w2.T) * (self.z1 > 0) dw1 = x.T @ dz1 db1 = np.sum(dz1, axis=0, keepdims=True) self.w2 -= self.lr * dw2 self.b2 -= self.lr * db2 self.w1 -= self.lr * dw1 self.b1 -= self.lr * db1 return float(np.mean(err ** 2)) def main(): load, temp = make_dataset() X, y = build_features(load, temp) split = int(len(X) * 0.8) X_tr, X_te, y_tr, y_te = X[:split], X[split:], y[:split], y[split:] model = DemandMLP(n_in=X.shape[1]) for epoch in range(30): idx = np.random.default_rng(epoch).permutation(len(X_tr))[:64] loss = model.train_step(X_tr[idx], y_tr[idx]) if epoch % 10 == 0: print(f"epoch {epoch:2d} train_loss={loss:.4f}") pred = model.forward(X_te).ravel() * 400.0 actual = y_te * 400.0 rmse = float(np.sqrt(np.mean((pred - actual) ** 2))) mape = float(np.mean(np.abs(pred - actual) / actual) * 100) print(f"RMSE={rmse:.2f} MW, MAPE={mape:.2f}%") if __name__ == "__main__": main()
load = 300.0 + 80.0 * np.sin(...) + 3.0 * (temp - 25)模拟负荷数据,叠加了日周期、周周期和温度耦合,让特征与目标之间有真实可学的规律。feat = list(window / 400.0) + [temp[i] / 40.0, ...]把原始负荷窗口和温度缩放到 0~1 附近,避免数值范围差异主导训练。self.z1 = np.maximum(x @ self.w1 + self.b1, 0)ReLU 激活函数给网络引入非线性,让它能拟合温度骤升骤降这类非线性关系。dz2 = err / len(x)归一化梯度,防止大 Batch 导致梯度爆炸,相当于让每次参数更新的步伐不受样本数影响。idx = np.random.default_rng(epoch).permutation(...)[:64]Mini-batch 随机采样,每轮用 64 个样本近似全量梯度,加速收敛。pred = model.forward(X_te).ravel() * 400.0测试时把归一化预测值还原回真实量纲(MW),方便业务解读。
常见误区
误区预测模型的终极目标就是把 RMSE 降到 0,只要误差够小,单点预测就够用了,不需要什么区间。
正解电力市场的真实决策几乎都在面对不确定性——交易报价、机组启停、储能充放电都需要知道“最坏情况”和“大概范围”。单点预测误差再小也无法覆盖极端天气引发的暴涨暴跌,而置信区间天然把不确定性显性化。95% 置信区间拉宽,往往就是市场剧烈波动的预警信号,其决策价值远超把平均误差降低一点点。就像天气预报,报“80% 概率下暴雨”远比报“明天降雨量 20 毫米”更能指导你带伞。
为何常见:初学者习惯用考试思维理解模型,认为分数越高越好,忽略了真实业务里“概率化的表达”本身就是一种产品。
误区把数据集随机打乱,70% 训练 30% 测试,只要测试集表现好就说明模型靠谱。
正解时间序列数据具有强前后依赖,随机划分会让训练集混入“未来的数据”。模型相当于开了天眼——它见过测试时段的真实情况,评估结果自然虚高。正确做法是按时间顺序切分:前 80% 的数据训练,后 20% 严格模拟“未来”,再用滚动窗口反复验证。这种样本外测试才是对真实预测能力的严谨考核。
为何常见:很多教材以图像分类为例教随机划分,初学者照搬到时间序列上就踩了坑。
误区把能找到的所有数据都塞进模型——空气质量指数、股票行情、社交媒体热度——特征越多信息越全,预测一定更准。
正解无关特征会引入噪声,增加过拟合风险。互信息筛选和特征重要性排序都表明,真正有用的外部变量通常只有气象(温度、风速、辐照)、新能源出力和政策事件。多而杂的特征不仅拖慢训练,还可能让模型学到虚假的相关性——比如把某年夏天冰淇淋销量与负荷暴涨的相关当作因果关系,第二年就会闹笑话。特征是添加剂,适量提味,过量毁菜。
为何常见:人类直觉上容易把“信息多”等同于“知识多”,忽略了噪声信号的干扰。
误区MAPE 降到 2% 就是模型成功了,其他都不重要。
正解电力市场的损失函数是不对称的——负荷预测偏高 2% 和偏低 2% 的代价完全不同:高估导致多开机组浪费燃料,低估可能导致拉闸限电,后者社会影响远大于前者。业务上要为不同方向的误差设定不同的惩罚权重,甚至直接以“采购成本 + 风险损失”作为评估指标,而不是单纯盯着 MAPE 数字。这就像体检不仅要看血压值,还要结合年龄、家族史判断风险等级。
为何常见:技术人容易沉浸在指标数字优化中,缺少从业务成本角度审视模型的视角。
面试题
Q1. 智能电网负荷预测最核心的历史数据是:
- A.过去用电负荷序列← 正确答案
- B.员工考勤打卡记录
- C.办公用品采购清单
- D.公司年度财务报告
答案:A。负荷预测的核心输入是历史负荷序列本身,因为电力负荷具有明显的日周期、周周期和季节性规律,历史数据是捕捉这些规律的基础。考勤、采购、财务数据虽然可能隐含部分社会活动信息,但不直接反映用电行为,无法作为预测负荷的主数据源。
Q2. 关于预测置信区间,下列说法正确的是:
- A.揭示结果不确定性范围← 正确答案
- B.越宽说明模型越精确
- C.与历史误差毫无关联
- D.区间必定包含真实值
答案:A。置信区间用预测值 ± 误差范围的形式把不确定性量化表达。区间越宽说明模型把握越小而非越精确,区间宽度由历史误差的标准差决定(并非无关),且 95% 置信区间意味着真实值有 95% 概率落入其中,并非必定包含。
Q3. LSTM 网络中遗忘门的主要功能是:
- A.决定记忆信息保留程度← 正确答案
- B.决定输入数据的特征维度
- C.决定损失函数的权重系数
- D.决定学习率的数值大小
答案:A。遗忘门通过 sigmoid 输出 0~1 之间的数值,逐元素决定上一时刻的记忆状态保留多少、丢弃多少,是 LSTM 处理长程依赖的关键机制。输入特征维度由数据决定,损失函数权重和学习率是训练超参数,均与遗忘门无关。
Q4. 对负荷、温度、电价等特征做归一化的主要目的是:
- A.消除不同量纲对训练影响← 正确答案
- B.增加训练数据的总样本量
- C.减少模型的可训练参数数量
- D.替代特征筛选与降维过程
答案:A。负荷以 MW 为单位、温度以 ℃ 为单位、电价以元为单位,数值范围差异大。若不归一化,数值大的特征在梯度更新中天然占主导,模型训练不稳定。归一化不改变样本量和参数量,也不能替代特征筛选。
Q5. MAE(平均绝对误差)的数学含义是:
- A.预测误差绝对值的平均← 正确答案
- B.预测误差平方值的总和
- C.预测误差立方根的平均值
- D.预测值相对真实值的平均数
答案:A。MAE 把所有样本的预测误差取绝对值后求平均,反映模型平均偏多少(单位与原始数据一致)。它不对大误差额外惩罚,因此比 RMSE 更稳健。RMSE 才是误差平方后平均再开方,选项 B、C、D 描述均有偏差。
Q6. 下列哪些属于电力市场预测的有效外部变量?
- A.实时天气预报温度降水← 正确答案
- B.历史节假日安排表← 正确答案
- C.空调品牌用户满意度
- D.新能源发电实际功率← 正确答案
答案:ABD。温度降水直接驱动取暖和制冷负荷;节假日安排表对修正工作日与休息日的负荷差异至关重要;新能源发电功率是净负荷预测的关键输入。空调品牌满意度与用电负荷没有直接逻辑关联,属于无关特征,不应纳入模型。
Q7. 关于时序预测中的数据泄漏,正确理解是:
- A.用未来信息预测过去窗口← 正确答案
- B.用历史信息预测未来窗口
- C.用无关噪声替代真实特征
- D.用缺失值降低模型精度
答案:A。数据泄漏指训练过程中模型接触到了测试阶段才应该出现的信息。随机划分训练集和测试集时,训练集可能包含测试时段的未来数据,模型“提前看到答案”,评估结果虚高。正确做法是按时间顺序切分,保证训练集数据全部早于测试集。
Q8. 面对预测不确定性,正确的管理手段包括:
- A.滚动更新预测模型← 正确答案
- B.构建多情景分析预案← 正确答案
- C.忽略非典型极端天气
- D.配置应急备用容量← 正确答案
答案:ABD。滚动更新让模型不断吸收最新数据;多情景分析覆盖高温、寒潮、无风等典型极端场景;应急备用容量用经济成本换取安全裕度。非典型极端天气恰恰是不确定性的主要来源,忽略它等于放弃风险防控,是错误做法。
Q9. 因果关系对电力预测的真正价值在于:
- A.稳定场景下改善泛化能力← 正确答案
- B.能完全消除一切预测误差
- C.替代所有统计与时序方法
- D.使训练数据量自动翻倍
答案:A。理解了“温度→制冷负荷”这类真实因果链条,模型在未见过的温度组合下也能保持稳定,因为它学的是物理规律而非表面相关性。因果关系不能消除随机噪声带来的误差,也无法替代其他方法或凭空增加数据量。
Q10. 负荷序列中出现连续一小时缺失,最稳妥的处理是:
- A.前后时刻插补与建模← 正确答案
- B.直接删除全部有用数据
- C.用随机数替换缺失值
- D.将缺失统一标记为零
答案:A。一小时缺失在日周期显著的负荷数据中,可用前后时刻均值、相邻几天的同时刻数据等插补方法修复,保留序列完整性。直接删除会破坏时间连续性;随机数引入噪声;标记为零则人为制造了错误数值,都会误导模型学习。