电力需求预测赛进阶Task2

1、赛题回顾

1.1 赛题背景

        电力需求预测赛题是关于时间序列预测的问题。时间序列预测问题是通过对历史数据中按时间排列的数据进行分析,捕捉数据中的规律和趋势,构建预测模型,预测未来某一时刻或某一段时间内的数值或趋势。这种方法在气象、金融、工业、经济、生物医学等多个领域都有广泛应用。在电力需求预测中,实时或近实时的精确电力需求预测,为电力系统的调度和运维提供了有力支持。

1.2 赛题任务

        赛题中给定多个房屋对应历史N天的电力消耗数据信息,数据集字段为房屋id、日标识dt、房屋类型type、电力消耗target。预测房屋对应电力的消耗,预测结果以 mean square error 作为评判标准。   

2、数据预处理

2.1 数据读取

2.2 数据集基本信息

       DataFrame.shape属性可以帮助了解DataFrame的结构信息,从而评估数据处理的计算需求,根据特征的数量选择合适的模型类型和参数。以上输出表示train数据集具有2877305行观测值,4列特征,test数据集具有58320行观测值,3列特征。

        train.info()主要用于快速查看DataFrame的基本信息,以上输出信息中id 列的数据类型是 object,dt 和 type 列的数据类型是 int64,target 列的数据类型是 float64。

        test.isnull().sum()的输出信息表明train及test数据集中不存在缺失数据。

        train.describe()方法输出的统计信息为:target列的平均值为32.22,标准偏差值50.36,最小值-0.61,最大值1191.68,中位数22.35。可以看出target列的数据分布范围从-0.61到1191.68,分布较广,平均值(32.22)低于中位数(22.35),标准偏差(50.36)相对较大,表明数据点在其平均值周围有较大的离散度。

2.3 合并数据并排序

        train和test数据集合并是为了后续特征工程的统一处理。

3、特征工程

3.1 时间序列问题的特征工程

        时间序列问题的特征工程是将原始数据转换为更能反映问题本质的特征的过程,涉及特征提取、选择和降维等多个环节。其处理方法包括统计分析均值、标准差、极值、分位数等简单特征,以及自相关性、周期性、趋势等高级特征;提取持续时间、时间间隔等时间维度上的信息;统计分析在时间轴上划分的每个窗口内的数据获取窗口内的特征;通过主成分分析(PCA)和张量分解等降维转换特征。 在神经网络模型中,如RNN、自编码器、LSTM等,能够自动提取原始时间序列数据的特征,这些特征能显著提高模型的预测性能。

3.2 历史平移

3.3 窗口特征

3.4 特征选择

4、模型构建及调优

4.1 基于lightgbm的模型构建及调优

4.1.1 lightgbm基础模型

        lightgbm模型是基于梯度提升决策树GBDT(Gradient Boosting Decision Tree)优化改善的一个算法框架,不需要处理缺失值。GBDT是一种迭代的决策树算法,通过构造一组弱的学习器(决策树),并将多棵决策树的结果累加起来作为最终的预测结果。在这个过程中,GBDT利用了梯度提升的思想,梯度提升是一种集成学习方法,通过不断拟合前一轮模型的残差(即真实值与预测值之间的差异)来优化模型,以此来逐步改进模型的预测性能。lightgbm最基本的是决策树被用作基学习器来拟合残差,这些决策树被用来逐步逼近真实的函数关系,从而实现对复杂数据的建模。

        在基线baseline的lightgbm模型中,构建训练集和验证集的策略是:基于给定的原始数据集,选择dt大于或等于30天后的数据点的所有记录作为训练数据。所有日期早于特定值30天之前的记录则构成验证数据集,用于评估模型在未来时间段上的泛化能力。此基线lightgbm模型提交结果评分为260.66183。

 4.1.2 参数调优策略     

        参数调优通常需要多次试验和调整才能找到最佳配置。此外,使用交叉验证(如k-fold交叉验证)可以更准确地评估模型性能,并帮助找到更稳健的参数组合。以下为部分lightgbm模型参数:

参数描述调优建议
boosting_type指定提升类型对于大多数回归问题,'gbdt' 是个不错的选择
objective指定学习任务和相应的损失函数'regression' 表示回归任务
metric评估模型性能的指标对于回归问题,MSE 是一个常用的评估指标
min_child_weight叶子节点上所需的最小样本权重和可以从默认值开始,然后逐步增加(如10, 20, 50等),直到观察到验证集上的性能开始下降
num_leaves树中的叶子节点数可以从较小的值(如32)开始,并根据验证集的性能逐步增加(如64, 128等)
lambda_l2L2正则化项的系数可以从较小的值开始(如0.1, 1),然后根据验证集的性能逐步增加
feature_fraction在每次迭代中随机选择特征的比例通常设置为0.5到1之间的值,如0.8、0.9,较小的值有助于防止过拟合
bagging_fraction在每次迭代中随机选择样本的比例常见的值包括0.5到1之间的数,如0.8、0.9,较小的值有助于防止过拟合
bagging_freq执行bagging的频率可以设置为1或更大的值(如3, 5, 10)
learning_rate学习率常见的值包括0.01到0.3之间,较小的值意味着更慢的学习过程,通常可以获得更好的性能
seed随机数种子用于保证结果的可重复性
nthread线程数根据机器配置设置,通常为CPU的核心数或更少(以避免资源争用)
verbose打印日志的详细程度根据需要设置,设置为1000,意味着每1000次迭代打印一次日志
early_stopping_round提前停止训练可防止过拟合并节省时间,可根据数据集的大小和复杂度设置

        参考以上参数调优建议策略,对learning_rate、max_depth、num_leaves等参数进行了微调整,提交结果评分256.53847,起到了一定的效果,但不是特别明显,特征工程的处理及模型的选择与融合有待进一步尝试。

