该错误通常发生在使用AWS SageMaker DeepAR进行模型训练和验证时。出现这个错误通常是因为在验证数据中包含了训练数据集中不存在的部分。
为了解决这个问题,我们可以检查验证数据并确保它们与训练数据集具有相同的格式。此外,我们还可以创建一个新的验证数据集,该数据集只包含训练数据集中存在的数据,以确保验证数据集不包含其他不必要的附加属性。
以下是一个简单的示例,展示了如何创建一个新的验证数据集,以确保它不包含任何其他不必要的属性:
import pandas as pd
import numpy as np
from gluonts.dataset.common import ListDataset
# load training and validation data
train_data = pd.read_csv('train.csv')
valid_data = pd.read_csv('valid.csv')
# extract data and timestamps
train_df = train_data[['timestamp', 'target']]
valid_df = valid_data[['timestamp', 'target']]
# create training and validation datasets
train_dataset = ListDataset(
[{"start": train_df['timestamp'].min(), "target": train_df['target'].values}],
freq = "D"
)
valid_dataset = ListDataset(
[{"start": valid_df['timestamp'].min(), "target": valid_df['target'].values}],
freq = "D"
)
在上面的示例中,我们从训练和验证数据集中提取出时间戳和数据,然后使用 ListDataset
创建了一个完全由训练数据集和验证数据集组成的新数据集。请注意,我们在创建数据集时使用了 freq="D"
参数,这是因为我们的数据集是按天进行时间戳的。你可以根据你的数据集的时间戳格式进行适当更改。
创建新的数据集后,我们将使用这些数据集