电力需求预测挑战赛笔记 Taks1 跑通baseline

#AI夏令营 #Datawhale #夏令营

赛题

一句话介绍赛题任务可以这样理解赛题:

【训练时序预测模型助力电力需求预测】

电力需求的准确预测对于电网的稳定运行、能源的有效管理以及可再生能源的整合至关重要。

赛题任务

给定多个房屋对应电力消耗历史 N 天的相关序列数据等信息,预测房屋对应电力的消耗。

赛题数据简介

赛题数据由训练集和测试集组成,为了保证比赛的公平性,将每日日期进行脱敏,用 1-N 进行标识。

即 1 为数据集最近一天,其中 1-10 为测试集数据。

数据集由字段 id(房屋 id)、 dt(日标识)、type(房屋类型)、target(实际电力消耗)组成。

下面进入 baseline 代码

# 1. 导入需要用到的相关库
# 导入 pandas 库,用于数据处理和分析
import pandas as pd
# 导入 numpy 库,用于科学计算和多维数组操作
import numpy as np# 2. 读取训练集和测试集
# 使用 read_csv() 函数从文件中读取训练集数据,文件名为 'train.csv'
train = pd.read_csv('./data/data283931/train.csv')
# 使用 read_csv() 函数从文件中读取测试集数据,文件名为 'train.csv'
test = pd.read_csv('./data/data283931/test.csv')# 3. 计算训练数据最近11-20单位时间内对应id的目标均值
target_mean = train[train['dt']<=20].groupby(['id'])['target'].mean().reset_index()# 4. 将target_mean作为测试集结果进行合并
test = test.merge(target_mean, on=['id'], how='left')# 5. 保存结果文件到本地
test[['id','dt','target']].to_csv('submit.csv', index=None)

Step1:报名赛事!(点击即可跳转)

赛事链接:2024 iFLYTEK AI开发者大赛-讯飞开放平台2024 iFLYTEK AI开发者大赛-讯飞开放平台icon-default.png?t=N7T8https://challenge.xfyun.cn/h5/detail?type=electricity-demand&ch=dw24_uGS8Gs

Step2:5 分钟体验一站式 baseline!(点击即可跳转)

项目链接:从零入门机器学习竞赛-Baseline - 飞桨AI Studio星河社区- 飞桨AI Studio星河社区icon-default.png?t=N7T8https://aistudio.baidu.com/projectdetail/8151133

跑通baseline

根据task1跑通baseline

注册账号

直接注册或登录百度账号,etc

fork 项目

从零入门机器学习竞赛-Baseline - 飞桨AI Studio星河社区- 飞桨AI Studio星河社区icon-default.png?t=N7T8https://aistudio.baidu.com/projectdetail/8151133

启动项目 

选择运行环境,并点击确定,没有特殊要求就默认的基础版就可以了

等待片刻,等待在线项目启动

运行项目代码

点击 运行全部Cell

程序运行完生成文件 submit.csv

这个文件就最终提交的文件。

提交并获取分数

1返回分数373.89846submit.csvbaseline1gszwJaV2024-07-11 16:57:27

知识点:

常见的时间序列场景有:

  1. 金融领域:股票价格预测、利率变动、汇率预测等。

  2. 气象领域:温度、降水量、风速等气候指标的预测。

  3. 销售预测:产品或服务的未来销售额预测。

  4. 库存管理:预测库存需求,优化库存水平。

  5. 能源领域:电力需求预测、石油价格预测等。

  6. 医疗领域:疾病爆发趋势预测、医疗资源需求预测。

时间序列问题的数据往往有如下特点:

  1. 时间依赖性:数据点之间存在时间上的连续性和依赖性。

  2. 非平稳性:数据的统计特性(如均值、方差)随时间变化。

  3. 季节性:数据表现出周期性的模式,如年度、月度或周度。

  4. 趋势:数据随时间推移呈现长期上升或下降的趋势。

  5. 周期性:数据可能存在非固定周期的波动。

  6. 机波动:数据可能受到随机事件的影响,表现出不确定性。

时间序列分析在很多领域中具有重要的应用价值。通过对时间序列数据分析和建模,可以得到对未来趋势的预测和预测误差的估计,为决策提供依据。

