TensorFlow中时间序列数据的分布

时间:2018-02-21 18:32:19

标签: python-3.x numpy tensorflow kdb

我目前有一个kdb +数据库,其中包含大约1百万行的财务报表数据。使用Python3,TensorFlow和numpy,将时间序列财务数据分解为训练/开发/测试集的最佳方法是什么?

This paper建议使用k-fold交叉验证,将数据划分为互补子集。但它是从2014年春季开始阅读之后,我仍然不清楚如何在实践中实施它。这是最好的解决方案,还是更适合财务数据的保留验证?

我也有兴趣学习将本地存储的时间序列数据导入TensorFlow模型的最佳实践。

谢谢。

1 个答案:

答案 0 :(得分:0)

可以使用qPython将数据加载到Python进程,然后从sklearn将KFold加载到反复将数据集拆分为训练和测试部分。 假设我们在KDB +端定义了以下表:

t:([] time:.z.t+til 30;ask:100.0+30?1.0;bid:98+30?1.0)

然后在Python方面,您可以执行以下操作来生成列车/测试拆分的索引:

from qpython import qconnection
import pandas as pd
from sklearn.model_selection import KFold

with qconnection.QConnection(host = 'localhost', port = 5001, pandas = True) as q:
    X = q.sync('t')

kf = KFold(n_splits=4)
for train_index, test_index in kf.split(X):
    print("TRAIN:", train_index, "TEST:", test_index)

有关KFold的其他变体,请参阅KFold documentation