July 2025
Beginner to intermediate
444 pages
6h 20m
Chinese
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
第 9 章介绍了序列数据和时间序列的属性,包括季节性、趋势、自相关性和噪声。你创建了一个用于预测的合成序列,并探索了如何进行基本的统计预测。
在接下来的几章中,你将学习如何使用 ML 进行预测。但在开始创建模型之前,您需要了解如何通过创建我们称之为Windows 的数据集来构建用于训练预测模型的时间序列 数据。
要理解为什么需要这样做,请参考第 9 章中创建的时间序列。您可以在图 10-1 中看到它的曲线图。
例如,您想预测时间序列在时间步长 1,200 时的值,并将其作为时间步长t 之前 30 个值的函数。在这种情况下,时间步骤 1170 至 1199 的值将决定时间步骤 1200 的值(见图 10-2)。
现在,这看起来很熟悉了:您可以将 1,170 至 1,199 的值视为特征,将 1,200 的值视为标签。如果能将数据集设置为有一定数量的值作为特征,下面的值作为标签,并对数据集中的每个已知值都这样做,那么最终就会得到一组相当不错的特征和标签,可以用来训练模型。
在对第 9 章中的时间序列数据集进行训练之前,让我们先创建一个非常简单的数据集,它具有相同的属性,但数据量要小得多。
PyTorch 有很多对操作数据很有用的 API。例如,您可以使用torch.arange(10) 创建一个包含 0-9 数字的基本数据集,从而模拟时间序列。然后,您可以将该数据集转化为窗口数据集的雏形。代码如下:
importtorchdefcreate_sliding_windows(data,window_size,shift=1):# Convert input to tensor if it isn't alreadyifnotisinstance(data,torch.Tensor):data=torch.tensor(data)# Calculate number of valid windowsn=len(data)num_windows=max(0,(n–window_size)//shift+1)# Create strided view of datawindows=data.unfold(0,window_size,shift)returnwindows# Example usage:data=torch.arange(10)windows=create_sliding_windows(data,window_size=5,shift=1)# Print each windowforwindowinwindows:(window.numpy())
首先,使用范围创建数据集,简单来说就是让数据集包含 ...
Read now
Unlock full access