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

 
Maxim Dmitrievsky #:

比如一张木板有时比木头更好用?

至少准备好 TC

关于新数据,是的。只是已经找到了一致的模式,树上的其他叶子只是风噪。噪音的存在是为了迫使树给出所有问题的答案,即对样本进行完全分类。

 
你晚上必须睡觉。
 
Aleksey Vyazmikin #:

根据新数据,是的。只是已经找到了一个稳定的模式,而树的其他部分只留下了风噪声。噪音的存在是为了迫使树给出所有问题的答案,即对整个样本进行分类。

我是通过改变树叶的激活水平来自动选择树叶的。经典的分类方法是 0.5。所有概率高于 0.5 的树叶都会被激活,其余的树叶则保持沉默(这相当于将它们从树上删除)。本网站和论坛上不止一篇文章介绍过这种方法。

您还可以将级别设置为 0.9 或 0.95,这样只有 95% 的例子属于正确类别的超级干净树叶才会起作用。同样,对于回归来说,只有级别不是从 0 到 1,而是以 abs 值为单位。上图显示了相同的模型,但激活级别不同。第一个是 0.00020,第二个是 0.00040pts。第二个模型跳过了无利可图的交易时间段,只在最有利可图的交易时间段工作并显示利润,尽管它在 1-2 年的停顿期工作。激活了 400000 个案例中的 70000 个,即约有 17% 的最佳叶片起作用。

结果类似,只需在代码中执行一个命令 if(leaf_value>0.00040){...} 即可实现。而且,在选择叶片和簇的时候,也不需要费尽心思。

不过你已经知道了....

 
Aleksey Vyazmikin #:

就新数据而言,是的。只是已经找到了一致的模式,而树的其他部分只留下了风噪声。噪音的存在是为了迫使树给出所有问题的答案,即对整个样本进行分类。

问题在于,这棵树不是根据利润最大化的条件建立的,而是根据便于软件包编程的损失函数建立的。

因此,你必须做出一个令人不快的选择--要么尝试重新配置一个复杂的、花样繁多的软件包,要么建造一辆狭窄的自行车。也有可能 "成功 "地将这两种选择结合起来)。

在我看来,如果你选择在树上摆弄现有的软件包,你应该尝试使用修剪(剪枝)--比如说,以前锋的利润最大化为条件。这样也许就能避免手动修改规则。

 
Maxim Dmitrievsky #:
我不抱太大希望,只是时不时地偷看一下。毕竟 gpt 我预测这个话题会停滞不前。看不到任何突破。这纯粹是炒作昙花一现,就像加密货币一样。现在他们会赚钱,然后冷静下来。
我同意你的观点!

我的邻居们都在赞美宣传神经网络,但当你给它们设定简单的任务时,它们却应付不来
 
Stanislav Korotky #:

我举的例子来自分类交叉熵部分(您可能没有注意到,每个实例中的值之和都是 1)。在 Keras 中无法正常工作这一事实对我来说是一个指标,这意味着 MQL5 中 CCE 的实现或描述与预期不符。因此需要详细说明。顺便说一句,在 pytorch 中,CrossEntropyLoss 包含一个初步的 softmax。但总的来说,由于 MQL5 中关于矩阵的文档包含了界面与 python 界面相似的想法,因此这意味着行为的重合。如果没有重合,就会造成问题和困惑。

拥有许多类意味着要使用矩阵(当我们有一堆样本/行时,每个样本/行都有类),因此您使用向量的示例仍然无法回答问题。

我明白了。损失函数可以处理矩阵,也可以处理向量。在这里,我们没有完成(我们没有添加轴参数)

也就是说,在您的示例中,我们需要逐行求解。

感谢您的关注

 
Aleksey Vyazmikin #:

就新数据而言,是的。只是已经找到了一致的模式,而树的其他部分只留下了风噪声。噪音的存在是为了迫使树给出所有问题的答案,即对整个样本进行分类。

如果把它从森林中取出来,就会有一个所有树木规则的平均值,按树木的数量来计算

 
Forester #:

我通过改变叶片激活水平来自动实现这一点(叶片选择)。经典的分类方法是 0.5。所有概率高于 0.5 的树叶都会被激活,其余的树叶则保持沉默(这相当于将它们从树上删除)。本网站和论坛上不止一篇文章介绍过这种方法。

您还可以将级别设置为 0.9 或 0.95,这样只有 95% 的例子属于正确类别的超级干净树叶才会起作用。对于回归来说也是一样,只是级别不是从 0 到 1,而是以 abs 值为单位。上图显示了相同的模型,但激活级别不同。第一个是 0.00020,第二个是 0.00040pts。第二个模型跳过了无利可图的交易时间段,只在最有利可图的交易时间段工作并显示利润,尽管它在 1-2 年的停顿期工作。激活了 400000 个案例中的 70000 个,即约有 17% 的最佳叶片起作用。

结果类似,只需在代码中输入 if(leaf_value>0.00040){...} 命令即可实现。而不需要在选择叶片和集群时进行各种操作。

不过你已经知道了....

你有一个森林,难道不需要在建立模型后重新加权吗?还是只取激活树叶的平均值?

这就是问题所在,在选择树叶时,我考虑到了历史上反应分布的稳定性和均匀性。我制定了二维指标,并对其进行综合评估。因此,对我来说,没有反应的叶子是极其罕见的。

在我看来,你可以很容易地保存树叶,创建成千上万棵树,然后只使用它们。

 
Aleksey Nikolayev #:

问题在于,这棵树并不是根据利润最大化条件来建立的,而是根据便于打包编程的损失函数来建立的。

因此,你将面临一个令人不快的选择--要么尝试重新配置一个复杂、棘手的软件包,要么建造一辆拥挤的自行车。也有可能 "成功 "地将这两种选择结合起来)。

在我看来,如果你选择在树上摆弄现有的软件包,你应该尝试使用修剪(剪枝)--比如说,以前锋的利润最大化为条件。这样也许就能避免手动修改规则。

我在构建树时使用的变体构建的树并不深,因此可能没有必要进行修剪。

是的,几乎所有的操作都是自动完成的,没有自动完成的操作都是基于我对 R 的无知。

我说的是噪音,因为根预测因子可能包含 10%或更少的特定类别倾向概率,而其余概率是均匀分布的,其余残差用于剪切剩余的树叶。

 
Maxim Dmitrievsky #:

如果你把它从树林里拔出来,就会有所有树木的平均值,按树木的数量计算

树是独立的,然后根据树叶中的答案进行加权。我做的不是森林,而是一棵树。我从来没听说过遗传学上的森林。