电力需求预测赛进阶Task3

1、赛题提分策略

        提升模型预测精准度的一个关键步骤是构建特征工程,识别哪些信息能够揭示数据的规律与趋势。另外尝试多样化的模型,从经典的统计方法到机器学习、深度学习算法,以及它们的组合与集成。通过不断的实验、试错与反思,在实践中增强模型构建与调优能力。

2、特征工程

2.1 时间序列平稳性检验

        时间序列的平稳性验证方法包括观察曲线波动的图像分析法、统计均值和方差等的简单统计法、通过统计检验判断平稳性的假设检验法,假设检验法有KPSS检验、Phillips-Perron检验及ADF检验等。ADF检验通过比较统计量与临界值来判断时间序列是否存在单位根,从而判断其是否平稳,p值小于显著性水平(如0.05),则拒绝原假设,认为是平稳的;否则,认为是非平稳的。ADF检验代码如下所示:

id为‘00037f39cf’的target的ADF检验:

id为‘00039a1517’的target的ADF检验:

        以上图例表示以id分组的target是平稳序列,平稳性序列在均值、方差等统计性质上不随时间变化,相对简单,但在进行统计建模时,仍需进行特征工程提取有用的信息来改善模型的性能。根据具体的任务、目标和数据集的特性进行相应的历史平移、窗口统计、差分以及基于专业领域知识的特征构造等。

2.2 历史平移

        历史平移是时间序列中的一种常见的特征工程方法,主要在于捕捉时间序列数据中的历史信息,通过历史平移获取上个阶段的信息,这些信息对于预测未来的值可能具有关键作用。将序列数据集中某个变量的值沿时间轴向后移动一定的步数,如平移一个单位的特征构建,可以将d-1时间的信息给到d时间,d时间信息给到d+1时间,生成新的特征,帮助模型捕捉到数据中的时间依赖关系,从而提高预测的准确性。即使序列平稳,这种滞后处理对于预测任务也特别有用。

        以上代码基于'id''target'列进行了分组,将每个组内的'target'值按照指定的平移量(从1035)进行了平移。

2.3 历史平移+差分特征

        时间序列中的数据往往包含趋势、季节性和随机噪声等成分,差分操作可以大致消除线性趋势,使得处理后的数据更加平稳。差分还可揭示出具有明显周期性的数据的变化规律,在时间序列中是一个不可或缺的工具,其构造出的新特征输入到模型中可提高模型的预测性能。        

        以上代码对平移后的列target_shift10进行了差分操作,生成了一阶、二阶和三阶差分。对于差分特征,应根据数据的特性和分析目标来合理选择差分操作的阶数。过高的阶数可能会导致数据失去太多的信息,而过低的阶数则可能无法充分去除数据中的趋势或周期性。

2.4 窗口统计

        窗口统计可以在序列上构建不同的窗口大小,计算窗口范围内数据的统计量,如均值、最大值、最小值、中位数、标准差等,来生成新特征的过程。这些统计量可以反映最近阶段数据的变化情况。窗口统计可捕捉平稳性序列中更细微的变化或波动。

2.5 历史平移+窗口统计

        历史平移加窗口统计的方法可以捕捉到更多的复杂动态的信息,被广泛应用于时间序列预测任务中。

        以上代码计算了每个id对应的target_shift10值在不同窗口大小(win)下的平均值、最大值、最小值、总和以及标准差。通过计算不同窗口大小下的统计量,可以捕捉到数据的不同动态特性,进而帮助构建更准确的预测模型。

3、模型融合

3.1 加权平均融合

        模型融合是指结合多个模型的预测结果来提高整体预测性能,当单独模型的性能达到瓶颈时,通过模型融合可以有效地提升模型的泛化能力和稳定性。在这部分代码中构建了模型融合函数cv_model函数,内部选择使用lightgbm、xgboost和catboost模型,将三个模型的结果进行取平均进行融合。此加权平均融合提交结果评分为236.5871。函数设计如下:

(1)定义cv_model函数及所需参数(数据集、模型参数及交叉验证的折数等)

(2)模型定义(LightGBM、XGBoost和CatBoost模型)

LightGBM:

XGBoost:

CatBoost:

(3)返回模型训练预测的结果。

(4)设置三个模型参数,调用cv_model函数

(5)将三个模型的预测结果进行加权平均

(6)保存结果文件

3.2 stacking融合

        分层模型集成框架Stacking,也称为堆叠泛化,它通过组合多个模型的预测,利用各个基学习器的优势,来提高模型的泛化能力。以两层为例,第一层由多个基学习器组成,其输入为原始训练集,第二层模型以第一层基学习器的输出作为特征加入训练集进行再训练。以下为lightgbm和xgboost两个模型融合的代码示例:

4、深度学习方案尝试

        深度学习是机器学习的一个分支,通过构建深层神经网络实现对复杂数据的自动学习和表示,通常包含多个隐藏层,这些隐藏层通过非线性变换将输入数据转换为更高层次的抽象表示,能够自动从原始数据中捕捉其复杂模式和特征。目前深度学习广泛应用于自然语言处理、图像处理、推荐系统等各个领域,其流行框架有Torch、TensorFlow、Keras等。深度学习的建模步骤如下所示:

(1)定义数据预处理函数:

(2)定义模型 :

        在模型定义中选择合适的模型架构(如LSTM用于时间序列预测)很重要,其次,定义模型输入层、隐藏层(可以包括LSTM层、Dense层等)、输出层,配置模型优化器、损失函数和评估指标。

(3)设置构建和训练模型参数:

        在构建和训练模型时可能需要调整模型参数(如学习率、隐藏层单元数等)以优化性能。

(4)预处理函数调用:

(5)构建模型:

(6)训练模型:

(7)模型预测:

5、优化方案尝试

        Task3的特征工程提取及模型融合在一定程度上提升了模型预测的精确度和稳定性,此赛题中的模型方式还有待进一步尝试,如单步和多步预测等。

        

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值