Привет, Хабр! После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что-то новое почерпну), я решил сделать своё собственное руководство, каким...
让我看看你的交易。
这样的问题会让大家晕头转向的
就像上学一样
你必须从很远的地方开始,问一些简单的问题。
您在哪种货币对上交易?
并展示最后一笔交易,带所有参数的进场出场。
然后,您每天交易多少次?
P.Z.
您不应该问两个以上的问题。
您可能会冒犯大师。如果你开始这样做呢?
P.Z.
我支持斯巴达克
你对炉子的理解有误。看来你从来没看过建树代码....那里根本没有对单行进行操作!!!只有对集合(完整或成批)进行操作。
简而言之:,传给训练的随机/全集行,按每个预测因子/列逐一排序。检查对其进行的不同拆分(中间拆分/百分位拆分/随机拆分),计算每种拆分的统计数据,然后为整组行选择最佳拆分,而不是像你建议的那样为某一行/每一行选择最佳拆分。
根据最佳拆分,字符串集被分为 2 组,然后每组再次排序,并为每部分选择最佳拆分,等等,直到达到停止规则(按深度、每行示例数等)
你可以在编辑器中看到更多细节,你拥有的文件是:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
ClassifierSplit() 函数和调用该函数的文件。
几个小时后,你就会理解它,也就不用再讨论一行一行搜索预测器的问题了。
1.回归树()类
你对炉子的理解有误。看来你从来没看过建树代码....那里根本没有对单行进行操作!!!只有对集合(完整或成批)进行操作。
简而言之:,传给训练的随机/全集行,按每个预测因子/列逐一排序。检查对其进行的不同拆分(中间拆分/百分位拆分/随机拆分),计算每种拆分的统计数据,然后为整组行选择最佳拆分,而不是像你建议的那样为某一行/每一行选择最佳拆分。
根据最佳拆分,字符串集被分为 2 组,然后每组再次排序,并为每部分选择最佳拆分,等等,直到达到停止规则(按深度、每行示例数等)
你可以在编辑器中看到更多细节,你拥有的文件是:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
ClassifierSplit() 函数和调用该函数的文件。
用不了几个小时,你就会理解它,也就不用再谈一行一行地搜索预测器了。
你说的多行是对的。
让我们回到开头:什么是随机森林中的模式?
就是一棵树。下面是 RF 树的一个例子:
总行数 = 166+185!全部不符合
我的模型中有 150 棵这样的树
你说的对,线路很多。
回到开头:什么是随机森林中的模式?
就是一棵树。下面是 RF 树的一个例子:
总行数 = 166+185!无一符合
我的模型中有 150 棵这样的树
再次考虑形成叶子的路径。在我上面的例子中,有 5 个分叉。这不就是对 2 个顶点带一个波谷的模式的描述吗?说明。
7 个分叉可以描述头肩等。
一棵树的每片叶子都描述了不同的模式。
森林是众人的意见(derviews)。
第 1 棵树说:这个字符串属于我的第 18 个模式/叶,答案 = 1
第 2 棵树:同样的字符串属于我的第 215 个模式/叶,答案=0
第 3 棵树:= 1
...
我们取平均值,得到 150 棵树的平均意见。例如 = 0.78。每棵树都有不同的激活树叶/图案。
再来看看路径成形薄片。在我上面的例子中,有 5 个分叉。这不就是 2 个顶部和 1 个低谷的形态描述吗?说明。
7 个分叉可以描述头肩等。
一棵树的每一片叶子都描述了不同的图案。
森林是一群德维兹的意见。
第 1 棵树说:这条线属于我的第 18 个图案/叶子,答案 = 1
第 2 棵树:同一条线属于我的第 215 个图案/叶子,答案=0
第 3 棵树:= 1
...
我们取平均值,得到 150 棵树的平均意见。每棵树都有不同的激活叶片/图案。
我们不知道有多少棵树。
树的数量是一个参数,可以通过改变参数来获得最小的训练样本数量。
我们看到 50 棵树就足够了,因此将一棵树视为一个模式也很方便。
有多少片叶子不得而知。
树的数量是一个可以改变的参数,以获得最小的训练样本数量。
我们看到 50 棵树就足够了,因此将一棵树视为一个模式也很方便。
这棵树对每种情况/线路都会用一片叶子/模式做出反应。在其他情况下,则由其他树叶/模式来回应。
看来,不仅树叶,就连树也解决不了任何问题。
在这里,我找到了最终分类器的公式
其中
值得注意的是,在分类任务中,我们通过多数投票来选择解决方案,而在回归任务中,我们通过平均值来选择解决方案。
看来,不仅是树叶,树也解决不了任何问题。
以下是最终分类器的计算公式
值得注意的是,在分类任务中,我们通过多数投票来选择解决方案,而在回归任务中,我们通过平均值来选择解决方案。
为什么它不能求解?它对最终答案的贡献率为 (1/150)。
,每棵树的一个激活叶片/模式参与投票(平均值)。
,森林的答案是所有树(或激活叶片/模式)答案的平均值--该公式对其进行计算。如果平均值大于 0.5,则二元分类的多数为 1,否则为 0。
但 0.5 边界可能不是最佳选择,如果软件包提供了平均值,您可以尝试使用不同的边界。
这棵树对每种情况/线路都会用一片叶子/模式做出反应。在其他情况下,将由其他树叶/模式做出反应。
看来不仅是树叶,树也不能解决任何问题。
并非只有一片叶子,而是所有的树都对每种情况负责,只是并非所有的树都被激活,被激活的树的预测总和就是模型的预测....。
树模型专家们,你们到底在说什么?
不是一片树叶,而是所有的树都对每种情况负责,只是并非所有的树都被激活,被激活的树的预测之和就是模型的预测。
你到底在说什么,树模型专家?