Paddlets时间序列集成模型回测实战:MLPRegressor、NHiTSModel与RNNBlockRegressor
好的,我们继续深入理解代码的每个部分。以下是每个主要模块的详细解释:
1. 导入模块和库
import json
import os
import glob
import pandas as pd
from tqdm import tqdm
from paddlets.datasets import TSDataset
from paddlets.transform import StandardScaler
from paddlets.models.forecasting import MLPRegressor, NHiTSModel, RNNBlockRegressor
from paddlets.ensemble import WeightingEnsembleForecaster
import ray
- json: 用于处理JSON文件。
- os: 用于处理文件和目录操作。
- glob: 用于获取匹配特定模式的文件路径。
- pandas: 用于数据处理和分析,尤其是表格数据。
- tqdm: 用于显示进度条,帮助跟踪循环的进度。
- paddlets: 时间序列预测相关的库。
- ray: 用于并行计算的库。
2. 定义和创建目录
dirs = ["forecasting_all_result_center","pic_forecasting_center","model_forecasting_center_2048_a_b_5_100","best_forecasting_param_center"
]for dir_name in dirs:os.makedirs(dir_name, exist_ok=True)
- dirs: 定义了多个用于存储不同类型结果的目录。
- os.makedirs: 创建目录,如果目录已存在,则不报错。
3. 加载股票映射
with open("./stock_mapping.json", "r") as f:stock_mapping = json.load(f)
- 从
stock_mapping.json
文件中加载股票的映射关系,以便后续使用。
4. 加载CSV数据
csv_paths = glob.glob(os.path.join("./tu_share_data_day", "*.csv"))
sum_dam_data = []for csv_path in tqdm(csv_paths):new_data = pd.read_csv(csv_path)if len(new_data) < 2048 or new_data.iloc[0, 2] < 5 or new_data.iloc[0, 2] > 100:continuenew_data = new_data[::-1].iloc[:2048]new_data['index_new'] = range(1, len(new_data) + 1)sum_dam_data.append(new_data)
- 使用
glob
获取所有CSV文件路径,并遍历每个文件。 - 读取数据并进行过滤,确保符合条件(如数据长度、价格区间)。
- 将数据反转并取最后2048条,添加索引列。
5. 构建时间序列数据集
dam_data = pd.concat(sum_dam_data)dataset = TSDataset.load_from_dataframe(dam_data,group_id='ts_code',time_col="index_new",target_cols=['high', 'low']
)
- 将所有符合条件的数据合并成一个DataFrame。
- 使用
TSDataset
将数据转换为时间序列格式,指定分组、时间列和目标列。
6. 初始化标准化器
scaler = StandardScaler().fit(dataset)
dataset = scaler.transform(dataset)
- 使用
StandardScaler
对数据进行标准化处理,使模型训练更加稳定。
7. 初始化Ray进行并行计算
ray.init()
- 初始化Ray,使得后续的计算能够并行执行。
8. 定义并行处理函数
@ray.remote
def process_csv_file(csv_path, scaler):...
- 使用
@ray.remote
装饰器定义一个可以被Ray并行化的函数,处理每个CSV文件的逻辑。
9. 设置模型参数和加载模型
nhits_params = {'sampling_stride': 24, 'eval_metrics': ["mse", "mae"], 'batch_size': 32, 'max_epochs': 100, 'patience': 10}
rnn_params = nhits_params.copy()
mlp_params = nhits_params.copy()
mlp_params['use_bn'] =
相关文章:
Paddlets时间序列集成模型回测实战:MLPRegressor、NHiTSModel与RNNBlockRegressor
好的,我们继续深入理解代码的每个部分。以下是每个主要模块的详细解释: 1. 导入模块和库 import json import os import glob import pandas as pd from tqdm import tqdm from paddlets.datasets import TSDataset from paddlets.transform import StandardScaler from pa…...

【anki】显示 “连接超时,请更换网络后重试” 怎么办
文章目录 前言一、问题描述二、解决方案 前言 在 anki同步 时遇到的问题 一、问题描述 二、解决方案 从电信换为了移动热点,电脑手机都同步成功了...

第一批学习大模型的程序员,已经碾压同事了,薪资差距都甩出一条街了...
前言 随着人工智能技术的突飞猛进,AI大模型已成为引领未来的核心技术。从ChatGPT的横空出世到GPT-4o的震撼发布,AI技术正以前所未有的速度改变着我们的生活和工作方式。 在这场AI革命中,企业对AIGC人才的需求正以指数级增长。据《AIGC就业趋…...

Unity NetCode 客户端连接不上服务器,局域网模式 Failed to connect to server.
报错代码: Failed to connect to server. 报错截图: 解决办法: 服务端:绑定127.0.0.1和端口 客户端:写好对应服务端ip和端口 如何查看服务端所在局域网IP,192.xxx.xxx.xx,就不用教了吧。 注意这个钩,得点下,默认不勾选。 意…...

C++远端开发环境安装(centos7)
使用VMWare安装centos7 启用网卡设备 修改文件/etc/sysconfig/network-scripts/ifcfg-ens33中的ONBOOTyes 重启网络服务 systemctl restart network 配置yum仓库 直接将如下内容覆盖原有的/etc/yum.repos.d/CentOS-Base.repo文件 清理yum缓存 yum clean all 刷新yum yu…...

LaTeX 编辑器-TeXstudio
TeXstudio 是一款开源跨平台 LaTeX 编辑软件,界面与 Texmaker 类似。TeXstudio 为用户提供互动式拼写检查、代码折叠、语法高亮、代码提示和自动完成等特性,功能丰富,界面美观,但软件本身不提供底层功能,需要使用者自行…...

[深度学习]循环神经网络
1 自然语言处理概述 语料:一个样本,句子/文章语料库:由语料组成词表:分词之后的词语去重保存成为词表 2 词嵌入层 import jieba import torch.nn as nn import torch # 文本数据 text北京东奥的进度条已经过半,不少外…...

景联文科技精准数据标注:优化智能标注平台,打造智能未来
景联文科技是一家致力于为人工智能提供全面数据标注解决方案的专业公司。 拥有一支由经验丰富的数据标注师和垂直领域专家组成的团队,确保数据标注的质量和专业性。 自建平台功能一站式服务平台,提供从数据上传、标注、审核到导出的一站式服务࿰…...

商场促销——策略模式
文章目录 商场促销——策略模式商场收银软件增加打折简单工厂实现策略模式策略模式实现策略与简单工厂结合策略模式解析 商场促销——策略模式 商场收银软件 时间:2月27日22点 地点:大鸟房间 人物:小菜、大鸟 “小菜,给你…...

万字长文,AIGC算法工程师的面试秘籍,推荐收藏!
目录先行 AI绘画基础: 什么是DreamBooth技术?正则化技术在AI绘画模型中的作用? 深度学习基础: 深度学习中有哪些常用的注意力机制?如何寻找到最优超参数? 机器学习基础: 判别式模型和生成…...

一些超好用的 GitHub 插件和技巧
聊聊我平时使用 GitHub 时学到的一些插件、技巧。 浏览器插件 在我的另一篇博客 浏览器插件推荐 里提到过跟 GitHub 相关的一些插件,这里重复下: Sourcegraph:在线打开项目,方便阅读,将 GitHub 变得和 IDE …...
记Flink SQL 将数据写入 MySQL时的一个优化策略
Flink SQL 将数据写入 MySQL 时,如果主分片数较少,可以通过调整 MySQL 的主分片数来提高读写性能 1. 检查当前的分片设置 在 MySQL 中,使用以下 SQL 查询来查看当前的分片情况: SHOW VARIABLES LIKE innodb_buffer_pool_size; …...

QT-自定义信号和槽对象树图形化开发计算器
1. 自定义信号和槽 核心逻辑: 需要有两个类,一个提供信号,另一个提供槽。 然后在窗口中将 信号和槽 链接起来。 示例目标: 创建一个 Teacher 类,提供信号。 创建一个 Student 类,提供槽。 实现步骤&…...

C# 字符串(String)的应用说明一
一.字符串(String)的应用说明: 在 C# 中,更常见的做法是使用 string 关键字来声明一个字符串变量,也可以使用字符数组来表示字符串。string 关键字是 System.String 类的别名。 二.创建 String 对象的方法说明&#x…...
Redis缓存淘汰算法详解
文章目录 Redis缓存淘汰算法1. Redis缓存淘汰策略分类2. 会进行淘汰的7种策略2.1 基于过期时间的淘汰策略2.2 基于所有数据范围的淘汰策略 3. LRU与LFU算法详解4. 配置与调整5. 实际应用场景 LRU算法以及实现样例LFU算法实现1. 数据结构选择2. 访问频率更新3. 缓存淘汰4. 缓存插…...
Sklearn 与 TensorFlow 机器学习实用指南
Sklearn 与 TensorFlow 机器学习实用指南 Scikit-learn(Sklearn) 1. 简介 2. 特点 3. 基本用法 TensorFlow 1. 简介 2. 特点 3. 基本用法 选择指南 总结 🎈边走、边悟🎈迟早会好 关于使用 Scikit-learn(Sk…...

RabbitMQ 界面管理说明
1.RabbitMQ界面访问端口和后端代码连接端口不一样 界面端口是15672 http://localhost:15672/ 后端端口是 5672 默认账户密码登录 guest 2.总览图 3.RabbitMq数据存储位置 4.队列 4.客户端消费者连接状态 5.队列运行状态 6.整体运行状态...

设备管理与点巡检系统
在现代企业管理中,设备的高效运作至关重要。为此,我们推出了设备管理与点巡检系统,通过自动化管理提升设备使用效率,保障生产安全。 系统特点 设备全生命周期管理 系统涵盖设备的各个阶段,从设备管理、点检、巡检、保…...

计算机网络的整体认识---网络协议,网络传输过程
计算机网络背景 网络发展 独立模式: 计算机之间相互独立; 网络互联: 多台计算机连接在一起, 完成数据共享; 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起; 广域网WAN: 将远隔千里的计算机都连在一起;所谓 "局域网" 和 "广域网" 只是一个相…...

Battery management system (BMS)
电池管理系统(BMS)是一种专门用于监督电池组的技术,电池组由电池单元组成,在电气上按照行x列矩阵配置进行排列,以便在预期的负载场景下,在一段时间内提供目标范围的电压和电流。 文章目录 电池管理系统是如…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...

毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...