这是一个具体的示例场景:
我想训练一个分类器来预测某一特定股票第二天的价格会上涨还是下跌。
这是我想要的方式:
我在特定时间段内获得特定股票的每日收盘价。我想生成包括exponential weighted moving average和price rate of change在内的功能。某一天的这些计算需要前几天的收盘价。然后我想计算一个目标变量1或-1,表明股票价格在第二天上涨还是下跌。
生成特征和目标后,我想将数据拆分为训练/测试(甚至训练/验证/测试)组,然后训练和测试分类器以预测目标。
最后,我想在sklearn管道中实现和执行这些步骤有两个主要原因:1。)轻松操纵数据流和/或尝试不同的分类器和2.)运行网格搜索以找到要用于的好参数功能生成步骤和分类器 - 例如计算指数加权移动平均数或在随机森林分类器中应使用多少估算器时应考虑多少天?
这是我遇到的问题:
从我读到的sklearn Pipelines,我需要创建自定义转换,并可能使用FeatureUnion来生成这些功能。但是,我见过的例子都叫.fit(X_train, y_train)
,它运行管道中的每一步(包括生成功能)。但我的功能依赖于其他可能不在X_train中的行。
看看tsfresh的文档。他们甚至有一个你正在寻找的例子:using time series transforms with sklearn pipelines'