机器学习-使用 XGBoost 时间序列预测能源消耗

这篇具有很好参考价值的文章主要介绍了机器学习-使用 XGBoost 时间序列预测能源消耗。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简而言之,时间序列预测是根据以前的历史数据预测未来值的过程。目前使用时间序列预测的最热门领域之一是加密货币市场,人们希望预测比特币或以太坊等流行加密货币的价格在未来几天甚至更长时间内将如何波动。另一个现实世界的案例是能源消耗预测。尤其是在能源成为主要讨论焦点之一的当今世界,能够准确预测能源消耗需求对于任何电力公司来说都是至关重要的工具。在本文中,

问题

我们将重点关注能源消耗问题,给定一个城市中不同家庭日常能源消耗的足够大的数据集,我们的任务是尽可能准确地预测未来的能源需求。出于本教程的目的,我选择了伦敦能源数据集,其中包含英国伦敦市 5,567 个随机选择的家庭在 2011 年 11 月至 2014 年 2 月期间的能源消耗。为了改进我们的预测,我们将此数据集与伦敦天气数据集结合起来,以便在此过程中添加天气相关数据。

这是这个迷你系列的第一部分。阅读完本文后,请务必检查下一部分,该部分通过合并滞后特征显着改善了结果。

预处理

在每个项目中我们要做的第一件事就是充分了解数据并在需要时对其进行预处理。要使用 pandas 查看数据,我们可以执行以下操作:

“LCLid”是标识每个家庭的唯一字符串,“Date”是不言自明的,“KWH”是该日期消耗的千瓦时总数,并且根本没有缺失值。由于我们想要以一般方式而不是每个家庭来预测消耗量,因此我们需要按日期对结果进行分组并平均千瓦时。

在这一点上,如果我们能够了解这些年来消费的变化方式,那就太好了。线图可以揭示这一点:

机器学习-使用 XGBoost 时间序列预测能源消耗,大模型,人工智能

整个数据集的能耗图

季节性特征十分明显。在冬季,我们观察到能源需求较高,而在整个夏季,能源消耗处于最低水平。这种行为在数据集中每年都会重复,具有不同的高值和低值。为了可视化一年内的波动,我们可以这样做:

机器学习-使用 XGBoost 时间序列预测能源消耗,大模型,人工智能

年能源消耗

为了训练像 XGBoost 和 LightGB 这样的模型,我们需要自己创建特征。目前,我们只有一项功能:完整日期。我们可以根据完整日期提取不同的特征,例如星期几、一年中的某一天、月份等。为了实现这一目标,我们可以这样做:

因此,“日期”功能目前是多余的。在删除它之前,我们将使用它将数据集拆分为训练集和测试集。与传统的训练相反,在时间序列中,我们不能只是以随机的方式分割集合,因为数据的顺序非常重要,而且我们只能合并以前的数据。否则,我们可能会被提示预测一个值,同时也考虑到未来的值!该数据集包含近 2.5 年的数据,因此对于测试集,我们将仅使用最近 6 个月的数据。如果训练集更大,我们会使用去年全年作为测试集。

为了再次可视化训练集和测试集之间的分割和区分,我们可以绘制:

机器学习-使用 XGBoost 时间序列预测能源消耗,大模型,人工智能

可视化训练-测试分离

现在我们可以删除“日期”功能并创建训练和测试集:

训练模型

超参数优化将通过网格搜索来完成。网格搜索采用参数和一些值作为配置,并尝试每种可能的组合。达到最佳结果的参数配置将是形成最佳估计器的参数配置。网格搜索也利用交叉验证,因此提供适当的分割机制至关重要。同样,由于问题的性质,我们不能只使用简单的 k 折交叉验证。Scikit learn 提供了TimeSeriesSplit方法,该方法以尊重连续性的方式增量地分割数据。

对于 LightGB 模型,我们可以通过提供不同的参数来完成相同的操作:

评估

为了评估测试集上的最佳估计器,我们将计算一些指标。它们是平均绝对误差 (MAE)、均方误差 (MSE) 和平均绝对百分比误差 (MAPE)。其中每一个都提供了对训练模型的实际性能的不同视角。此外,我们将绘制线图以更好地可视化模型的性能。

最后,为了评估上述任何模型,我们必须运行以下命令:

机器学习-使用 XGBoost 时间序列预测能源消耗,大模型,人工智能

XGBoost 结果

机器学习-使用 XGBoost 时间序列预测能源消耗,大模型,人工智能

LightGBM 结果

尽管 XGBoost 可以更准确地预测冬季的能耗,但为了严格量化和比较性能,我们需要计算误差指标。通过查看下表,很明显 XGBoost 在所有情况下都优于 LightGBM。

预处理天气数据

该模型表现相对较好,但是有没有办法进一步改进呢?答案是肯定的。有许多不同的提示和技巧可以用来获得更好的结果。其中之一是使用与能耗直接或间接相关的辅助功能。例如,天气数据在预测能源需求时可以发挥决定性作用

首先我们看一下数据的结构:

需要填写的缺失数据有多种。填充缺失数据并非易事,取决于具体情况。由于我们的天气数据每天都取决于前几天和后几天,因此我们将通过插值来填充这些值。此外,我们将把“date”列转换为“datetime”,然后合并两个数据帧以获得一个增强的数据帧。

