power consumption
1. 实验背景与目标
1.1. 实验背景
随着能源消耗的快速增长和智能电网的普及,准确预测电力需求已成为能源管理系统的核心任务。用电量预测不仅有助于电网运营商进行负荷调度和发电计划,还能为消费者提供节能建议,实现供需平衡和节能减排。本实验基于实际用电量数据集,探索多变量时间序列数据中的用电模式,旨在建立能够同时预测具体用电量数值和识别用电等级的智能模型。
1.2. 实验目标
- 回归分析:建立准确的用电量数值预测模型,预测未来时间点的总用电量
- 分类分析:将用电量分为低、中、高三个等级,构建分类识别模型
- 特征分析:识别影响用电量的关键因素,分析特征间的相互关系
- 模型对比:比较同一数据集上回归与分类任务的性能差异
- 方法验证:验证完全自主实现的机器学习算法的有效性
2. 数据集描述
2.1. 数据来源
本实验使用公开的用电量数据集,包含多个气象传感器采集的环境数据和三个区域的实际用电量记录。数据以15分钟为间隔采集,覆盖多个季节和时间段,具有良好的时间连续性和数据完整性。
2.2. 数据规格
- 总样本数:52,416条记录
- 原始特征数:9个(包括时间戳和8个数值特征)
- 时间跨度:以15分钟为间隔,覆盖多个月份,反映不同时间尺度的用电模式
- 数据格式:结构化CSV文件,包含数值型和文本型数据
2.3. 特征说明
| 特征名称 | 数据类型 | 物理意义 | 单位/说明 |
|---|---|---|---|
| datetime | 文本 | 采集时间 | 年/月/日 时:分 |
| temperature | 数值 | 环境温度 | 摄氏度 |
| humidity | 数值 | 相对湿度 | 百分比 |
| wind_speed | 数值 | 风速 | m/s |
| gen_diffuse | 数值 | 总扩散流 | 物理量 |
| diffuse | 数值 | 扩散流 | 物理量 |
| zone1_power | 数值 | 区域1用电量 | kW |
| zone2_power | 数值 | 区域2用电量 | kW |
| zone3_power | 数值 | 区域3用电量 | kW |
3. 数据预处理与标准化
3.1. 时间特征编码
从原始datetime字符串中提取丰富的时序特征:
- 基础时间特征:小时、分钟、日、月、年
- 周期性特征:星期几(0-6,周六到周五)
- 时间分段:深夜(0-6)、上午(6-12)、下午(12-18)、晚上(18-24)
- 日期类型:是否周末(二值特征)
3.2. 目标变量构造
- 回归目标:计算三个区域用电量之和作为总用电量,统计得到总用电量范围36,785.04~134,208.15 kW,均值71,222.89 kW,标准差17,143.14 kW。
- 分类目标:使用分位数法(33%和67%)将总用电量划分为三个等级,分布均匀:
- 等级1(低):用电量 ≤ 33%分位数,占33.0%(17,297个样本)
- 等级2(中):33%分位数 < 用电量 ≤ 67%分位数,占34.0%(17,822个样本)
- 等级3(高):用电量 > 67%分位数,占33.0%(17,297个样本)
3.3. 滞后特征工程
考虑用电量的时间依赖性,创建滞后特征:
- 滞后用电量:前一个时间点的总用电量
- 滞后用电等级:前一个时间点的用电等级
3.4. 最终特征矩阵
预处理后构建的特征矩阵包含14个特征,涵盖环境因素、时间因素和历史用电模式:
- 温度、湿度、风速、总扩散流、扩散流
- 小时、分钟、日、月、星期几、是否周末、时间段
- 滞后用电量、滞后用电等级
4. 数据探索性分析
4.1. 用电量分布特征
- 数值分布:总用电量均值为71,222.89 kW,标准差为17,143.14 kW,分布范围较广
- 等级分布:三个用电等级的样本比例均衡,分别为33.0%、34.0%、33.0%,无明显的类别不平衡问题
- 时序模式:后续分析将揭示用电量的时间依赖性
4.2. 特征相关性分析
- 特征间相关性矩阵:计算14个特征间的Pearson相关系数,通过热力图可视化
- 特征-目标相关性:
- 回归目标:与总用电量最相关的特征为滞后用电量(r=0.997)、滞后用电等级(r=0.911)、时间段(r=0.702)和小时(r=0.680)
- 分类目标:与用电等级最相关的特征为滞后用电等级(点二列相关=0.563)、滞后用电量(0.548)、时间段(0.432)和小时(0.437)
- 强相关特征识别:筛选相关系数绝对值大于0.3的特征,发现时间相关特征和滞后特征与目标变量高度相关
- 多重共线性检测:滞后用电量与滞后用电等级高度相关(r=0.911),但考虑到两者包含不同信息(数值和等级),均予以保留
4.3. 可视化分析
- 相关系数热力图:展示特征间的相关性模式,发现时间特征与滞后特征之间的强相关性
- 特征-目标相关性条形图:比较不同特征对两个目标的重要性,显示滞后特征对两个任务都具有最高重要性
- 聚类热力图:基于相关性对特征进行重新排序,揭示时间特征和滞后特征的集群结构
5. 回归模型:决策树回归
5.1. 模型选择依据
选择决策树作为回归模型的原因:
- 解释性强:决策树提供直观的决策规则
- 非参数性:不依赖数据分布假设
- 特征重要性:自动评估特征重要性
- 鲁棒性:对异常值和缺失值不敏感
5.2. 算法实现
完全自主实现决策树回归算法,包含以下关键组件:
- 节点结构:定义叶节点和内部节点的数据结构
- 分割准则:使用均方误差(MSE)作为分割标准
- 停止条件:基于最大深度、最小分裂样本数等参数
- 预测机制:递归遍历树结构进行预测
5.3. 超参数设置
- 最大深度:10(防止过拟合)
- 最小分裂样本数:100(确保节点有足够样本)
- 最小叶节点样本数:50(避免过小节点)
5.4. 特征选择策略
基于相关系数分析,选择与回归目标相关性较强的特征(|r| > 0.1),共选择8个特征:温度、湿度、风速、总扩散流、小时、时间段、滞后用电量、滞后用电等级。
6. 分类模型:决策树分类
6.1. 多分类策略
用电等级分类为三分类问题,采用一对多(OvA)策略,每个节点计算基尼指数以评估分类纯度。
6.2. 算法实现
自主实现分类决策树算法,与回归树的主要区别:
- 分割准则:使用基尼指数代替MSE
- 叶节点值:存储多数类标签而非平均值
- 停止条件:增加”所有样本属于同一类”的条件
6.3. 超参数设置
与回归树保持一致的参数设置,便于比较两个任务的表现。
6.4. 特征选择策略
综合考虑回归和分类相关性,取两个特征集的并集,共选择9个特征:温度、湿度、风速、总扩散流、扩散流、小时、时间段、滞后用电量、滞后用电等级。
7. 模型训练与评估
7.1. 数据划分策略
- 划分比例:70%训练集(36,691个样本),30%测试集(15,725个样本)
- 划分方法:按时间顺序划分,保持时间序列的连续性
- 样本数量:训练集和测试集都有足够的代表性
7.2. 回归模型评估
使用多种评估指标全面衡量回归性能,结果如下:
- 训练集:MSE=975,750.70,RMSE=987.80 kW,MAE=661.73 kW,R²=0.9970
- 测试集:MSE=865,758.75,RMSE=930.46 kW,MAE=626.91 kW,R²=0.9955
7.3. 分类模型评估
采用多维度评估分类性能,结果如下:
- 训练集准确率:0.9809
- 测试集准确率:0.9807
- 各类别性能(测试集):
- 类别1(低):精度0.9963,召回率0.9801,F1分数0.9881
- 类别2(中):精度0.9595,召回率0.9889,F1分数0.9740
- 类别3(高):精度0.9880,召回率0.9679,F1分数0.9778
7.4. 训练结果分析
两个模型在训练集上都表现出色,回归模型R²达到0.9970,分类模型准确率达到0.9809,表明模型能够很好地学习训练数据中的模式。
7.5. 测试结果分析
在测试集上,回归模型R²为0.9955,分类模型准确率为0.9807,与训练集性能接近,表明模型没有过拟合,具有良好的泛化能力。
8. 结果分析与讨论
8.1. 相关系数分析结果
- 强相关特征识别:滞后用电量(r=0.997)和滞后用电等级(r=0.911)与总用电量高度相关,表明用电量具有很强的自相关性
- 时间模式:时间段(r=0.702)和小时(r=0.680)与用电量高度相关,验证了用电量的时间依赖性
- 环境因素影响:温度(r=0.488)与用电量正相关,湿度(r=-0.299)与用电量负相关,符合物理直觉
8.2. 回归模型性能分析
- 预测精度:测试集RMSE为930.46 kW,相对于均值71,222.89 kW,相对误差约为1.3%,预测精度很高
- 解释能力:R²为0.9955,说明模型能够解释99.55%的用电量方差,解释能力极强
- 误差模式:MAE(626.91 kW)略低于RMSE,表明误差分布相对对称,没有严重的异常误差
8.3. 分类模型性能分析
- 等级识别能力:总体准确率98.07%,表明模型能够准确识别用电等级
- 类别特异性:各类别的F1分数均在0.97以上,说明模型在各个类别上表现均衡
- 混淆模式:从混淆矩阵可以看出,主要混淆发生在相邻等级之间,如中等级别偶尔被误分为低或高
8.4. 模型对比分析
- 任务难度对比:分类任务(准确率98.07%)比回归任务(R² 0.9955)略难,但两者都达到了很高的性能水平
- 特征重要性一致性:两个任务中,滞后特征和时间特征都是最重要的,特征重要性排序高度一致
- 误差相关性:回归误差较大的样本往往也是分类错误的样本,说明两个任务的难点相似
8.5. 特征重要性分析
- 滞后特征的重要性:滞后用电量和滞后用电等级在两个任务中都是最重要的特征,验证了用电量的强时间依赖性
- 环境因素的影响:温度在两个任务中都有中等程度的重要性,表明环境因素对用电量有显著影响
- 时间特征的作用:小时和时间段特征在两个任务中都有较高重要性,反映了用电量的日内模式
9. 改进建议与未来工作
9.1. 数据层面改进
- 更多气象数据:增加降水量、日照强度等气象特征,提高模型对环境因素的捕捉能力
- 节假日信息:加入节假日和工作日标志,捕捉特殊日期的用电模式
- 用户行为数据:考虑用户活动的周期性模式,如上班时间、周末活动等
- 外部经济指标:纳入电价、经济指数等宏观因素,提高长期预测能力
9.2. 模型层面改进
- 集成方法:采用随机森林或梯度提升树,可能进一步提升性能
- 深度学习模型:尝试LSTM等时间序列专用模型,捕捉更复杂的时间依赖关系
- 多任务学习:构建同时优化回归和分类损失的统一模型,利用任务间的相关性
- 在线学习:实现模型的在线更新和自适应调整,适应用电模式的变化
9.3. 评估与解释
- 更细时间粒度:尝试分钟级预测,提高预测精度,满足实时调度需求
- 不确定性量化:为预测结果提供置信区间,增强预测结果的实用性
- 可解释性增强:使用SHAP等方法提供特征贡献度分析,提高模型透明度
- 因果分析:探索特征与用电量之间的因果关系,为干预措施提供依据
9.4. 应用扩展
- 异常检测:基于预测误差识别异常用电模式,用于故障检测和安全监控
- 节能建议:根据预测结果为用户提供个性化节能建议,促进节能减排
- 电网优化:将预测结果应用于电网负荷调度和发电计划,提高电网运行效率
- 需求响应:结合电价信号实现需求侧管理,平衡供需关系
10. 结论
10.1. 主要结论
- 特征有效性:验证了时间特征、环境特征和滞后特征对用电量预测的有效性,其中滞后特征最为重要
- 模型可行性:证明了完全自主实现的决策树算法在用电量预测任务上的可行性,取得了极高的预测精度
- 任务差异性:回归和分类任务都取得了优异性能,但分类任务略难,两者特征重要性排序高度一致
- 预测精度:回归模型测试集R²达到0.9955,分类模型准确率达到0.9807,具有很高的实用价值
10.2. 研究意义
- 方法学贡献:展示了不使用任何工具箱的完整机器学习分析流程,为教育和小规模应用提供了参考
- 应用价值:为智能电网和能源管理系统提供了高精度的用电量预测方案
- 教育意义:为机器学习教学提供了完整的实践案例,涵盖数据预处理、特征工程、模型构建和评估全流程
- 可扩展性:建立的分析框架可扩展至其他时间序列预测任务,如交通流量预测、销售量预测等
10.3. 实践建议
基于研究结果,提出以下实践建议:
- 特征工程优先:在用电量预测中,精心设计的特征(特别是滞后特征和时间特征)比复杂模型更重要
- 多任务视角:同时考虑数值预测和等级分类,满足不同应用需求,如精确调度和异常监测
- 持续优化:建立模型监控和定期更新机制,适应用电模式的变化,保持预测精度
- 系统集成:将预测模型嵌入能源管理系统,实现预测与控制的闭环,提高系统智能化水平