时间序列二元分类

Time series binary classfication

问题:

我有一个关于对冲基金的数据集。它包含月度对冲基金 returns 和一些财务指标。我计算了从 2010 年到 2019 年 12 月每个月的指标。 (2889 月度数据)我想根据这些指标对冲基金 class 化并预测下个月对冲基金的 class 基础。我想从 T 时间开始预测 T+1。我想使用随机森林和其他 classifiers(决策树、KNN、SVM、逻辑回归)。我知道这个数据集是时间序列问题,如何将其转换为机器学习问题。

对于您在建模、特征工程和编辑此数据集时应遵循何种方法或方法,我愿意接受您的建议和建议。

其他问题:

1)使用这些数据进行训练和测试时,如何进行数据拆分? 0,80-0,20?。您是否可以推荐任何其他验证方法?

2)有些基金是后来加入数据的,所以并不是所有的基金都有等长的数据,比如2015年成立的"AEB"基金,2015年之前就没有数据了,有几个这样的资金,它们会引起问题,还是删除它们并将它们从数据集中删除更好?我总共有 27 个不同的基金数据。 3)另外,我把hedge funds的tickers/names改成了numeric ID,可不可以做dummy encoding,性能会不会更好?

示例数据集:

     Date    | Fund Name / Ticker | sharpe | sortino | beta  | alpha | target |  
 ------------|--------------------|--------|---------|-------|-------|--------|-- 
  31.03.2010 | ABC                | -0,08  | 0,025   | 0,6   | 0,13  | 1      |  
  31.03.2010 | DEF                | 0,41   | 1,2     | 1,09  | 0,045 | 0      |  
  31.03.2010 | SDF                | 0,03   | 0,13    | 0,99  | -0,07 | 1      |  
  31.03.2010 | CBD                | 0,71   | -0,05   | 1,21  | 0,2   | 1      |  
  30.04.2010 | ABC                | 0,05   | -0,07   | 0,41  | 0,04  | 0      |  
  30.04.2010 | DEF                | 0,96   | 0,2     | 1,09  | 1,5   | 0      |  
  30.04.2010 | SDF                | -0,06  | 0,23    | 0,13  | 0,23  | 0      |  
  30.04.2010 | CBD                | 0,75   | -0,01   | 0,97  | -0,06 | 1      |  
  :          | :                  | :      | :       |  :    | :     | :      |  
  :          | :                  | :      | :       |  :    | :     | :      |  
  30.12.2019 | ABC                | 0,05   | -0,07   | 0,41  | 0,04  | 1      |  
  30.12.2019 | DEF                | 0,96   | 0,2     | 1,09  | 1,5   | 0      |  
  30.12.2019 | SDF                | -0,06  | 0,23    | 0,13  | 0,23  | 0      |  
  30.12.2019 | CBD                | 0,75   | -0,01   | 0,97  | -0,06 | 1      |  
  30.12.2019 | FGF                | 1,45   | 0,98    | -0,03 | 0,55  | 1      |  
  30.12.2019 | AEB                | 0,25   | 1,22    | 0,17  | -0,44 | 0      |  

我的想法和第一次尝试: 我模拟了一个例子。我使用了这样的方法,将(-1)移回目标变量。所以每一行都显示了 class 其中基金所在的 month.I 因为这个,我想在那个月开始之前预测下个月。从 T.But 预测到 T+1 此模型给出了非常差的结果。(%43)

此模型数据集的视图:

     Date    | Fund Name / Ticker | sharpe | sortino | beta  | alpha | target |  
 ------------|--------------------|--------|---------|-------|-------|--------|-- 
  31.03.2010 | ABC                | -0,08  | 0,025   | 0,6   | 0,13  | 1      |  
  31.03.2010 | DEF                | 0,41   | 1,2     | 1,09  | 0,045 | 0      |  
  31.03.2010 | SDF                | 0,03   | 0,13    | 0,99  | -0,07 | 1      |  
  31.03.2010 | CBD                | 0,71   | -0,05   | 1,21  | 0,2   | 1      |  
  30.04.2010 | ABC                | 0,05   | -0,07   | 0,41  | 0,04  | 0      |  
  30.04.2010 | DEF                | 0,96   | 0,2     | 1,09  | 1,5   | 0      |  
  30.04.2010 | SDF                | -0,06  | 0,23    | 0,13  | 0,23  | 0      |  
  30.04.2010 | CBD                | 0,75   | -0,01   | 0,97  | -0,06 | 1      |  
  :          | :                  | :      | :       |  :    | :     | :      |  
  :          | :                  | :      | :       |  :    | :     | :      |  
  30.12.2019 | ABC                | 0,05   | -0,07   | 0,41  | 0,04  | 0      |  
  30.12.2019 | DEF                | 0,96   | 0,2     | 1,09  | 1,5   | 0      |  
  30.12.2019 | SDF                | -0,06  | 0,23    | 0,13  | 0,23  | 1      |  
  30.12.2019 | CBD                | 0,75   | -0,01   | 0,97  | -0,06 | 1      |  
  30.12.2019 | FGF                | 1,45   | 0,98    | -0,03 | 0,55  | 0      |  
  30.12.2019 | AEB                | 0,25   | 1,22    | 0,17  | -0,44 | ?      |  

您可以找到许多方法。时间序列是有挑战性的,一开始结果不好也没关系。我建议您执行以下操作:

  • 在您的数据集中添加一些 lags 作为附加列。你想预测 t+1 并且你有 t,所以也尝试计算 t-1t-2t-3
  • 为了知道您可以拥有的 t-x 的最佳数量,请尝试绘制 ACFPACF 绘图并查看出现在阴影中的第一个滞后地区
  • 滞后可能会提高您的准确性
  • 尝试在建模时normalize/standardize你的数据
  • 看看你的时间序列是不是random walk,如果是的话,最近有很多论文试图解决随机游走预测的问题
  • 如果你的数据集足够大,尝试使用一些神经网络,如 LSTM、RNN、GAN 等,它们可能比你提到的浅层模型更好
  • 我真的建议你看看 Jason Brownlee on Time Series here Jason 的教程,他非常聪明,你可以随时在他的教程中添加评论。他也有求必应!!