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

 
mytarmailS #:
让我看看你的交易。
你在说什么大话?

让我们看看你的 TS 是如何根据一个有上百年历史、运转如发条的理论运行的...
得了吧

这样的问题会让大家晕头转向的

就像上学一样

你必须从很远的地方开始,问一些简单的问题。

您在哪种货币对上交易?

并展示最后一笔交易,带所有参数的进场出场。

然后,您每天交易多少次?

P.Z.

您不应该问两个以上的问题。

您可能会冒犯大师。如果你开始这样做呢?

P.Z.

我支持斯巴达克

 
Forester #:

你对炉子的理解有误。看来你从来没看过建树代码....那里根本没有对单行进行操作!!!只有对集合(完整或成批)进行操作。

简而言之:
,传给训练的随机/全集行,按每个预测因子/列逐一排序。检查对其进行的不同拆分(中间拆分/百分位拆分/随机拆分),计算每种拆分的统计数据,然后为整组行选择最佳拆分,而不是像你建议的那样为某一行/每一行选择最佳拆分。
根据最佳拆分,字符串集被分为 2 组,然后每组再次排序,并为每部分选择最佳拆分,等等,直到达到停止规则(按深度、每行示例数等)

你可以在编辑器中看到更多细节,你拥有的文件是:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
ClassifierSplit() 函数和调用该函数的文件。
几个小时后,你就会理解它,也就不用再讨论一行一行搜索预测器的问题了。
这里会更清楚,代码更简洁,并有注释https://habr.com/ru/companies/vk/articles/438560/。

1.回归树()类

Пишем XGBoost с нуля — часть 1: деревья решений
Пишем XGBoost с нуля — часть 1: деревья решений
  • 2019.02.06
  • habr.com
Привет, Хабр! После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что-то новое почерпну), я решил сделать своё собственное руководство, каким...
 
Forester #:

你对炉子的理解有误。看来你从来没看过建树代码....那里根本没有对单行进行操作!!!只有对集合(完整或成批)进行操作。

简而言之:
,传给训练的随机/全集行,按每个预测因子/列逐一排序。检查对其进行的不同拆分(中间拆分/百分位拆分/随机拆分),计算每种拆分的统计数据,然后为整组行选择最佳拆分,而不是像你建议的那样为某一行/每一行选择最佳拆分。
根据最佳拆分,字符串集被分为 2 组,然后每组再次排序,并为每部分选择最佳拆分,等等,直到达到停止规则(按深度、每行示例数等)

你可以在编辑器中看到更多细节,你拥有的文件是:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
ClassifierSplit() 函数和调用该函数的文件。
用不了几个小时,你就会理解它,也就不用再谈一行一行地搜索预测器了。

你说的多行是对的。

让我们回到开头:什么是随机森林中的模式?

就是一棵树。下面是 RF 树的一个例子:

    left daughter right daughter split var split point status prediction
1               2              3         2  0.34154125      1          0
2               4              5         2  0.28238475      1          0
3               6              7         4  0.37505155      1          0
4               0              0         0  0.00000000     -1          2
5               8              9         5  0.64235664      1          0
6               0              0         0  0.00000000     -1          2
7              10             11         1  0.45438075      1          0
8              12             13         1  0.46271469      1          0
9              14             15         3  0.25803691      1          0
10             16             17         2  0.51942328      1          0
11             18             19         1  0.48839881      1          0
12             20             21         3  0.45243581      1          0
13              0              0         0  0.00000000     -1          2
14              0              0         0  0.00000000     -1          2
15             22             23         6  0.62789488      1          0
16             24             25         2  0.34224983      1          0
17             26             27         4  0.53845361      1          0
18             28             29         3  0.39207978      1          0
19             30             31         3  0.03596312      1          0
20             32             33         7  0.49380156      1          0
21              0              0         0  0.00000000     -1          2
22              0              0         0  0.00000000     -1          2
23             34             35         6  0.76472904      1          0
24              0              0         0  0.00000000     -1          1
25              0              0         0  0.00000000     -1          2
26             36             37         5  0.87588550      1          0
27             38             39         1  0.31089209      1          0
28             40             41         2  0.39193398      1          0
29             42             43         1  0.47068628      1          0
30             44             45         7  0.76420940      1          0
31             46             47         2  0.38380954      1          0

 [ reached getOption("max.print") -- omitted 185 rows ]