时间序列预测问题可以通过多种建模方法来解决,包括传统的时间序列模型机器学习模型深度学习模型

传统时间序列模型

用于分析和预测时间序列数据的统计模型。

它假设数据点之间存在一定的时间关系,即后一个数据点的值可以根据前一个数据点的值和其他相关因素预测得出。

常见的时间序列模型包括

  • AR模型(自回归模型)
  • MA模型(滑动平均模型)
  • ARMA模型(自回归滑动平均模型)
  • ARIMA模型(差分自回归滑动平均模型)
  • SARIMA模型(季节性差分自回归滑动平均模型)等。

这些模型基于不同的假设和参数设置,可以根据数据的特点选择合适的模型进行建模和预测。

时间序列模型可以用于不同领域的数据分析和预测,如经济学中的金融时间序列分析、气象学中的气象预测、生态学中的生态系统变化预测等。它们可以帮助我们理解数据的时间规律,发现趋势和周期性变化,以及预测未来的走势。

机器学习模型

在时间序列预测中,机器学习模型可以通过将时间序列数据转化为特征和目标变量的组合来进行建模和预测

以下是一些常用的机器学习时间序列模型:

  1. 自回归模型(AR):自回归模型基于时间序列数据的历史值来预测未来值。AR模型假设未来值与过去的若干个值有线性相关性。
  2. 移动平均模型(MA):移动平均模型基于时间序列数据的过去误差来预测未来值。MA模型假设未来值与过去的若干个误差有相关性。
  3. 自回归移动平均模型(ARMA):ARMA模型是AR模型和MA模型的组合。它结合了过去的时间序列值和误差来进行预测。
  4. 差分自回归移动平均模型(ARIMA):ARIMA模型在ARMA模型的基础上增加了对时间序列数据进行差分的步骤,用于处理非平稳数据。
  5. 季节性ARIMA模型(SARIMA):SARIMA模型是ARIMA模型在考虑季节性因素的基础上进行建模的一种扩展模型。
  6. 支持向量机(SVM):支持向量机是一种常用的机器学习模型,在时间序列预测中可以用于线性回归、非线性回归和分类问题。
  7. 随机森林(Random Forest):随机森林是一种集成学习模型,通过多个决策树的组合来进行预测。在时间序列预测中,可以利用随机森林进行回归和分类问题的预测

深度学习模型

深度学习模型在时间序列预测问题上表现出色,尤其是在处理大规模数据和复杂模式时。

以下是一些常用的深度学习时间序列模型:

  1. 循环神经网络(RNN):RNN是一种能够处理序列数据的神经网络。它具有记忆能力,可以在处理每个时间步时将之前的信息传递给下一个时间步,从而捕捉到时间序列的依赖关系。
  2. 长短期记忆网络(LSTM):LSTM是一种RNN的变体,通过引入“门控”机制来解决传统RNN中的梯度消失和梯度爆炸问题。LSTM对于长期依赖关系的建模能力更强,适用于处理长时间序列数据。
  3. 门控循环单元(GRU):GRU也是一种RNN的变体,类似于LSTM,它通过引入“门控”机制来记忆和更新信息。GRU相对于LSTM具有更简单的结构,参数量更小,计算效率更高。
  4. 卷积神经网络(CNN):CNN在处理时间序列数据时常用于提取局部特征。通过卷积和池化操作,CNN可以捕捉时间序列中的局部模式,并提取有用的特征,用于预测未来值或分类问题。
  5. 注意力机制(Attention):注意力机制在深度学习中很有用,尤其是在处理长时间序列数据时。它可以将模型的注意力集中在序列中最重要的部分,提高预测的准确性。

这些深度学习时间序列模型具有强大的建模能力,能够处理复杂的时间序列数据,但同时也需要大量的训练数据和计算资源。

各种模型之间的对比

模型类型特点适用场景
传统时间序列模型基于统计分析的方法,对时间序列数据的基本特性进行建模,如自相关性、季节性等

非常适合处理具有明显的趋势和季节性的数据。

对于相对简单的时间序列数据,建模和预测效果较好。

例如AR、MA、ARIMA、SARIMA模型

机器学习模型基于机器学习算法,通过对时间序列数据的样本特征进行训练建模,学习数据的模式和规律

适用于数据较为复杂、特征较多的时间序列问题。

