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

 
阿列克谢-特伦特夫
我的解决方案最初是基于OpenNN(C++)。
现在我学到了很多东西,并转到了Keras(Python)。

我主要是处理分类问题预测的深度学习。

所以我们正在处理MO的同一领域。Keras是一个很好的包,尤其是它被移植到了R上。

只是我不明白的是,什么问题?

祝好运

 
弗拉基米尔-佩雷文科

所以我们正在处理MO的同一个领域。Keras是一个很好的包,尤其是它被移植到了R。

只是我不明白的是,什么问题?

祝好运

我只是决定加入讨论。=)
 
Maxim Dmitrievsky:


现在这很有趣......这意味着必须做更多的测试,也许这个RN并不像以前认为的那样有意义。

唯一的优势是在优化器中与其他系统参数同时选择权重

我目前正试图找出它在已知数据范围内的计算效果。例如,乘法表。

更新。

改变专家顾问后的其他实验显示,与普通MLP 3-5-1相比,结果如下。

测试时使用了不同的配方。

//double func(double d1,double d2,double d3 ){return d1*d2;} //误差为0-2%,因为乘法是公式中固有的。2%,因为遗传优化器并不总是停在理想的解决方案上。但也有一个绝对精确的解决方案,误差=0。
//double func(double d1,double d2,double d3 ){return d1*d2*d3;}//错误0-2%的乘法是在公式中,在MLP上是1%
//double func(double d1,double d2,double d3 ){returnMathSin(d1);}//误差2-6%,在MLP上为0,1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3)。}//误差2%,对MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}//误差3-4%,对MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2, 。33)*MathSqrt(d3);}//误差8-4%,在MLP 1.5%
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2, .33)*MathSqrt(d3);}//误差8-4%,在MLP 1.5%。

结论是,通常的MLP比Reshetov的RNP的误差小2-3倍。也许有些错误是由于MT5终端的遗传优化器并没有停在理想的解决方案上。
 
elibrarius

我目前正试图找出它在已知数据范围内的计数情况。例如,一个乘法表。

更新。

与正常的MLP 3-5-1相比,改变EA后的额外实验显示了以下结果。

测试时使用了不同的配方。

//double func(double d1,double d2,double d3 ){return d1*d2;} //误差为0-2%,因为乘法是公式中固有的。2%,因为遗传优化器并不总是停在理想的解决方案上。但也有一个绝对精确的解决方案,误差=0。
//double func(double d1,double d2,double d3 ){return d1*d2*d3;}//错误 0-2%的乘法是公式中固有的,在MLP 1%时
//double func(double d1,double d2,double d3 ){return MathSin(d1);}//误差2-6%,在MLP 0.1%。
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}//误差2%,在MLP 1%。
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}//3-4%的误差,在MLP 1%时
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}//误差8-4%,在MLP 1.5%。
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}//误差8-4%,在MLP 1.5%。

综上所述,我们可以得出结论,普通MLP的误差比Reshetov的RNN小2-3倍。也许有些错误是由于MT5终端的遗传优化器并没有停在理想的解决方案上。

是的,有趣的结果,也许全面列举会更准确
 
马克西姆-德米特里耶夫斯基

是的,有趣的结果,也许完全过冲会更准确。
会更准确,但在几周或几个月后...8个拟合系数,1%步长1008=1000000000000次迭代,终端本身切换到遗传学,有这个数字。
 
elibrarius
会的,但几周或几个月后...8个可选择的系数,1%的步长1008=10000000000000次迭代,终端本身切换到遗传学,有这么多。

你能告诉我,从alglib分类MLP,我知道需要至少2个输出,如何处理这个问题?)
 
马克西姆-德米特里耶夫斯基

请问,从alglib中分类MLP我了解到,至少需要2个输出,如何操作呢?)

是2,从帮助http://alglib.sources.ru/dataanalysis/neuralnetworks.php

一个特例是具有线性输出层和输出SOFTMAX归一化的神经网络。它们用于分类问题,其中网络的输出必须是非负的,而且它们的总和必须严格等于1,这就允许将它们作为将输入向量分配到某个类别的概率(在极限情况下,训练后的网络输出会收敛到这些概率)。这样一个网络的输出数量应始终不少于两个(由基本逻辑规定的限制)。

还没有处理过,还在试验线性。
 
elibrarius

是的,从http://alglib.sources.ru/dataanalysis/neuralnetworks.php 参考

一个特例是具有线性输出层和输出SOFTMAX归一化的神经网络。它们用于分类问题,其中网络的输出必须是非负的,而且它们的总和必须严格等于1,这就允许将它们作为将输入向量分配到某个类别的概率(在极限情况下,训练后的网络输出会收敛到这些概率)。这样一个网络的输出数量总是至少有两个(由基本逻辑决定的限制)。


啊,好吧,也就是说,我们提供一个或另一个结果的概率,例如买入的概率为0.9,那么卖出的概率为0.1,一个数组将作为买入概率的缓冲区,另一个数组为卖出概率,我们用这些值填充它们,训练后它们将被用来分别倾倒买入和卖出的概率,我明白了,对吗?
 
马克西姆-德米特里耶夫斯基

好吧,换句话说,我们提供一个或另一个结果的概率,例如买入的概率是0.9,卖出的概率是0.1。一个数组将作为买入概率的缓冲区,另一个是卖出概率的缓冲区,在对它们进行训练后,将分别丢弃概率,我想这是正确的?

而从我所读到的内容来看--我也有同样的看法。

虽然我不知道它的优势是什么......有了1个出口,我们也得到了概率--大约0(或-1)个买,和大约1个卖。(或反之亦然,取决于你的训练方式)。

如果有3个或更多的输出,它能起到作用吗?毕竟,1的输出将很难使用....为3或4个任务(尽管你也可以用0、0.5和1作为买入、等待、卖出的类别)。

 
elibrarius

而从我所读到的内容来看--我也有同样的看法。

我不知道它的优势是什么......有一个出口,我们也得到了概率--大约0(或-1)买入,和大约1卖出。(或反之亦然,取决于你的训练方式)。

如果有3个或更多的输出,它是否会有用?那么1个输出就很难使用....为3或4个任务(尽管你也可以用0、0.5和1作为买入、等待、卖出的类别)。


是的,他们可能是为了让它有可能有2个以上的类......那么它可能会有更多的聚类,你可以使用其他方法,如k-means :)