SkLearn 中的 TimeSeriesSplit 无法正常工作
TimeSeriesSplit in SkLearn is not working propertly
TimeSeriesSplitCV 在 sklearn 上无法正常工作。这是适当的行为吗?
使用此处给出的示例:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html
from sklearn.model_selection import TimeSeriesSplit
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4, 5, 6])
tscv = TimeSeriesSplit(n_splits=5)
print(tscv)
for train_index, test_index in tscv.split(X):
print("TRAIN:", train_index, "TEST:", test_index)
当您将拆分数更改为 2 而不是默认值 n_splits = 5 时,测试数据的长度变为 2 而不是 1。但是,对于 SKLearn 文档和最常见的场景,目标是按时间顺序预测下一次观察。我是不是误会了什么?
TRAIN: [0 1] TEST: [2 3]
TRAIN: [0 1 2 3] TEST: [4 5]
验证集仅包含 下一个观察结果只是一个特例,当您将 n_splits
设置为 n_samples - 1
时,其中 n_samples
是您数据集中的样本数。
官方文档字符串示例正是这样做的(n_samples=6
和 n_splits=5
)。通常,验证集包含不止 1 个样本。
查看更全面的示例here。下面我附上了它的情节。在这种情况下 n_samples=100
、n_splits=4
并且每个验证(测试)集包含 20 个样本。
TimeSeriesSplitCV 在 sklearn 上无法正常工作。这是适当的行为吗?
使用此处给出的示例:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html
from sklearn.model_selection import TimeSeriesSplit
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4, 5, 6])
tscv = TimeSeriesSplit(n_splits=5)
print(tscv)
for train_index, test_index in tscv.split(X):
print("TRAIN:", train_index, "TEST:", test_index)
当您将拆分数更改为 2 而不是默认值 n_splits = 5 时,测试数据的长度变为 2 而不是 1。但是,对于 SKLearn 文档和最常见的场景,目标是按时间顺序预测下一次观察。我是不是误会了什么?
TRAIN: [0 1] TEST: [2 3]
TRAIN: [0 1 2 3] TEST: [4 5]
验证集仅包含 下一个观察结果只是一个特例,当您将 n_splits
设置为 n_samples - 1
时,其中 n_samples
是您数据集中的样本数。
官方文档字符串示例正是这样做的(n_samples=6
和 n_splits=5
)。通常,验证集包含不止 1 个样本。
查看更全面的示例here。下面我附上了它的情节。在这种情况下 n_samples=100
、n_splits=4
并且每个验证(测试)集包含 20 个样本。