6、基于机器学习的预测

应用机器学习的任何预测任务与这四个策略。

文章目录

  • 1、简介
  • 1.1定义预测任务
  • 1.2准备预测数据
  • 1.3多步预测策略
      • 1.3.1多输出模型
      • 1.3.2直接策略
      • 1.3.3递归策略
      • 1.3.4DirRec 策略
  • 2、流感趋势示例
      • 2.1多输出模型
      • 2.2直接策略

1、简介

在第二课和第三课中,我们将预测视为一个简单的回归问题,所有的特征都是从一个输入,即时间索引,衍生出来的。我们可以通过生成我们想要的趋势和季节性特征,轻松地对未来的任何时间进行预测。

但是,当我们在第四课中添加了滞后特征时,问题的性质就发生了变化。滞后特征要求在进行预测时,滞后的目标值是已知的。滞后 1 的特征将时间序列向前移动 1 步,这意味着你可以预测未来的 1 步,但不能预测 2 步。

在第四课中,我们只是假设我们可以一直生成滞后特征,直到我们想要预测的期间(换句话说,每个预测都是向前一步)。然而,现实世界的预测通常需要更多的信息,所以在这一课中,我们将学习如何针对各种情况进行预测。

1.1定义预测任务

在设计预测模型之前,有两件事情需要确定:

  • 在进行预测时,有哪些信息是可用的(特征),以及,
  • 你需要预测值的时间段(目标)。

预测起点是你进行预测的时间。实际上,你可以将预测起点视为你有训练数据的最后一个时间,用于预测正在预测的时间。起点之前的所有内容都可以用来创建特征。

预测范围是你进行预测的时间。我们通常用预测范围内的时间步数来描述一个预测:例如,“1 步”预测或“5 步”预测。预测范围描述了目标。
在这里插入图片描述
一个三步预测范围,有两步的提前时间,使用四个滞后特征。该图表示了一行训练数据的内容,也就是一个预测的数据。

起点和范围之间的时间是预测的提前时间(或有时称为延迟)。预测的提前时间由起点到范围的步数来描述:例如,“1 步前”或“3 步前”的预测。在实践中,由于数据获取或处理的延迟,可能需要一个预测从起点开始多步前进行。

1.2准备预测数据

为了用机器学习算法进行时间序列预测,我们需要将序列转换为一个可以用于这些算法的数据框。(当然,除非你只使用确定性的特征,如趋势和季节性。)

我们在第四课中看到了这个过程的前半部分,当时我们用滞后值创建了一个特征集。后半部分是准备目标值。我们如何做这个取决于预测任务的不同。

数据框中的每一行代表一个单独的预测。行的时间索引是预测范围内的第一个时间,但我们将整个范围内的值都安排在同一行中。对于多步预测,这意味着我们需要一个模型能够产生多个输出,每一步一个。

In [1]:

import numpy as np
import pandas as pdN = 20
ts = pd.Series(np.arange(N),index=pd.period_range(start='2010', freq='A', periods=N, name='Year'),dtype=pd.Int8Dtype,
)# Lag features
X = pd.DataFrame({'y_lag_2': ts.shift(2),'y_lag_3': ts.shift(3),'y_lag_4': ts.shift(4),'y_lag_5': ts.shift(5),'y_lag_6': ts.shift(6),    
})# Multistep targets
y = pd.DataFrame({'y_step_3': ts.shift(-2),'y_step_2': ts.shift(-1),'y_step_1': ts,
})data = pd.concat({'Targets': y, 'Features': X}, axis=1)data.head(10).style.set_properties(['Targets'], **{'background-color': 'LavenderBlush'}) \.set_properties(['Features'], **{'background-color': 

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

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

相关文章

安卓SurfaceTexture中updateTexImage使用及源码分析

文章目录 引言updateTexImage 简单使用SurfaceTexture 初始化相关源码分析Surface 绘制流程源码分析createBufferQueue 源码分析SurfaceTexture 之 updateTexImage 源码分析结尾 本文首发地址 https://h89.cn/archives/140.html 最新更新地址 https://gitee.com/chenjim/chenji…

Javaweb之SpringBootWeb案例之yml配置文件的详细解析

4.2 yml配置文件 前面我们一直使用springboot项目创建完毕后自带的application.properties进行属性的配置,那其实呢,在springboot项目当中是支持多种配置方式的,除了支持properties配置文件以外,还支持另外一种类型的配置文件&am…

你们看好鸿蒙开发嘛?反正我是看透了

前端也好Android、Java也罢。都逃不过市场的需求,岗位是市场需求决定的。现在的整个IT行情来看,互联网市场并不太好,所以如果要短时间内打破这一条例;那就是新型技术的突破。 鸿蒙的未来好不好,能不能入? …

店群如何防关联?抖音小店被限流怎么办?——站斧浏览器云桌面

无论是抖音小店店铺,还是其他店铺;使用相同法人、相同类目,多开都会被限流,甚至严重到全部店铺迟迟不出单。 下面小编根据不同情况给出解决方案: 1.不同法人、相同类目的情况 使用云服务器(站斧云桌面&am…

【Java网络编程04】网络原理进阶(二)

1. 前言 在网络原理进阶(一)部分我们详细介绍了UDP/TCP两大协议及其相关特性,本章我们会讨论网络层、数据链路层、物理层相关协议。但是需要注意的是,如果有小伙伴们未来是想成为Java后端开发工程师的,那么未来工作中…

3D打印技术在建筑业中的潜力有哪些?HOOPS又是如何应用其中的?

近年来,3D打印技术以其独特的优势逐渐渗透到各行各业,而在建筑业中,其应用正呈现出巨大的潜力。本文将探讨3D打印技术在建筑领域中的各种可能性,同时关注于HOOPS在这一领域中的应用,如何推动和优化3D打印的实施。 一、…

Spring速成(一)

文章目录 Spring速成(一)1,课程介绍1.1 为什么要学?1.2 学什么?1.3 怎么学? 2,Spring相关概念2.1 初识Spring2.1.1 Spring家族2.1.2 了解Spring发展史 2.2 Spring系统架构2.2.1 系统架构图2.2.2 课程学习路线 2.3 Spring核心概…

ELK集群搭建(基础教程)

ELK集群搭建(基础教程) 目录: 机器准备 集群内各台机器安装Elasticsearch 安装部署Kafka(注:每个节点都配置,注意ip不同) 安装logstash工具 安装filebeat ELK收集Nginx的json日志 ELK收集Nginx正常日志和错误日…

在windows和Linux中的安装 boost 以及 安装 muduo 和 mysql

一、CMake安装 Ubuntu Linux 下安装和卸载cmake 3.28.2版本-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135960115?spm1001.2014.3001.5501二、安装boost boost官网:boost官网 我下载的boost版本: windows:boost_1_84_0.zipli…

双非本科准备秋招(14.2)—— 进程与线程

进程 进程是运行着的程序,是程序在操作系统的一次执行过程,进程是操作系统分配资源的基本单位。 启动一个java程序,操作系统就会创建一个java进程 进程也可以看作一个程序的实例,大部分程序可以运行多个实例进程,比如记…

基于springboot+vue的阿博图书馆管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

在Ubuntu安装开源数据库MySQL 8.0版本

文章目录 更新软件包列表安装MySQL服务器配置MySQL账号密码配置MySQL的统一字符启动MySQL服务允许远程连接Windows SSH连接Ubuntu推荐阅读 在Ubuntu 22.04上安装MySQL 8.0的步骤相对直接,可以使用APT包管理器从官方存储库中安装。 更新软件包列表 更新软件包列表&a…