Scikit 学习系列拆分训练测试
Scikit learn split train test for series
我有一个数据,其中包含按排序顺序排列的日期。
我想将给定的数据拆分为训练集和测试集。
但是,我必须以测试必须比训练集更新的方式拆分数据。
请看给出的例子:
假设我们有日期数据:
1, 2, 3, ..., 名词
从1到n的数字代表天数。
我想把它分成 20% 的数据作为训练集,80% 的数据作为测试集。
Good results:
1) train set = 1, 2, 3, ..., 20
test set = 21, ..., 100
2) train set = 101, 102, ... 120
test set = 121, ... 200
我的代码:
train_size = 0.2
train_dataframe, test_dataframe = cross_validation.train_test_split(features_dataframe, train_size=train_size)
train_dataframe = train_dataframe.sort(["date"])
test_dataframe = test_dataframe.sort(["date"])
不适合我!
有什么建议吗?
如果您坚持所有测试数据都比所有训练数据新,那么只有一种方法可以实现所需的 20/80 拆分。
n = features_dataframe.shape[0]
train_size = 0.2
features_dataframe = features_dataframe.sort_values('date')
train_dataframe = features_dataframe.iloc[:int(n * train_size)]
test_dataframe = features_dataframe.iloc[int(n * train_size):]
而且没有任何随机性。
我有一个数据,其中包含按排序顺序排列的日期。
我想将给定的数据拆分为训练集和测试集。 但是,我必须以测试必须比训练集更新的方式拆分数据。
请看给出的例子:
假设我们有日期数据:
1, 2, 3, ..., 名词
从1到n的数字代表天数。
我想把它分成 20% 的数据作为训练集,80% 的数据作为测试集。
Good results:
1) train set = 1, 2, 3, ..., 20
test set = 21, ..., 100
2) train set = 101, 102, ... 120
test set = 121, ... 200
我的代码:
train_size = 0.2
train_dataframe, test_dataframe = cross_validation.train_test_split(features_dataframe, train_size=train_size)
train_dataframe = train_dataframe.sort(["date"])
test_dataframe = test_dataframe.sort(["date"])
不适合我!
有什么建议吗?
如果您坚持所有测试数据都比所有训练数据新,那么只有一种方法可以实现所需的 20/80 拆分。
n = features_dataframe.shape[0]
train_size = 0.2
features_dataframe = features_dataframe.sort_values('date')
train_dataframe = features_dataframe.iloc[:int(n * train_size)]
test_dataframe = features_dataframe.iloc[int(n * train_size):]
而且没有任何随机性。