交易中的机器学习:理论、模型、实践和算法交易 - 页 742

 

记得我说过,我收到的是一个从2018年1月31日到现在一直在收益的模型,而这是这个模型从2018年5月3日到现在这两周的表现。测试结果。

对于一个靠40分训练的老太太来说,这已经是很好的成绩了,而且现在已经有1.5个月的时间在进行OOS。

这是她从2018年1月31日开始的全部OOS。

而你仍然认为它是一个合适的????只是提醒一下,截图显示的是OOS部分

 

我将给出计算结果,这表明一切都只是空谈。

  • 如果没有仔细的理由证明预测因素会影响目标变量
  • 过度训练(overfitting)只在训练时间以外的时间的文件上确定。

初始数据。

两个连续的时间文件,有54个预测因素和一个关于趋势反转的目标变量:短出长进

计算是在rattle中进行的,第一个文件R Rat_DF1a分为三个部分:训练、测试、验证。划分部分是通过抽样完成的,即随机选择原始文件中的小节。

RF计算结果:500棵树,每个节点7个预测器。

用于建立模型的观测值数量:2491个

缺失值归纳法是有效的。


呼叫。

randomForest(公式 = trainY ~ ,

data = crs$dataset[crs$sample, c(crs$input, crs$target)] 。

ntree = 500, mtry = 7, importance = TRUE, replace = FALSE, na.action = randomForest::na.roughfix)


随机森林的类型:分类

树木的数量: 500

在每个分叉处尝试的变量数量:7。


OOB估计的错误率: 1.61%

混淆矩阵。

-1 0 1 class.error

-1 498 5 2 0.01386139

0 3 1067 17 0.01839926

1 1 12 886 0.01446051

这是个了不起的结果!一个圣杯!注意,AOB是训练中没有使用的那块文件。

这里我们也看一下训练误差。 我们看到不需要500棵,我们可以用50或100棵树就能搞定。



让我们在测试部分检查一下

Rat_DF1a的随机森林模型的误差矩阵[测试](计数)。


预测的

实际-1 0 1 误差

-1 110 3 0 2.7

0 3 221 2 2.2

1 0 2 194 1.0


Rat_DF1a的随机森林模型的误差矩阵[测试](比例)。


预测的

实际-1 0 1 误差

-1 20.6 0.6 0.0 2.7

0 0.6 41.3 0.4 2.2

1 0.0 0.4 36.3 1.0


总体误差:1.8%,平均等级误差:1.96667%


拉特时间戳: 2018-03-14 10:57:23 用户


训练结果得到了确认。Grail!


让我们在验证部分再仔细检查一下。

Rat_DF1a的随机森林模型的误差矩阵[验证](计数)。


预测的

实际-1 0 1 误差

-1 105 1 0 0.9

0 1 218 2 1.4

1 0 1 205 0.5


Rat_DF1a的随机森林模型的误差矩阵[验证](比例)。


预测的

实际-1 0 1 误差

-1 19.7 0.2 0.0 0.9

0 0.2 40.9 0.4 1.4

1 0.0 0.2 38.5 0.5


总体误差:0.9%,平均类误差:0.93333%


拉特时间戳: 2018-03-14 10:59:52 用户


Grail!你可以跑到小额贷款公司去借尽可能多的面团。


但有一个BUT:文件的划分是通过随机抽样的方式进行的,并将严格按照时间的增加进行交易。

让我们检查一下保存该年表的文件--它是Rat_DF1b

而这就是结果。

Rat_DF1b的随机森林模型的误差矩阵(计数)。


预测的

实际-1 0 1 误差

-1 0 324 237 100.0

0 0 633 540 46.0

1 0 152 697 17.9


Rat_DF1b的随机森林模型的误差矩阵(比例)。


预测的

实际-1 0 1 误差

-1 0 12.5 9.2 100.0

0 0 24.5 20.9 46.0

1 0 5.9 27.0 17.9


总体误差:48.5%,平均类误差: 54.63333%


拉特时间戳: 2018-03-14 11:02:16 用户


灾难性事件!模型被重新训练!预测器与目标变量的关系只是噪音,只有在噪音上才能产生如此惊人的结果。


我已经向你展示了一个正常的、普通的、大学生水平的模型拟合和验证方案。主要缺点:它缺乏对预测因素和目标变量之间关系的考虑。

但这个方案至少应该是这样的,而且它还没有完成--你仍然需要一个测试员运行来确认普通顺序文件的测试结果。好吧,然后到了小额贷款公司。



 
桑桑尼茨-弗门科

我将给出计算结果,表明一切都只是空谈。

  • 过度训练(overfitting)只在训练时间以外的文件上由TIME决定。

这很奇怪,你的测试结果这么好。在我的实验中,那里的情况要糟糕得多。通过在混合前对RNG做不同的初始化,我在测试和验证中得到了不同的结果--在不同的RNG下,无论是误差还是交易数量都非常不同。

结果,我得出的结论是,根本不需要测试和验证,有必要在一个站点进行训练,在另一个站点进行评估(你把它作为一个单独的文件)。这样,混合的 "好运气 "的随机因素将被排除。

 

伙计们,圣杯 准备好了吗?

 
桑桑尼茨-弗门科

我将给出计算结果,这表明一切都只是空谈。

  • 如果没有仔细的理由证明预测因素会影响目标变量
  • 过度训练(overtraining)只在训练时间以外的时间的文件上确定。

初始数据。

两个连续的时间文件,有54个预测因素和一个关于趋势反转的目标变量:短出长进

计算是在rattle中进行的,第一个文件R Rat_DF1a分为三个部分:训练、测试、验证。划分部分是通过抽样进行的,即随机选择源文件中的小节。