请记住,生成增强集后,我们必须重新运行拆分过程并获取新的“training_data”和“testing_data”。不要忘记也包含新功能。

无需更新训练步骤。在新数据集上训练模型后,我们得到以下结果:

机器学习-使用 XGBoost 时间序列预测能源消耗,大模型,人工智能

XGBoost 根据天气结果进行增强

机器学习-使用 XGBoost 时间序列预测能源消耗,大模型,人工智能

LightGBM 根据天气结果进行增强

天气数据显着提高了两个模型的性能。特别是,在 XGBoost 场景中,MAE 降低了近 44%,而 MAPE 从 19% 升至 16%。对于 LightGBM,MAE 下降了 42%,MAPE 从 19.8% 下降到 16.7%。

结论和未来的步骤

集成模型是非常强大的机器学习工具,可用于时间序列预测问题。在本文中,我们了解了在能源消耗的情况下这是如何完成的。首先,我们仅使用日期因素来训练模型。后来,我们在训练过程中考虑了与手头任务相关的其他数据,以便显着提高结果。文章来源地址https://www.toymoban.com/news/detail-667860.html

到了这里,关于机器学习-使用 XGBoost 时间序列预测能源消耗的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习多步时间序列预测解决方案

    近年来,随着机器学习与深度学习的发展机器学习平台的成熟,数据科学家们不再需要关心底层的基础设施及构建复杂的训练与推理环境,从而可以把主要的时间与精力放在数据与算法本身。在机器学习变得更容易的今天,越来越多的传统行业已经开始使用机器学习算法来解

    2024年02月10日
    浏览(38)
  • 时序预测 | MATLAB实现SSA-XGBoost(麻雀算法优化极限梯度提升树)时间序列预测

    预测效果 基本介绍 Matlab实现SSA-XGBoost时间序列预测,麻雀算法优化极限梯度提升树,优化最大迭代次数,深度,学习率; 1.data为数据集,单变量时间序列数据集。 2.MainSSAXGBoostTS.m为主程序文件,其他为函数文件,无需运行; 3.评价指标R2、MAE、MAPE、MSE、MBE; 4.注意程序和数据

    2024年02月11日
    浏览(37)
  • 【关于时间序列的ML】项目 5 :用机器学习预测天气

      🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】 ​​  🖍foreword

    2023年04月21日
    浏览(28)
  • 时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测

    效果一览 基本描述 时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测。 Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测(完整源码和数据) 1.data为数据集,单变量时间序列数据集。 2.CNN_XGBoostTS.m为主程序文件,其他为函数文件,

    2024年02月10日
    浏览(38)
  • 【关于时间序列的ML】项目 3 :基于机器学习的地震预测模型

      🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】 ​​  🖍foreword

    2024年02月02日
    浏览(29)
  • 当机器人变硬核:探索深度学习中的时间序列预测

      收藏自:Wed, 15 Sep 2021 10:32:56 UTC 摘要:时间序列预测是机器学习和深度学习领域的一个重要应用,它可以用于预测未来趋势、分析数据模式和做出决策。本文将介绍一些基本概念和常用方法,并结合具体的案例,展示如何使用深度学习模型实现时间序列预测。 文章内容:

    2024年02月12日
    浏览(29)
  • 机器学习——时间序列ARIMA模型(三):AR、MA、ARMA、ARIMA模型定义及公式介绍及股价预测案例代码

    使用自身的数据进行预测,且只适用于预测与自身前期相关的现象。 注意:需满足具有平稳性的要求,需满足自相关性,自相关系数需大于0.5。 p阶自回归公式: y t = μ + ∑ i = 1 p γ i y t − i + e t y_{t}=μ+sum_{i=1}^pgamma_{i}y_{t-i}+e_{t} y t ​ = μ + i = 1 ∑ p ​ γ i ​ y t − i ​ + e

    2024年02月02日
    浏览(44)
  • 【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

    🚨注意🚨 :最近经粉丝反馈,发现有些订阅者将此专栏内容进行二次售卖,特在此声明,本专栏内容仅供学习,不得以任何方式进行售卖,未经作者许可不得对本专栏内容行使发表权、署名权、修改权、发行权、转卖权、信息网络传播权,如有违者,追究其法律责任。 👑

    2023年04月15日
    浏览(44)
  • 时间序列预测模型实战案例(三)(LSTM)(Python)(深度学习)时间序列预测(包括运行代码以及代码讲解)

    目录 引言 LSTM的预测效果图 LSTM机制 了解LSTM的结构 忘记门 输入门 输出门 LSTM的变体 只有忘记门的LSTM单元 独立循环(IndRNN)单元 双向RNN结构(LSTM) 运行代码 代码讲解 LSTM(Long Short-Term Memory)是一种常用的循环神经网络(RNN)模型,用于处理序列数据,具有记忆长短期的能力。

    2024年02月08日
    浏览(60)
  • 学习笔记:基于Transformer的时间序列预测模型

    为了便于读者理解,笔者将采取一个盾构机掘进参数预测的实际项目进行Transformer模型的说明。此外,该贴更多用于本人的学习记录,适合于对Transformer模型已经有一定了解的读者。此此次外,不定期更新中。 一些参考与图片来源: Transformer论文链接 transformer的细节到底是怎

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包