timeseries的交叉验证

2024-09-28 21:16:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用sklearn的Timeseriessplit函数来创建训练集和测试集 用于timeseries的交叉验证。例如,我们的想法是使用n-1个数据点进行培训,使用第n个数据点进行测试。此拆分必须始终有序,因为它是时间序列。 但是,我不明白为什么示例中的数据集X的格式如下:

from sklearn.model_selection import TimeSeriesSplit
import numpy as np
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4])
tscv = TimeSeriesSplit(n_splits=3)
print(tscv)  
for train_index, test_index in tscv.split(X):
    print("TRAIN:", train_index, "TEST:", test_index)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

将数据准备为X=np.数组([[1,2],[3,4],[1,2],[3,4]]? 当然,我看了那页的笔记,但还是不明白


Tags: 数据函数testimportindexnptrainsklearn
1条回答
网友
1楼 · 发布于 2024-09-28 21:16:50

通常在时间序列数据中,您希望基于X[0:t-1]数据预测y[t]。此sklearn.model_selection.TimeSeriesSplit方法似乎将大小为N(其中N的单个完整时间序列X(其中N是不同时间步进的实例数)及其在每个时间步y处的相应标签作为参数。那么,X的形状是(4,2),因为我们在不同的时间步有四个实例,每个实例有两个特征。在

我们如何解释这两个特征可能存在争议:

  1. 我们可以将每个实例视为具有一组特性的特定时间点上的单个示例。或者。。。在
  2. 我们可以将每个实例视为一组时间点,在一个时间间隔内定义实例本身。在

两种选择对我来说都是正确的。尽管我们可以如何解释X的结构,但这里的问题是TimeSeriesSplit如何分割数据实例,避免测试数据实例与之前训练数据实例的时间步骤。在

相关问题 更多 >