总行数 = 166+185!全部不符合

我的模型中有 150 棵这样的树

split var - это номер переменной, всего их в модели 8
split point - лучшее значение конкретной переменной, которое использовалось для разделения.
 
СанСаныч Фоменко #:

你说的对,线路很多。

回到开头:什么是随机森林中的模式?

就是一棵树。下面是 RF 树的一个例子:

总行数 = 166+185!无一符合

我的模型中有 150 棵这样的树

再次考虑形成叶子的路径。在我上面的例子中,有 5 个分叉。这不就是对 2 个顶点带一个波谷的模式的描述吗?说明。
7 个分叉可以描述头肩等。
一棵树的每片叶子都描述了不同的模式。

森林是众人的意见(derviews)。
第 1 棵树说:这个字符串属于我的第 18 个模式/叶,答案 = 1
第 2 棵树:同样的字符串属于我的第 215 个模式/叶,答案=0
第 3 棵树:= 1

...

我们取平均值,得到 150 棵树的平均意见。例如 = 0.78。每棵树都有不同的激活树叶/图案。

 
Forester #:

再来看看路径成形薄片。在我上面的例子中,有 5 个分叉。这不就是 2 个顶部和 1 个低谷的形态描述吗?说明。
7 个分叉可以描述头肩等。
一棵树的每一片叶子都描述了不同的图案。

森林是一群德维兹的意见。
第 1 棵树说:这条线属于我的第 18 个图案/叶子,答案 = 1
第 2 棵树:同一条线属于我的第 215 个图案/叶子,答案=0
第 3 棵树:= 1

...

我们取平均值,得到 150 棵树的平均意见。每棵树都有不同的激活叶片/图案。

我们不知道有多少棵树。

树的数量是一个参数,可以通过改变参数来获得最小的训练样本数量。

我们看到 50 棵树就足够了,因此将一棵树视为一个模式也很方便。

 
СанСаныч Фоменко #:

有多少片叶子不得而知。

树的数量是一个可以改变的参数,以获得最小的训练样本数量。

我们看到 50 棵树就足够了,因此将一棵树视为一个模式也很方便。

这棵树对每一种情况/每一行都有一个树叶/模式。在其他情况下,将由其他树叶/模式做出响应。
 
Forester #:
这棵树对每种情况/线路都会用一片叶子/模式做出反应。在其他情况下,则由其他树叶/模式来回应。

看来,不仅树叶,就连树也解决不了任何问题。

在这里,我找到了最终分类器的公式




其中

  • N - 树的数量
  • i - 树的计数器;
  • b - 决定性树;
  • x - 我们从数据中生成的样本。

值得注意的是,在分类任务中,我们通过多数投票来选择解决方案,而在回归任务中,我们通过平均值来选择解决方案。

 
СанСаныч Фоменко #:

看来,不仅是树叶,树也解决不了任何问题。

以下是最终分类器的计算公式

值得注意的是,在分类任务中,我们通过多数投票来选择解决方案,而在回归任务中,我们通过平均值来选择解决方案。

为什么它不能求解?它对最终答案的贡献率为 (1/150)。

,每棵树的一个激活叶片/模式参与投票(平均值)。

,森林的答案是所有树(或激活叶片/模式)答案的平均值--该公式对其进行计算。如果平均值大于 0.5,则二元分类的多数为 1,否则为 0。
但 0.5 边界可能不是最佳选择,如果软件包提供了平均值,您可以尝试使用不同的边界。

 
Forester #:
这棵树对每种情况/线路都会用一片叶子/模式做出反应。在其他情况下,将由其他树叶/模式做出反应。
SanSanych Fomenko#:

看来不仅是树叶,树也不能解决任何问题。

并非只有一片叶子,而是所有的树都对每种情况负责,只是并非所有的树都被激活,被激活的树的预测总和就是模型的预测....。


树模型专家们,你们到底在说什么?

 
mytarmailS #:

不是一片树叶,而是所有的树都对每种情况负责,只是并非所有的树都被激活,被激活的树的预测之和就是模型的预测。


你到底在说什么,树模型专家?

你说了什么新东西吗?如果没有,那根据你的估计,这也是垃圾。