使用Scikit-learn Pipelines,当功能依赖于其他行时,如何从时间序列数据生成要素?

时间:2018-03-13 14:59:47

标签: python scikit-learn time-series pipeline

以下是具体示例方案:

我想训练一个分类器,以预测某一特定股票第二天的价格会上涨还是下跌。

以下是我想要的方式:

我在特定时间段内拥有特定股票的每日收盘价。我想生成包括exponential weighted moving averageprice rate of change在内的功能。某一天的这些计算需要前几天的收盘价。然后我想计算一个目标变量1或-1,表明股票价格第二天上涨或下跌。

在生成要素和目标后,我想将数据拆分为训练/测试(甚至训练/验证/测试)组,然后训练和测试分类器以预测目标。

最后,我想在sklearn管道中实现和执行这些步骤有两个主要原因:1。)轻松操纵数据流和/或尝试不同的分类器和2.)运行网格搜索以找到好的参数在特征生成步骤和分类器中使用 - 例如计算指数加权移动平均数或在随机森林分类器中应使用多少估算器时应考虑多少天?

以下是我遇到的问题:

从我读过的有关sklearn Pipelines的内容中,我需要创建自定义转换,并可能使用FeatureUnion来生成这些功能。但是,我看到的示例都调用.fit(X_train, y_train),它运行管道中的每个步骤(包括生成功能)。但我的功能依赖于其他可能不在X_train中的行。

1 个答案:

答案 0 :(得分:0)

查看tsfresh的文档。他们甚至提供了您要查找的示例:using time series transforms with sklearn pipelines'