时间序列二进制分类

问题描述 投票:0回答:1

问题:

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

对于在建模,特征工程和编辑此数据集时应遵循的方法或方法,我欢迎您的建议和咨询。

其他问题:

1)在使用此数据进行训练和测试时如何拆分数据? 0,80-0,20?您可以推荐其他验证方法吗?

2)一些基金会在以后添加到数据中,因此并非所有基金都有相同长度的数据,例如,2015年成立的“ AEB”基金在2015年之前没有数据。问题,还是最好删除它们并将其从数据集中删除?我总共有27种不同的基金数据。3)此外,我已将对冲基金的代码/名称更改为数字ID,是否可以进行虚拟编码,这样对性能会更好吗?

样本数据集:

     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)移回了目标变量。因此,每行都显示了下个月该基金所在的类别,因此我这样做了,我想预测该月开始的下个月。从T预测为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 | ?      |  
machine-learning time-series classification svm random-forest
1个回答
0
投票

您可以找到许多方法。时间序列具有挑战性,可以在开始时取得较差的结果。我建议您执行以下操作:

  • [添加一些lags作为数据集中的其他列。您要预测t+1并且有t,因此请尝试同时计算t-1t-2t-3
  • 为了了解最好的t-x数量,请尝试绘制ACFPACF图,并查看阴影区域中出现的第一个滞后
  • 滞后可能会提高您的准确性
  • 建模时尝试标准化/标准化数据
  • 尝试查看您的时间序列是否为random walk,如果是,那么最近有很多论文试图解决随机游走预测问题
  • 如果您的数据集足够大,请尝试使用一些神经网络,例如LSTM,RNN,GAN等,它们可能比您提到的浅层模型要好
  • [我真的建议您看Jason Brownlee on Time Series here的教程,Jason非常聪明,您可以随时在他的教程中添加评论。他也很敏感!
© www.soinside.com 2019 - 2024. All rights reserved.