4.2 基于xgboost的模型构建与调优

4.2.1 xgboost基础模型

        xgboost和lightgbm都是基于梯度提升框架的机器学习算法,lightgbm采用直方图算法进行特征选择,xgboost采用预排序算法进行特征选择。lightgbm采用深度优先搜索,xgboost每次迭代都同时分裂同一层所有叶子节点,开销可能会大,在目标函数中加入了正则化项。在决定使用哪个算法时,需根据具体的问题需求、数据集及计算资源等综合考虑。

        此基础xgboost模型提交结果评分为319.93635。

4.2.2 参数调优策略 
参数描述调优建议
n_estimators生成树的数量200到1000之间的值对于大多数数据集是一个合理的范围
max_depth树的最大深度通常可以从3到10开始尝试,具体取决于数据的复杂度和特征的数量
subsample训练时的采样比例常用的值包括0.5, 0.7, 0.8和0.9,较小的值有助于防止过拟合,可根据验证集上的表现进行调整
eta学习率较小的eta值(如0.01到0.3)通常会导致更稳健的模型,但需要更多的迭代次数
scale_pos_weight样本权重,用于处理样本不均衡的情况其值通常设置为多数类样本数与少数类样本数之比。例如,如果多数类与少数类的比例为10:1,则设置为10
reg_alphaL1正则化项的系数,用于减轻过拟合可以尝试0.1, 1, 10等量级递增,直到观察到验证集上的性能开始下降
gamma叶子节点分裂时的损失减少量下限可以从0开始,然后根据需要增加,如0.1, 0.5, 1等。
reg_lambdaL2正则化项的系数,用于减轻过拟合通常从0开始,逐步增加这些值,直到观察到验证集上的性能开始下降。开始时可以尝试0.1, 1, 10等量级递增
min_child_weight最小叶子节点样本权重和,用于控制每个节点上的样本数量可以从1开始,然后根据需要增加,如5, 10等
objective目标函数对于回归问题,常用的有reg:squarederror(平方损失)和reg:squaredlogerror(平方对数损失)
verbosity控制训练过程中日志的详细程度可设置为0(静默)、1(警告)、2(信息)、3(调试)
eval_metric评估指标对于回归任务,常用的选择有rmse、mse

        参考以上参数调优建议策略,对学习率、树的数量、树的最大深度等参数进行了初步调整,提交结果评分为265.4253,特征工程价值信息提取及模型的选择与融合有待进一步尝试。

4.3 模型融合

        在模型融合这块,主要是运用Stacking的思想,融合lightgbm、xgboost及catboost模型。

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电力负荷预测中,Transformer模型是一种常用的深度学习方法。Transformer是一种基于自注意力机制的神经网络模型,它在自然语言处理领域取得了很好的效果,后来也被应用于其他领域,包括电力负荷预测。 Transformer模型的关键思想是利用注意力机制来建立输入序列中各个元素之间的关系,从而捕捉到序列中的长距离依赖关系。在电力负荷预测中,Transformer模型可以接收历史负荷数据作为输入,并通过自注意力机制来学习不同时间步之间的依赖关系。 与传统的时间序列预测方法相比,Transformer模型具有以下优势: 1. 能够处理长期依赖关系:由于自注意力机制的存在,Transformer模型能够更好地捕捉序列中的长期依赖关系,从而提高预测准确度。 2. 并行计算能力强:Transformer模型中的自注意力机制可以实现并行计算,加快了模型的训练和推理速度。 3. 可扩展性好:Transformer模型可以很容易地进行扩展,适应不同时间周期的负荷预测需求。 除了Transformer模型,还有其他的预测方法可以用于电力负荷预测,例如统计方法、物理方法和混合方法等。在实际应用中,选择合适的预测方法需要考虑到数据特点、预测精度要求以及计算资源等因素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【负荷预测】长短期负荷预测(Matlab代码实现)](https://blog.csdn.net/2201_75454341/article/details/128095650)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [电力负荷预测三篇综述总结](https://blog.csdn.net/Cyril_KI/article/details/113406332)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值