需要手动提取和选择合适的特征。

常用的机器学习模型包括线性回归、决策树、随机森林、支持向量机等

深度学习模型基于神经网络的模型,通过多层次的神经网络结构进行特征提取和模式学习

适用于大规模数据、复杂特征的时间序列预测问题。

自动学习数据中的特征和模式,无需手动提取

常见的深度学习模型包括循环神经网络(RNN)、长短时记忆网络(LSTM)、卷积神经网络(CNN)等

  • 如果数据具有明显的趋势和季节性,且相对简单,可以使用传统时间序列模型进行建模和预测。
  • 如果数据较为复杂,特征较多,可以考虑使用机器学习模型进行建模。
  • 对于大规模数据、复杂特征和自动学习特征的需求,可以考虑使用深度学习模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拓扑排序(算法篇)

算法之拓扑排序 拓扑排序 概念&#xff1a; 拓扑排序是对有向无圈图的顶点的一种排序。排序不必是唯一的&#xff0c;任何合理的排序都是可以的。具体做法是&#xff1a;先找出任意一个没有入边的顶点v(就是没有其他顶点指向的顶点)&#xff0c;将顶点v放入队列&#xff0c;…

element-plus el-table点击当前行和划过展示鼠标

在 Element Plus 的 el-table 组件中&#xff0c;设置滑过行时鼠标的样式可以通过 CSS 来实现。你可以使用 CSS 的 cursor 属性来定义鼠标悬停时的样式。以下是一个简单的例子&#xff1a; 首先&#xff0c;在你的 Vue 组件的 .el-table .el-table__row:hover {cursor: poin…

09.AOP-尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)

现有代码缺陷 针对带日志功能的实现类&#xff0c;我们发现有如下缺陷&#xff1a; 对核心业务功能有干扰&#xff0c;导致程序员在开发核心业务功能时分散了精力附加功能分散在各个业务功能方法中&#xff0c;不利于统一维护 解决思路 解决核心&#xff1a;解耦。把附加功能从…

glm-4 联网搜索 api 测试

今天测试了一下 glm-4 的联网搜索 web_search tool 调用&#xff0c;发现了 web_search 的网页检索返回结果中几个比较诡异的事情&#xff0c;特此记录&#xff1a; 有些检索结果没有 icon、link、media 字段&#xff0c;但从内容上看确实是联网搜索出来的结果&#xff0c;不知…

从零开始读RocketMq源码(三)Broker存储Message流程解析

目录 前言 准备 消息载体CommitLog 文件持久化位置 源码解析 broker消息对象MessageExtBrokerInner 异步存储message CommitLog的真相 创建MappedFile文件 加入异步刷盘队列 Message异步存储MappedByteBuffer 总结 前言 在面试中我们经常会听到这样的回答&#x…

国产化趋势下源代码数据防泄密的信创沙盒的方案分享

随着国产化的大力推进&#xff0c;越来越多的企事业单位在逐步替换Windows、Linux等操作系统的使用。那么什是国产化了&#xff1f;国产化是指在产品或服务中采用国内自主研发的技术和标注&#xff0c;替代过去依赖的他国的产品和服务&#xff0c;国产化又被称之为“信创”&…

GitLab CI/CD实现项目自动化部署

1 GitLab CI/CD介绍 GitLab CI/CD 是 GitLab 中集成的一套用于软件开发的持续集成&#xff08;Continuous Integration&#xff09;、持续交付&#xff08;Continuous Delivery&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;工具。这套系统允许开发团队…

vue里实现点击按钮回到页面顶部功能,博客必备!

效果 步骤 1-标签结构 动态绑定样式style&#xff0c;监听点击事件&#xff0c;后续控制opacity透明度。和滚动距离 <div class"toTop" :style"dynamicStyles" click"toTop"><!--<i class"fa fa-arrow-up"></i>…

Django ORM中的F 对象

F 对象非常强大&#xff0c;可以在查询和更新操作中进行复杂的字段间运算。 假设我们有一个包含商品信息的模型 Product&#xff1a; from django.db import modelsclass Product(models.Model):name models.CharField(max_length100)price models.DecimalField(max_digits…

MySQL向自增列插入0失败问题

