时间序列交叉验证
tscv的Python项目详细描述
tscv:时间序列交叉验证
此存储库是时间序列交叉验证的scikit-learn扩展。 它在训练集和测试集之间引入gaps,从而减轻时间序列的时间依赖性,防止信息泄漏。
安装
pip install tscv
更新
pip install tscv --upgrade
我建议你经常更新。
用法
这个扩展定义了3个交叉验证类和1个函数:
GapLeavePOut
GapKFold
GapWalkForward
gap_train_test_split
这三个类都可以作为cv
参数传递给scikit-learn
中的cross_val_score
函数,就像scikit-learn
中的本机交叉验证器类一样。
one函数是scikit-learn
中train_test_split
函数的替代函数。
示例
下面的示例使用GapKFold
而不是KFold
作为交叉验证器。
importnumpyasnpfromsklearnimportdatasetsfromsklearnimportsvmfromsklearn.model_selectionimportcross_val_scorefromtscvimportGapKFoldiris=datasets.load_iris()clf=svm.SVC(kernel='linear',C=1)# use GapKFold as the cross-validatorcv=GapKFold(n_splits=5,gap_before=5,gap_after=5)scores=cross_val_score(clf,iris.data,iris.target,cv=cv)
下面的示例使用gap_train_test_split
将数据集拆分为训练集和测试集。
importnumpyasnpfromtscvimportgap_train_test_splitX,y=np.arange(20).reshape((10,2)),np.arange(10)X_train,X_test,y_train,y_test=gap_train_test_split(X,y,test_size=2,gap_size=2)
支架
请参阅文档here。
如果您需要进一步的帮助,请使用问题跟踪器。
贡献
- 在问题跟踪程序中报告错误
- 在问题跟踪程序中表达您的用例
作者
这个分机主要是我郑文杰开发的。
GapWalkForward
交叉验证器改编自scikit-learn
的TimeSeriesSplit
。
确认
- 我要感谢克里斯托夫·伯格梅尔、普拉比·伯曼和杰弗里·拉辛的有益讨论。
- 我要感谢雅克乔伯特鼓励我开发这个包。
许可证
BSD-3-条款