gpt4 book ai didi

python - 学习 : Get last split from timeSeriesSplit

转载 作者:太空宇宙 更新时间:2023-11-04 02:23:04 25 4
gpt4 key购买 nike

所以我正在使用 timeSeriesSplit从 sklearn 像这样拆分我的数据,

tscv = TimeSeriesSplit(n_splits=3)

现在我知道为了获得拆分索引,我们必须迭代 tscv.split(X)。我的问题是,是否可以直接进入最后一个拆分,而无需迭代拆分。函数返回的对象不完全是一个列表,所以我不知道该怎么做?我只需要最后一次拆分,因为我的数据很大而且没有。 split 的也很大。

提前致谢

最佳答案

TimeSeriesSplit 中的

Split 方法生成索引拆分为了获得特定的拆分,您需要对其进行迭代它用于迭代所有可能的拆分以进行时间序列交叉验证

如果 cv 拆分中的测试数据大小等于 s。然后,无论你做了多少次 split ,最后一次 split 集 train_data = all data except last s data point and test_data as last s data points .因此,如果您想要直接进行最后一次拆分:对数据进行切片。例如。如果你的数据是一个 numpy 数组 X:

import numpy as np
from sklearn.model_selection import TimeSeriesSplit
X = np.array([[1, 2], [0, 4], [1, 2], [2, 4] ,[1, 2], [7, 4], [8, 2], [5, 4]])

n_splits = 2 # select no of splits required
tscv = TimeSeriesSplit(n_splits = n_splits)

n_samples = X.shape[0] # this is how test_size (s)
s = n_samples//(n_splits + 1) # is evaluated internally

X_train_last, X_test_last = X[ :-s], X[-s: ] # s=2 for this split

X_train_last
# array([[1, 2],
# [0, 4],
# [1, 2],
# [2, 4],
# [1, 2],
# [7, 4]])

X_test_last
# array([[8, 2],
# [5, 4]])

此外,如果您在拆分时设置了“max_train_size”。那么你在切片时也需要注意这一点。引用 TimeSeriesSplit documentation here了解详情。

关于python - 学习 : Get last split from timeSeriesSplit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51126327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com