【问题标题】:Distribution of time series data in TensorFlowTensorFlow 中时间序列数据的分布
【发布时间】:2018-02-21 18:32:18
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • 两个非常大的问题。它们非常好,但我认为它们不适合像 SO 这样的编程问答网站。
  • 谢谢@duffymo。有什么建议可以最好地接收这些问题,或者有哪些链接可以为我指明正确的方向?
  • 你可以在kdb personal developers google group找到成功
  • @ThomasSmyth 我想我会这样做的。虽然一开始我很犹豫,因为我不想要纯 Kdb+/q 解决方案来导入数据。但我想我可以把它和 pyq 结合起来让它在 Python 中工作。

标签: python-3.x numpy tensorflow kdb


【解决方案1】:

可以使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 2015-09-21
    • 2015-06-16
    • 1970-01-01
    • 2023-02-15
    • 2020-11-17
    • 2020-11-04
    • 2021-11-16
    相关资源
    最近更新 更多