【深度学习】paddlets,时序数据预测

文章目录

资料:

https://paddlets.readthedocs.io/zh-cn/latest/source/api/paddlets.models.base.html#paddlets.models.base.BaseModel.recursive_predict

https://aistudio.baidu.com/projectdetail/5866171?contributionType=1&sUid=90149&shared=1&ts=1680491732413

一、环境

paddlets时序预测,paddlets环境只能用docker,不然不太好安装:

cpp 复制代码
docker run -it -p 18888:18888 -v C:\Users\Administrator\PycharmProjects\paddlets:/pro registry.baidubce.com/paddlets/paddlets:latest bash

# 或者

docker run -it -p 18889:18888 --gpus all -v /ssd/xiedong/paddlets:/pro registry.baidubce.com/paddlets/paddlets:latest-gpu-cuda11.2-cudnn8 bash

apt-get install -y openssh-server

apt install openssh-server --fix-missing # 不断执行

export http_proxy=192.168.3.2:10811
export https_proxy=192.168.3.2:10811

apt-get update

vim /etc/ssh/sshd_config

Port 18888 # 根据需求设置,容器Linux开启SSH服务的默认端口是22
PermitRootLogin yes  # 允许root用户登录(可选,根据需要设置)
PasswordAuthentication yes  # 允许密码身份验证

ssh-keygen -t rsa -b 2048

passwd root
nihao123


service ssh start

二、题目1

(1)请分析所提供的 10 个地区的功率数据,并绘制功率时序曲线,分析 10 个地区

功率变化特点,初步判断哪个地区的功率可以获得更好的预测结果,说明你的理由。

执行程序d1t1.py可以获得下面的图,这是5天中,10个地区的功率YD15的曲线。从趋势变换上来看,只有'02.csv'、'03.csv'的趋势变化非常具有周期性,应该是可以获得更好的预测结果的。

三、题目2

(2)分别对风速(预测风速和实际风速)、风向、温度、湿度、气压与功率(两个功率预测目标)的关系进行分析,如果要用这些气象因素来提高功率时序预测的结果,你优先推荐哪个(或哪几个)?简要说明理由。

选取02.csv的数据来对比02.csv中各个特征的关系。只有图最为直观,相关度之类的数值可以在更复杂难分析的情况使用。

下图是预测功率(系统生成)、实际功率(计量口径一)、 实际功率(预测目标,计量口径二)的图。变化趋势有周期性,每天都有顶峰数值。

下图是WINDSPEED 预测风速、TEMPERATURE 温度、ROUND(A.WS,1) 实际风速的变化图,周期性非常明显,从物理意义上来说也和风力发电功率非常相关。

下图是WINDDIRECTION 风向、HUMIDITY 湿度、PRESSURE 气压的变化图,数值过于平稳单调,和风力发电功率没有太大关联性。

如果要用这些气象因素来提高功率时序预测的结果,优先选择TEMPERATURE 温度、ROUND(A.WS,1) 实际风速这2个特征。

四、题目3

(3)请根据已知的气象数据与历史功率数据,划分训练集和测试集(将数据集中最后 3 天数据作为测试集),设计方法(不限使用神经网络等)构建预测模型,对 10 个地区的数据集内功率进行预测分析。并与原有的真实结果相比,做出误差分析,并分析不同气候因素对预测结果的影响。

五、函数参数

lstm = LSTNetRegressor(
    in_chunk_len=(24 + 19) * 7 * 4,
    out_chunk_len=(24 + 19) * 4,  # 预测05:00之后到次日23:45的实际功率
    max_epochs=200,
    optimizer_params=dict(learning_rate=5e-3),
)
  • in_chunk_len (int): 反馈窗口的大小,即输入到模型的时间步数。

  • out_chunk_len (int): 预测范围的大小,即模型输出的时间步数。

  • skip_chunk_len (int): 可选,单个样本中输入块和输出块之间的时间步数。跳过的块既不作为特征(即 X),也不作为标签(即 Y)。默认情况下,不会跳过任何时间步。

  • sampling_stride (int): 相邻样本之间的采样间隔。

  • loss_fn (Callable[..., paddle.Tensor]|None): 损失函数。

  • optimizer_fn (Callable[..., Optimizer]): 优化算法。

  • optimizer_params (Dict[str, Any]): 优化器参数。

  • eval_metrics (List[str]): 模型的评估指标。

  • callbacks (List[Callback]): 自定义回调函数。

  • batch_size (int): 每批次的样本数。

  • max_epochs (int): 训练期间的最大轮数。

  • verbose (int): 详细模式。

  • patience (int): 在终止训练前等待改进的轮数。

  • seed (int|None): 全局随机种子。

  • skip_size (int): 跳过 RNN 层的跳跃大小。

  • channels (int): 第一层 Conv1D 的通道数。

  • kernel_size (int): 第一层 Conv1D 的卷积核大小。

  • rnn_cell_type (str): RNN 单元类型,可以是 GRU 或 LSTM。

  • rnn_num_cells (int): 每层的 RNN 单元数。

  • skip_rnn_cell_type (str): 跳过层的 RNN 单元类型,可以是 GRU 或 LSTM。

  • skip_rnn_num_cells (int): 跳过部分每层的 RNN 单元数。

  • dropout_rate (float): Dropout 正则化参数。

  • output_activation (str|None): 输出使用的最后激活函数。可以是 None(默认无激活),sigmoid 或 tanh。

相关推荐
Debroon3 分钟前
RuleAlign 规则对齐框架:将医生的诊断规则形式化并注入模型,无需额外人工标注的自动对齐方法
人工智能
羊小猪~~10 分钟前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
AI小杨11 分钟前
【车道线检测】一、传统车道线检测:基于霍夫变换的车道线检测史诗级详细教程
人工智能·opencv·计算机视觉·霍夫变换·车道线检测
晨曦_子画15 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
道可云17 分钟前
道可云人工智能&元宇宙每日资讯|2024国际虚拟现实创新大会将在青岛举办
大数据·人工智能·3d·机器人·ar·vr
人工智能培训咨询叶梓26 分钟前
探索开放资源上指令微调语言模型的现状
人工智能·语言模型·自然语言处理·性能优化·调优·大模型微调·指令微调
zzZ_CMing26 分钟前
大语言模型训练的全过程:预训练、微调、RLHF
人工智能·自然语言处理·aigc
newxtc28 分钟前
【旷视科技-注册/登录安全分析报告】
人工智能·科技·安全·ddddocr
成都古河云29 分钟前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
UCloud_TShare31 分钟前
浅谈语言模型推理框架 vLLM 0.6.0性能优化
人工智能