问题 在一次上线时&#xff0c;发现通过脚本添加的状态表中&#xff0c;待提交的状态不正确&#xff0c;本来应该是0&#xff0c;线上是101。 原因 默认情况下&#xff0c;MySQL对应自增列&#xff0c;认为0和null等价&#xff08;因为mysql认为0不是最佳实践不推荐使用&…

超简单的通配证书签发工具,免费,无需安装任何插件到本地

常见的acme.sh 或者 lego等工具需要配置&#xff0c;安装不灵活&#xff0c;续签需要配置计划任务&#xff0c;签发单域名证书或者通配证书需要不同的指令和配置&#xff0c;繁琐&#xff0c;如果自己程序想要对接签发证书的api有的不支持&#xff0c;有的用起来繁琐。 最近发…

[手机Linux PostmarketOS]三, Alpine Linux命令使用

Alpine Linux 一些常用的指令&#xff1a; 添加国内源下载链接&#xff1a; 编译以下文件&#xff0c;添加链接进去&#xff1a; sudo vi /etc/apk/repositories##清华源&#xff1a; https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main https://mirror.tuna.tsi…

【VIVADO SDK调试遇到DataAbortHandler】

问题 SDK调试遇到DataAbortHandler问题。 运行后不显示结果&#xff0c;debug模式下发现进入DataAbortHandler异常函数。程序中存在大数组。 原因:SDK默认的堆栈为1024bytes,需要将堆栈调大。 修改方法&#xff1a; 解决:对application中src下的lscript.ld双击&#xff0c;…

android 添加一个水平线

在Android中&#xff0c;添加一个水平线通常可以通过几种方式实现&#xff0c;最常见的是使用View组件或者自定义的Drawable。下面是一个简单的例子&#xff0c;展示如何在布局文件中添加一个水平线&#xff1a; 使用View组件 在你的布局XML文件中&#xff0c;你可以添加一个…

Linux 程序卡死的特殊处理

一、前言 Linux环境。 我们在日常编写的程序中&#xff0c;可能会出现一些细节问题&#xff0c;导致程序卡死&#xff0c;即程序没法正常运行&#xff0c;界面卡住&#xff0c;也不会闪退... 当这种问题出现在客户现场&#xff0c;那就是大问题了。。。 当我们暂时还无法排…

Python如何调用C++

ctypes 有以下优点: Python内建&#xff0c;不需要单独安装Python可以直接调用C/C 动态链接库(.dll 或 .so)在Python一侧&#xff0c;不需要了解 c/c dll 内部的工作方式提供了 C/C 数据类型与Python类型的相互映射&#xff0c;以及转换&#xff0c;包括指针类型。 在使用cty…

如何定量选择孔销基准?-DTAS来帮你!

在当今快速发展的工程领域&#xff0c;公差仿真的作用日渐重要&#xff0c;在公差仿真中&#xff0c;基准体系的选择对于最终结果更是至关重要。基准体系不同可能导致仿真过程中的参数计算、误差分析以及最终的工程设计都有所不同。基准体系作为评估和比较的参照&#xff0c;直…

Suricata引擎二次开发之命中规则定位

二开背景 suricata是一款高性能的开源网络入侵检测防御引擎&#xff0c;旨在检测、预防和应对网络中的恶意活动和攻击。suricata引擎使用多线程技术&#xff0c;能够快速、准确地分析网络流量并识别潜在的安全威胁&#xff0c;是众多IDS和IPS厂商的底层规则检测模块。 前段时间…

强制升级最新系统,微软全面淘汰Win10和部分11用户

说出来可能不信&#xff0c;距离 Windows 11 正式发布已过去整整三年时间&#xff0c;按理说现在怎么也得人均 Win 11 水平了吧&#xff1f; 然而事实却是&#xff0c;三年时间过去 Win 11 占有率仅仅突破到 29%&#xff0c;也就跳起来摸 Win 10 屁股的程度。 2024 年 6 月 Wi…

【Linux】磁盘性能压测-FIO工具

一、FIO工具介绍 fio&#xff08;Flexible I/O Tester&#xff09;是一个用于评估计算机系统中 I/O 性能的强大工具。 官网&#xff1a;fio - fio - Flexible IO Tester 注意事项&#xff01; 1、不要指定文件系统名称&#xff08;如/dev/mapper/centos-root)&#xff0c;避…