6、基于机器学习的预测

news2024/10/6 4:05:52

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

文章目录

  • 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 pd

N = 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.coloradmin.cn/o/1428363.html

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

相关文章

Python开源项目周排行 2024年第3周

ython 趋势周报,按周浏览往期 GitHub,Gitee 等最热门的Python开源项目,入选的项目主要参考GitHub Trending,部分参考了Gitee和其他。排名不分先后,都是当周相对热门的项目。 入选公式=70%GitHub Trending20%Gitee10%其他 关注微…

K8S-NFS-StorageClass

工作流程 K8s中部署NFS-StorageClass K8s的StorageClass提供了为集群动态创建PV的能力。 1.部署NFS服务 2.选择NFS的Provinisoner驱动 K8S中没有内置的NFS的制备器,而定义StorageClass的时候需要指定制备器(Pervisioner),所以需要&#xf…

Pycharm Community 配置调试Behave

前提:python小白,临时搞python项目,公司限制使用Pycharm版本,故只能使用社区版,然而官方有明确说明:只有Professional版支持Behave。故研究了半天才整清楚社区版调试Behave的设置 没有进行下面的步骤之前&…

C++面试宝典第26题:螺旋矩阵

题目 给你一个正整数n,生成一个包含1到n的平方的所有元素,且元素按顺时针顺序螺旋排列成n x n的正方形矩阵。 示例: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 解析 螺旋矩阵是指按照顺时针(或逆时针)螺旋顺序排列元素的二维矩阵。比如:给定一个如下的3x3矩阵,按顺…

PSoc62™开发板之WDT应用

看门狗 看门狗定时器(WDT)是一种硬件定时器,在出现意外固件时自动复位设备执行路径。如果启用了WDT,则必须在固件中定期进行服务,以避免复位。否则,计时器失效并产生一个设备复位。此外,WDT可以用作中断源或在低功耗唤…

正点原子--STM32定时器学习笔记(1)(更新中....)

F1系列基本定时器(TIM6 / TIM7) 我们的目标是通过TIM6基本定时器定时500ms,让LED0每隔500ms闪一下! 思路:使用定时器6,实现500ms产生一次定时器更新中断,在中断里执行“翻转LED0”。 定时器什…

2024021期传足14场胜负前瞻

2024021期赛事由亚洲杯2场、英超5场,德甲6场、非洲杯1场组成。售止时间为2月3日(周六)19点00分,敬请留意: 本期1.5以下赔率3场,1.5-2.0赔率3场,其他场次基本皆是平半盘、平盘。本期14场整体难度…

第三百零三回

文章目录 1. 概念介绍2. 实现方法2.1 文字信息2.2 红色边框 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现密码输入框"相关的内容,本章回中将介绍如何在在输入框中提示错误.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们…

LabVIEW CVT离合器性能测试

介绍了CVT(连续变速器)离合器的性能测试的一个应用。完成了一个基于LabVIEW软件平台开发的CVT离合器检测与控制系统,通过高效、准确的测试方法,确保离合器性能达到最优。 系统采用先进的硬件配合LabVIEW软件,实现了对…

python-自动化篇-运维-实现读取日志文件最后一行的时间

文章目录 1. 使用Python打开日志文件2.python读取文件最后一行两种方式3.读取当前时间,进行两者相减,超时报警4.将内容推送到企业微信5. 关闭日志文件整体代码 1. 使用Python打开日志文件 在开始实时读取日志文件之前,我们首先需要打开一个日…

深入了解键盘:分类、工作原理与操作指南

键盘 键盘是计算机使用的主要输入设备之一,键盘主要由创建字母、数字和符号并执行附加功能的按钮组成,通常用于向计算机或其他数字设备输入文本、命令和各种控制信号。 键盘是计算机中最重要的字符输入设备,其基本组成元件是按键开关&#…

画质和场景双需求下,海信电视U8KL的变与不变

又到一年春节,最近几年大家过年的方式越来越丰富,但是跟家人在一起看春晚依然是主流,电视也是过年不可或缺的家庭成员。 当然,随着大家对生活品质的要求更高,对电视的要求也变得更高了。比如,现在春晚直播…

ESP-IDF增加自定义组件开发过程记录

ESP-IDF增加自定义组件开发过程记录 记录一下,自定义组件开发方式容易实现代码的复用。比如说在实现一些芯片或者模块的代码上,网上先找找有的话就可以不用自己写了,实在没有的时候只能自己辛苦摸索编写了。 前言: 因为对cmake也不懂&…

纯血鸿蒙来了,鸿蒙App开发该如何提速

“全世界做产品挣钱的公司很多,但有能力打造操作系统的公司没有几家,最后世界上的操作系统就只有三套:鸿蒙、iOS和安卓。” --- 360集团创始人、董事长周鸿祎 “HarmonyOS实现了AI框架、大模型、设计系统、编程框架、编程语言、编译器等全栈…

Google Earth Engine tools——利用geetools中的algorithms算法实现hsv

简介 锐化HSV是一种图像处理技术,它是通过调整图像的颜色分量来增强图像的细节和清晰度。HSV是一种颜色空间模型,它基于人类视觉感知的方式来描述颜色。HSV代表色调(Hue)、饱和度(Saturation)和明度&…

正点原子--STM32中断系统学习笔记(1)

1、什么是中断? 原子哥给出的概念是这样的:打断CPU正常执行的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断。 当发生中断时,当前执行的程序会被暂时中止,进而进入中断处理函…

Vector CANdb++ Editor和CANdb++ Admin的区别

目录 1 CANdb Editor和CANdb Admin的功能偏差 2 CANdb Program窗口 3 下载并安装CANdb Editor和CANdb Admin 3.1 安装CANdb Admin.J1939 3.0 SP27 优质博文推荐阅读(单击下方链接,即可跳转): Vector工具链 CAN Matrix DBC …

解析Excel文件内容,按每列首行元素名打印出某个字符串的统计占比(超详细)

目录 1.示例: 1.1 实现代码1:列数为常量 运行结果: 1.2 实现代码2:列数为变量 运行结果: 1.示例: 开发需求:读取Excel文件,统计第3列到第5列中每列的"False"字段占…

Linux VLAN相关概念、转发原理及处理流程

背景 二、三层转发是网络工程师经常接触到的一个问题,VLAN配置是二、三层转中一个很重要的概念,在配置VLAN的情况下,内核对报文是如何处理的呢? 概念 了解VLAN转发,首先必须知道VLAN相关概念; VLAN作用 V…

闲聊电脑(4)硬盘分区

夜深人静,万籁俱寂,老郭趴在电脑桌上打盹,桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭:冰箱大哥,上次你说的那个“分区”和“格式化”是什么意思? 冰箱:分区么,就是分…