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

 
交易员博士

最好的方法是使用一个森林,这个模型将创建这样一套规则。


1: DeltaLess350 <= 0.5
2: ZZ_D <= 0
决定 0

1: DeltaLess350 <= 0.5
2: ZZ_D > 0
3: DeltaMore350 <= 0.5
决定 0

1: DeltaLess350 <= 0.5
2: ZZ_D > 0
3: DeltaMore350 > 0.5
决定1

DeltaLess350 > 0.5
决定1


这篇文章描述了如何在R中做到这一点。
https://www.mql5.com/ru/articles/1165

在 "模型 "选项卡上选择森林,在设置中设置树木数量=1,创建模型,然后点击规则按钮,你会看到这个规则列表

谢谢你的回答,也许我读错了,但从excel公式中的第一行(以及随后的几行)的数据"=IF(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0) "看来,模型并不正确。

也就是说,使用脚手架来实现清晰的逻辑会更好?与特征提取相同,对吗?

谢谢你的文章--我会再研究一下--我记得很久以前读过,但现在我有更多的知识,也许会更清楚。

补充:图片很有意思,但显然逻辑没有猜到......或者是吗?
 

我重新写了一下帖子,用树而不是森林,这样更方便。这两种情况下的公式看起来都不一样,但答案仍然是正确的。

如果可以通过输入数据中的正确数值组合找到答案,那么森林就能很好地工作,是的。像加法和乘法这样的各种运算在森林中都是不起作用的。

 
阿列克谢-维亚兹米 金。

从excel中看来,模型是不正确的,这样的公式对于第一行(和随后的几行)的数据"=If(OR(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)

我不知道。在excel中进行了检查--森林公式只有几次是错误的。树形公式在所有情况下都是吻合的。

 
交易员博士

我重新写了一下帖子,用树而不是森林,这样更方便。这两种情况下的公式看起来都不一样,但答案仍然是正确的。

如果可以通过输入数据中的正确数值组合找到答案,那么森林就能很好地工作,是的。各种运算,如加法和乘法,都不起作用。

好了,现在已经有了结果,但有没有一种方法可以将条件最小化为一行,或一个函数,这样我们就可以在修正后及时在代码中应用它们?还是说我必须自己描述每一个逻辑转折,同时又不能在解释结果上犯错?只是如果传入的一组数值可以用几十来衡量,这是一个非常耗时的过程...

 
交易员博士

我不知道。我在Excel中检查了一下--森林公式只有几次是错的。树形公式在所有情况下都是匹配的。

是的,从树上的公式走的是排除法,从代码上看,这原来是正确的解决方案。

 

这就更简单了,不需要为公式而烦恼,训练后你会得到一个常规的R模型,你可以用它对新的数据进行预测。

所有的预测都是通过一个函数完成的

predict(model, newdata)

model - 这是一个先前创建的模型(树、森林、神经元等,在R中,有数百种不同的模型)。newdata是一个包含新的预测数据的表格。

 
交易员博士

这就更简单了,不需要为公式而烦恼,训练后你会得到一个常规的R模型,你可以用它对新数据进行预测。

所有的预测都是通过一个函数完成的

model - 这是一个先前创建的模型(树、森林、神经元等,在R中,有数百种不同的模型)。newdata - 预测用的新数据表

这很有趣,但现在还不清楚--我以前没有用R工作过...我应该这样做,这样我就可以把事情搞清楚。

这里还有一个问题,如果输入数据有错误的数据,这纯粹是随机的,森林/树能不能检测出来?是否有可能在列举方面组织自动逐列禁用输入数据,包括搜索左手数据以便将其排除?

 

最常见的森林将简单地找到一个最小的数据集,用它来定义一个目标。但它不会分析噪声和误差,即使使用它们也有助于提高预测的准确性。这就是为什么,例如,我们不能只是拿着一堆外汇指标,试图预测趋势。

有各种先进的修改森林,他们有尝试剔除噪音和错误以及你写的一切。例如R中的gbm、xgboost 包。它们在一般情况下效果很好,但对外汇来说很弱,你需要其他技巧。

 
阿列克谢-维亚兹米 金。

你能告诉我哪种神经网络算法可以用来计算出 "Calc "列的逻辑(神经元)吗? 第一条建议:如果你可以不用机器学习,那就做吧 :)

1:决定样本量,你的样本非常小

2.选择简单的(线性)分类/回归模型,它们可能对你有用,如果你得到一个大的错误,你可以尝试去选择更复杂的(非线性)模型。它们在alglib库中是可用的(决策树和森林也可用)。

3)永远不要接受任何建议,特别是关于使用R的建议:)))是时候把他们从这个论坛上驱逐出去了。

4.如果问题不需要机器学习就能解决,你最好不要使用它。

 
交易员博士

最常见的森林将简单地找到一个最小的数据集,用它来定义一个目标。但它不会分析噪声和误差,即使使用它们也有助于提高预测的准确性。这就是为什么,例如,我们不能只是拿着一堆外汇指标,试图预测趋势。

有不同的高级修改的森林,他们有尝试剔除噪音和错误,以及你写的一切。例如R中的gbm、xgboost包。它们作为一个整体运作良好,但对于外汇来说,它们很弱,你在这里需要其他的技巧。

我不想给出指标值,我的目标是给出一个逻辑上描述的观察结果(可能是新闻和不同指标在空间上的相对比例--一般来说,我在实际交易中用来做决定),以前使用这些指标建立的,并试图消除错误,即输入数据将是0和1,或者在一个输入上有稍多的数字(这里有一个问题,如果我想看到工作日 的影响,那么我最好做不同的输入对

还有,有没有人做过不同算法的效率比较,嗯,如果答案是已知的,就像我的例子一样,但对于更复杂的任务,有没有人做过比较?

原因: