当前位置: 首页 > news >正文

python系列31:MLforecast入门

参考这里:https://nixtlaverse.nixtla.io/mlforecast/docs/getting-started/end_to_end_walkthrough.html

1. 测试数据

可以从这里下载数据:https://www.kaggle.com/code/lemuz90/m4-competition
读取测试数据的代码为:

import random
import tempfile
from pathlib import Path
import pandas as pd
from datasetsforecast.m4 import M4
from utilsforecast.plotting import plot_series
await M4.async_download('data', group='Hourly')
df, *_ = M4.load('data', 'Hourly')
uids = df['unique_id'].unique()
random.seed(0)
sample_uids = random.choices(uids, k=4)
df = df[df['unique_id'].isin(sample_uids)].reset_index(drop=True)
df['ds'] = df['ds'].astype('int64')
fig = plot_series(df, max_insample_length=24 * 14)

数据为:
在这里插入图片描述
绘图为:
在这里插入图片描述

2. 去除季节性/日期性波动:target_transforms

比如说下面的代码,就是将每行数据减去前面第24行,得到的新数据(注意要增加freq字段):

from mlforecast import MLForecast
from mlforecast.target_transforms import Differences
fcst = MLForecast(models=[],  # we're not interested in modeling yetfreq=1,  # our series have integer timestamps, so we'll just add 1 in every timesteptarget_transforms=[Differences([24])],
)
prep = fcst.preprocess(df)
prep

在这里插入图片描述

3. 增加features

3.1 lags:进行平移得到新的特征

在这里插入图片描述

3.2 Lag transforms:移动平均得到新的特征

在这里插入图片描述

3.3 Date features: 日期字段转化为特征

在这里插入图片描述

3.4 其他target_transforms

target_transforms会在生成features之前进行计算,这里补充一个LocalStandardScaler,对数据进行了标准化:
在这里插入图片描述

4. 进行预测

在这里插入图片描述
新增数据可以用下面的方法:
在这里插入图片描述

5. 交叉验证

时间序列的交叉验证有些特殊,n_windows表示从后向前划出4个窗口作为predict validation数据,每个窗口的size等于step_size. 每个窗口前的所有数据作为training data。
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 基于有限状态机的测试(五):关键技术(自适应区分序列、识别序列)
  • 制造业网络安全的挑战与应对策略
  • Electron截取响应体
  • 数字孪生系统汽车工厂生产异常监控的智能利器
  • JPA全面指南:使用步骤、语法详解与实战案例
  • 【Python办公】使用pandas批量读取csv保存为Excel
  • 产品哲学:用户收益>操作成本,字节跳动成功的底层逻辑
  • Golang 处理字符串与整型数值相互转换的最佳实践
  • 【备忘】PHP web项目一般部署办法
  • AI LLM大模型逆向环境搭建radare2 + r2mcp + r2ghidra
  • 【设计模式】UML图与工厂模式
  • 提升开发思维的设计模式(上)
  • spring:使用注解@Configuration、@ComponentScan创建配置类(未完待续)
  • C语言:字符函数
  • 基于ssm的教学质量评估系统
  • SQL Server判断中文的高效方法
  • 使用docker compose部署netmaker打通内网
  • 基于Springboot的动态刷新定时任务
  • 工业数据互联新基建:三格电子 PLC 数据采集网关破解跨协议通信难题
  • 高精度算法详解:从原理到加减乘除的完整实现
  • 公司网站源码 带wap手机站/云优客seo排名公司
  • 在什么网站做兼职翻译/做个公司网站大概多少钱
  • 网站开发后台数据库怎么搞/长春网站公司哪家好
  • 买完域名后怎么做网站/云南百度公司
  • 网站建设和维护怎么学/竞价托管收费标准
  • 网站虚拟主机里的内容强制删除/运营商大数据精准营销