但有一个BUT:文件的分割是通过随机选择条形来完成的,而交易将严格通过增加时间来完成。

让我们检查一下保存该年表的文件 - Rat_DF1b



总体误差:48.5%,平均班级误差: 54.63333%


拉特时间戳: 2018-03-14 11:02:16 用户


灾难性事件!模型被重新训练!预测器与目标变量的关系只是噪音,只有在噪音上才能产生如此惊人的结果。


我已经向你展示了一个正常的、普通的、大学生水平的模型拟合和验证方案。主要缺点:它缺乏对预测因素和目标变量之间关系的考虑。

但是,这个方案至少应该是这样的,而且它还没有完成--我们需要再运行一次测试器,这将确认普通顺序文件的测试结果。好吧,那就去找小额贷款公司。



这是划分子集(训练/评价/测试)的一个基本错误。顺序应该是这样的。

  1. 将按时间顺序排列的数据集分成训练/评价/测试。
  2. 在训练时,只有训练集(从来没有验证集和测试集)应该被洗掉。当然,我说的是分类。
  3. 所有的转换参数和预测器的转换都只在训练集上获得。我们在价值/测试中使用它们。
  4. 预测器的评估、选择和创建仅在训练集上进行。

好运。

 

当涉及到使用模型估计预测器时,我认为最先进的软件包是RandomUniformForest。它从不同的角度非常详细地论述了预测器的重要性。我建议你看一下它。在我的一篇文章中,我详细地描述了它。

我拒绝使用预测因子的 模型选择。限于所使用的模型的具体情况。

祝好运

 
弗拉基米尔-佩雷文科
  1. 训练时,我们只混合训练集(绝不是验证集和测试集)。当然,是在谈论分类。

来自Nikopenko S., Kadurin A., Arkhangelskaya E."深度学习 "p.139.


为了使验证数据与训练数据具有相同的性质,你必须将它们混合起来。否则那里可能会出现一块随机的趋势或一个平面。因此,我们不会评估该模型的泛化能力,而是将其拟合到某一时期的某一大块连续历史上(毕竟我们会在这里停下来)。

但是,正如我在上面写的,在对GSF进行了不同的初始化实验之后,通过成功获得了不同的有效集合,我得出的结论是,有效集合可能不需要。除此以外,还可以使用其他正则化的方法。然而,这些实验是在少量的数据上进行的(5天),如果例子的数量增加10倍,也许混合将更加均匀,这些部分的数据将是同质的(即相同的性质)--在这种情况下,有效可能是有用的。

更新:如果有大量的数据,并且在有效图中包括了两个方向的几个翻转和趋势,那么与训练集混合可能就没有必要了。
 
Vladimir Perervenko:

当涉及到使用模型估计预测器时,我认为最先进的软件包是RandomUniformForest。它从不同的角度非常详细地论述了预测器的重要性。我建议你看一下它。在我的一篇文章中,我详细地描述了它。

我拒绝使用预测因子的模型选择。限于所使用的模型的具体情况。

祝好运

而我认为最先进的是一个完全不同的产品;-)....。其中,它的实施方式略有不同。

两个网络,其中样本分为2个子样本训练和测试,其中对于网络B(第二个多项式)来说,托盘项这完全算作测试样本,其中一半由一个多项式工作,另一半由另一个多项式工作。而且各班级平均分配。也就是说,1被平均分成托盘和测试,0也被平均分成。不幸的是,那里没有时间。文件可以按任何矢量的顺序设置。也许这就是降低超限的关键。


真相我不太明白,可能说的是验证部分是我最喜欢的优化器中的跟踪部分?

而在你的案例中,测试部分是一个控制,当我们让网络工作一段时间后...我对概念感到困惑...

 

在任何情况下,我认为测试部分不能以任何方式影响训练部分,对于分类任务来说,应该尽可能随机地形成,测试部分即使按时间排序,也不会取决于这个非常时期。为什么?因为通过混合所有的数据,我们试图从这组数据中获得真正的潜力,而不是以有序的形式获得幸运的巧合的情况。因此,当你洗刷你的数据时,你真的看到它能做什么...像这样....

通过多次优化,结果应该在10-20%内跳跃只是因为数据的排序问题,一次排序好,另一次就差一点,等等....。IMHO!!!

 
elibrarius

来自Nikopenko S., Kadurin A., Arkhangelskaya E."深度学习 "p.139.


为了使验证数据与训练数据具有相同的性质--你需要将它们洗牌。否则,可能会出现随机的一块趋势或平坦。因此,我们不会评估模型的泛化能力,而是将其拟合到某一时期的某一段连续历史中(毕竟我们会停在那里)。

但是,正如我在上面写的,在对GSF进行了不同的初始化实验之后,通过成功获得了不同的有效集合,我得出的结论是,有效集合可能不需要。除此以外,还可以使用其他正则化的方法。然而这些实验是在少量的数据上进行的(5天),如果例子的数量增加10倍,也许混合会更加均匀,这些图上的数据会更加均匀(即性质相同)。

更新:如果有大量的数据,并且有效图谱包括几个楞次和两个方向的趋势,那么在这种情况下,与训练集混合可能是不必要的。

年轻人的矛盾精神是不屈不挠的 :)

我说的是时间序列的分类。例如,对于M15来说,两周的训练约为1000条。下周的验证是500条。在训练过程中,我们混合了训练集,但没有混合验证集。

在两种情况下需要在分离前混合整个集合:分层集合和交叉验证。在这种情况下,抽样也必须在没有替换的情况下进行,以避免在两组中包括相同的例子。

鉴于我们对例子的数量没有限制,而且这些都是时间序列,最好在混合之前进行分割。IMHO