Python 时间序列预测 - 分割测试和训练

问题描述 投票:0回答:1

我正在完成时间序列预测的 udemy 课程。我对编码非常陌生。

当谈到分割数据时,课程为我指明了手动识别数据分割位置的方向。有没有一种方法可以自动分割此数据,例如测试始终是最近 12 个月的数据。

目前我有这个:

# Set one year for testing
train = df1.iloc[:115]
test = df1.iloc[115:]

数据集非常简单,只有一个时间作为索引和一列总计。

数据示例

python time-series
1个回答
0
投票

自动?不,因为有大量不同的数据集,无法使用相同的例程解析所有数据集。但如果您的数据已排序,那么您自己计算索引就相当容易了:

让我们首先找出所有日期与最后一个日期之间的差异

diff = df.iloc[-1]['date'] - df['date']
0   63 days
1   56 days
2   49 days
3   42 days
4   35 days
5   28 days
6   21 days
7   14 days
8    7 days
9    0 days
Name: date, dtype: timedelta64[ns]

然后找到1个月以上最后一个日期的索引:

more_than_month = diff < np.timedelta64(31, 'D')
0    False
1    False
2    False
3    False
4    False
5     True
6     True
7     True
8     True
9     True
Name: date, dtype: bool
index = more_than_month.argmax()

答案:

np.int64(5)
© www.soinside.com 2019 - 2024. All rights reserved.