混乱中有规律可循吗?让我们试着找出它!以特定样本为例进行机器学习。 - 页 20

 
Aleksey Vyazmikin #:

你是如何理解这一点的--有一种模式,但你找不到它?还是随机中蕴含着规律?

你只要仔细读一读上面说的。

字里行间什么都没有,逐字逐句,非常清楚。

你第二次提出了一个与我所写内容不符的问题。

 
elibrarius #:

如何做到不贪心?为每次分割再计算一次,然后一次性选择一对,但在您的情况下,计算时间将增加 5000 多倍。平均计算一百个模型更简单。

我更倾向于质量,即附加评估标准。

另一种方法--为预测因子加权,确保其应用的一致性--不是一个清晰的树状框架。这有点像 "先定义时间",然后是 "估计波动率 "和 "当前价格位置"。

elibrarius#:

为了减少随机性的影响,这是正确的。否则,您就必须像在森林中那样对 20-100 个模型进行平均。

他们还有另一个技巧,但我不完全理解其过程--一开始,他们在截断的样本上(如果不是强制在整个样本上)建立一棵树,然后在整个样本上计算树叶的结果。显然,分割是在子样本上进行的,而树叶中的权重已经在整个样本上了。

elibrarius#:

也就是说,精炼树可能不是最好的,但随机性更差。

因此,从排水到获利的模型都是分散的。

呐,训练总是在每次迭代中改进结果,训练样本中的模型总是处于有利的一方。尽管有资金差价。

elibrarius#:

从分布图来看,耗损模型较多,也就是说,如果我们取平均值,平均结果将是无利可图的。

是的,但这只是一个特例。

elibrarius#:

也许随机强度 = 0?也许可以用更好的细化树而不是随机的坏树来创建模型。如果最好的模型将是一个耗尽的模型,那么在这个数据上从 10000 个随机模型中随机搜索出最好的一个就是通向真正耗尽的方法。

我曾尝试过零模型,但我认为 所有 模型的得分 是一样的,因此随机选择的模型也是一样的:)) 或者在某个地方使用随机数发生器。

elibrarius#:

或者像在森林中一样,平均使用几个随机选择的模型。因为最好的模型可以重新训练。

也就是说,从三个样本中选择模型,然后求平均值?也许吧--我还不想转而使用模型集合,我还需要研究改进模型本身构造的可能性。

 
Aleksey Vyazmikin #:

另一种方法是对预测因子进行加权,以确保其应用的一致性--而不是一个清晰的树状框架。这就像 "先定义时间",然后是 "估计波动率 "和 "当前价格位置"。

我试过这样做--先按星期和/或小时划分。结果模型比它自己找到的第一种分割方式更糟。你也可以这么做--将样本按星期分成 5 份,每天训练一个模型。或者一个小时,或者任何你想要的。

Aleksey Vyazmikin#:

不,训练总是能在每次迭代中改进结果,而且训练样本中的模型总是处于正值。尽管会有资金差价。

很明显,会有进步,但不是最好的,而是得分随机化的。
,我根本不看特雷因的比赛,以免分散我的注意力。他永远是好样的。

Aleksey Vyazmikin#: 我用零分试过,但我发现 所有 树木的分数 都一样,这意味着它们是从相同 的树木 中随机选择的:))或者在某个地方使用了随机数发生器。

如果 "得分 "在没有随机化的情况下变得相同,而结果仍然不同,那就意味着在其他地方使用了随机化。

Aleksey Vyazmikin# 即通过三个样本选择模型,然后求平均值?也许吧--我现在还不想用模型集合,我还需要研究改进模型本身构建的可能性。

不是选择,而是取所有随机生成的模型。然后求平均值。就像在森林里一样。在那里,随机生成的树也是平均的。但你可以用最好的随机树做实验。

 
elibrarius #:

我试过这样做--先按星期和/或小时划分。结果发现,模型的效果比自行找到第一个分割点的效果要差。你也可以这样做--将样本按星期分成 5 份,每天训练一个模型。或者一个小时,或者任何你想要的。

是的,我有这个选项)我设法在其中一个预测因子上获得了有趣的结果,并为其制定了一个信号策略。

不过,我说的是另一件事,即模型在训练过程中选择预测因子的优先级。

elibrarius#:

如果 Score 变成了没有随机化的结果,而结果仍然不同,这意味着随机化在其他地方被使用了。

很明显:)开发人员对这个问题仍然保持沉默。

elibrarius#:

不是剔除--而是将所有随机生成的结果排成一行。然后取平均值。就像在森林里一样。在那里,随机生成的树木也是平均值。但你可以用最好的随机树进行实验。

这样做时,可以使用较大的召回率,或者根据响应点与正面类的相似度对模型进行预先分组,否则总会出现负面推荐。

 

我减少了上次实验的样本--用我之前选择的预测因子--我从训练样本中删除了 2014-2015 这两年的样本。

如果说上次考试样本中有 208 个利润超过 3000 的模型,那么现在则有 277 个。这是巧合还是样本变得更加相似了?

顺便说一下,上次测试样本的平均利润余额为 982 点,截断样本为 2115 点,但考试样本的平均利润余额几乎没有变化--1114 对 1214。


还有其他改进方法吗?

 
下午好,能否把第一个帖子中的文件贴出来,我也想试试一个想法。
 
Aleksey Vyazmikin #:

如果说上次抽查中利润超过 3000 的机型有 208 个,那么现在则有 277 个。是巧合还是样本变得更加相似了?

您对 "种子",即新数据的依赖性极高。在有规律可循的数据中,情况就会像图表中那样:全部为 +,偏差很小。
尝试改变初始 Seed(尝试几种变体)。如果成功模式的数量变化很大,那么它就是随机的,改变种子时 HNC 的序列也是随机的a。

阿列克谢-维亚兹米金#:

顺便说一下, 最后一步测试模式 样本的平均利润余额 为 982 点,截断样本为 2115,但考试的平均利润余额几乎没有变化 -1114 对 1214。

奇怪的是,测试的平均值大于 0。也许你指的是 traine?考试似乎并不参与学习,或者说是间接参与了学习,因为它选择了一个traine。

Aleksey Vyazmikin#:

有什么办法可以改善结果吗?

很可能是模型训练过度或训练不足。最后一种情况是没有模式。
如果是训练过度,可以尝试将树的数量减少到 1;如果是训练不足,可以增加树的深度。
您可能已经尝试过更多树的变体了。
没有模式的情况比较困难。如果你用 5000 多个预测因子都没有找到,我甚至不知道还能怎么找。我也不知道你是怎么找到这 5000 多个预测因子的。我还没往那方面想过。因为这需要更长的时间来计算,但我想我必须这样做,因为 OOS 也是 50/50 左右。

 

顺便问一下,您是以时间为横轴来构建平衡线,还是仅仅以交易之间的匀速来构建平衡线?从图表来看是第二种。

下面是一个例子:

上图有 3000 多笔交易,下图有 600 多笔交易。如果只是等间距,你会得到漂亮的趋势。但在这里,您可以看到,5 年来只进行了几天的交易,因此没有必要制作一个会沉睡数月/数年的机器人。您只需将其关闭即可。

这幅图的主题是黑天鹅和白天鹅。
@fxsaber 也对这一问题进行了研究https://www.mql5.com/ru/blogs/post/749420
我完全同意他的观点,即有必要消除白天鹅和黑天鹅的影响。

如果说在优化器中可以应用自定义标准并以某种方式选择其他选项,那么在 MO 中则只有选择分割的标准选项,而且在这里只能剪切出历史片段。问题在于,在模型训练之前,白天鹅时刻是未知的。如果把它剪掉,模型就会变得完全不同,可能会出现自己的 "白天鹅"。我们必须思考和实验...

Фильтр белых лебедей.
Фильтр белых лебедей.
  • www.mql5.com
В любом исследовании сначала идет подготовка исходных данных. На фин. рынках это почти всегда истории котировок. В зависимости от источника, они могут обладать определенными особенностями. Сегодня
 
RomFil #:
下午好,能否把第一个帖子里的文件贴出来,我也想试试一个想法。

您好。是的,我今天会试着发布。

 
elibrarius #:

您对种子的依赖性极高,即 HGF 依赖于新数据。
尝试改变初始 Seed(尝试多个变体)。如果成功模式的数量变化很大,那么它就是随机的,改变种子时 HGC 的序列也是随机的a。

每个模型的 Seed 都会从 1 到 10000 依次变化,这就是生成不同模型的意义所在。如果 "种子 "不是固定的,而是取自整个空间(或者说它是如何生成的--这也是一个问题),会发生什么情况呢?

说结果应该与测试结果相似的依据是什么?我认为样本不是同质的--其中不存在数量相当的相似例子,而且我认为量子的概率分布也有一些差异。

是的,假设模型是偶然建立的,但这是否意味着它不能描述已确定的规律性呢?

elibrarius#:

奇怪的是,测试的平均值竟然大于 0。也许你指的是 "线性"?测试似乎并不参与学习,或者说间接参与了轨迹的选择。

它的参与只是为了控制训练的停止,也就是说,如果在训练的过程中测试结果没有改善,那么训练就会停止,树会被移除到测试模型最后一次改善的位置。

就是在这种情况下,可能没有改进,但恶化并不严重,而是训练样本上的例子更加概括,学习算法就会告诉我们停止这种情况。如果我们禁用这一功能,那么另一个问题就会出现--模型中应该使用多少棵树。我想到了另一种方法--我们训练固定数量的树,然后使用测试样本截断模型,但我们必须计算每一步的平衡,这无疑是昂贵的。

现在,我认为最好不要让一个样本停止训练,而是让一组子样本停止训练,这样就可以检查模式在一段时间内的持续性。

elibrarius#:

很可能是模型训练过度或训练不足。最后一种情况是没有模式。

如果是训练过度,可以尝试将树的数量减少到 1。 如果是训练不足,可以增加树的深度。
您一定已经尝试过使用大量树的变体。
缺乏模式的情况比较困难。如果你用 5000 多个预测因子都没有找到,我甚至不知道还能怎么找。我也不知道你是怎么找到这 5000 多个预测因子的。我还没往那方面想过。因为这需要更长的时间来计算,但我想我必须这样做,因为 OOS 也是 50/50 左右。

显然,我没有清楚说明我使用的样本--它是这里 所述实验的第六个(最后一个)样本,因此只有 61 个预测因子。

正如我在上文所指出的--是的,模型并没有完全训练好,因为它们并不能描述整个样本列车,这通常是正常的,因为市场在不断变化,不可能存在所有的组合,而且在每个后续样本中,它们的数量都会不同,平均结果也可能不同。我们使用的并不是具有代表性的样本,因此我们不能期望得到完整的描述--我的目标是提取几种稳定的模式。

至于树,有一个学习率设置(--learning-rate),它与树的数量有关,即学习率越高,描述样本所需的树就越少。因此,事实证明,如果提高学习率(0.3),通过条件筛选的模型数量就会增加,有时甚至会增加一倍以上,最后的实验就是在这样的设置下完成的,平均树的数量是 10 棵,而树的深度是 6 个分叉。CB 中的树有些不同--在对称树的整个层次上都有一个分叉,这使得它们的应用比经典变体更快,但它们一个个的信息量较少。在最新发布的版本中,您可以使用经典树,但我在 MQL5 中没有它们模型的解释器,所以我没有使用它们,所以我不会感到不高兴。

一般来说,我可以添加更多的预测器,因为现在它们只用于 3 TF,只有少数例外--我认为可以再添加几千个预测器,但考虑到 61 个预测器的 10000 个种子变量会产生如此大的传播....,是否所有预测器都能在训练中得到正确使用还是个问题。

当然,你还需要对预测因子进行预筛选,这将加快训练速度。

elibrarius#:

顺便问一下,您是以时间为横轴来构建平衡线,还是仅仅以交易之间的匀速来构建平衡线?从图表上看是第二种。

下面是一个例子:

上图有 3000 多笔交易,下图有 600 多笔交易。如果你把它们做成相同的缩进,就会得到漂亮的趋势。但在这里,您可以看到,5 年来,交易时间只有几天,因此没有必要制作一个会沉睡数月/数年的机器人。您只需将其关闭即可。

平衡是按顺序建立的,没有考虑到日历的时间顺序。是的,我明白您的意思,但在我的概念中,这是准备交易模式的后期阶段的问题。

elibrarius#

这张图是关于黑天鹅和白天鹅的。正如您所看到的,如果有黑天鹅,交易系统会很好地 "咬住 "它们,并对其进行调整。

排放偏差是合乎逻辑的,我只是认为这些都是低效率,应该通过消除白噪声来学习。在其他领域,简单原始的策略往往有效,尤其是在市场平淡的地区。