【发布时间】:2018-11-25 13:19:34
【问题描述】:
我知道train_test_split会随机拆分,但我需要知道如何根据时间拆分。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
# this splits the data randomly as 67% test and 33% train
如何根据时间分割相同的数据集作为 67% 的训练和 33% 的测试?数据集有一列 TimeStamp。
我尝试搜索类似的问题,但不确定方法。
谁能简单解释一下?
【问题讨论】:
-
你想要一个单调分割 - 例如最早的第三个是测试数据,剩下的是测试?还是您想要一个仅考虑时间而不是时间的确定性函数的随机拆分?
-
我想要一个基于时间的拆分,即根据时间将数据分别拆分为训练和测试。
-
您的采样时间是否一致?连续样本之间是否存在恒定延迟,还是延迟变量?
-
延迟是可变的。我认为的一种方法是根据时间按样本排序,然后将其拆分训练和测试数据,然后在 sklearn 中使用 TimeSeriesSplit
-
但是 train_test_split 正在随机拆分它,正如我在其文档中看到的那样。
标签: python scikit-learn timestamp train-test-split