Деревья принятия решений являются удобным инструментом в тех случаях, когда требуется не просто классифицировать данные, но ещё и объяснить почему тот или иной объект отнесён к какому-либо классу. Давайте сначала, для полноты картины, рассмотрим природу энтропии и некоторые её свойства. Затем, на простом примере, увидим каким образом...
我有一个关于目标变量的问题。
如果我们的目标变量是交易的财务结果,那么正如我所想的那样,将这个结果正常化是合理的。但在这里我在网站上寻找信息,到处都说目标变量应该有两个值--买入或卖出。如果我在任何情况下都会有损失--买入或卖出(而且会发生!),那么我为什么要削减所有的负面变量?而如果是负面变体的存在影响了统计数据?
一般来说,我想知道在买入/卖出/没有触发的极端情况下,什么网络是有效的(以及在哪里可以得到它们?
> 如果我们的目标变量是交易的财务结果,那么对这一结果进行标准化是合理的,正如我所想的那样
我不对目标进行规范化处理,我按原样使用它们(价格上涨)。如果你使用神经元,最好将预测器(输入的另一个名称,芯片)规范化。对于森林来说,我并不真的需要为规范化而烦恼,在任何情况下都能正常工作。
请注意,一个神经元ka的输出往往也要经过一个激活函数,对于一个sigmoid来说只能在(0;1)之内。那么,如果目标不在这个区间内,也应该被规范化。或者我们可以去掉对退出的激活,这样它就可以接受任何值。
> 但在这里,我正在寻找网站上的信息,其他地方都在谈论目标变量应该有两个值--购买或出售。
这就是所谓的分类。当代替价格 - 只是一些集合(0和1;-1和1;"买 "和 "卖")。
如果你预测价格本身或其增量,这不叫分类,而是回归。
> 如果我在任何情况下都会有损失--买入或卖出(它发生了!),那么我为什么要削减所有的负面选择?如果是负面选项的存在影响了统计数据呢?
这完全取决于你的预测因素,你只能通过实验来找出答案,尝试两种变体。例如,我试图为森林创建我自己的健身功能--我使用森林预测建立了一个交易图(考虑到价差),并使用该图来定义夏普比率,这是我试图提高的结果。
> 一般来说,我想知道哪些网络是有效的。
我目前正在采取公开价格,并将其与指标(自制)一起使用,以创造新的功能。我正在训练预测每条价格上涨的神经元。我需要大量的时间来创建新的指标,否则模型将无法战胜价差。
翻看你的文件,我发现你已经有很多预测器了。如果你的目标只是一组-1,0,1 - 使用森林。如果你想预测价格--最好使用神经元。
错了......是的,当然是有可能获得最大利润的那些点,例如:
为了分类的目的,一个带有softmax输出层的多层perseptron(输出类成员概率)。
你读过这个吗?https://www.mql5.com/ru/articles/497,关于第一个神经元的例子。然后想象一下,有很多这样的人,所以这就是整个神经网络。
这正是你所问的阈值功能。
嗯,看起来是个好结果,是的。
错过了那篇文章--谢谢你指出来,有些事情变得更清楚了!。但不是一下子就能解决所有问题--你必须反复阅读这种东西......我明白了关于展开系数和听其与函数之和。
尝试了第一个文件,把它分成三部分。
培训
预测的
实际0 1
0 28107 1244
1 3045 4119
测试1
预测的
实际0 1
0 5950 356
1 742 776
当前 2
预测的
实际0 1
0 5945 333
1 779 769
在一个隐藏层有10个神经元的nnet上进行计算(R的Rattle包的NS)。
比你的森林更糟糕,但也不坏。第二个文件的结果可能类似。
谢谢!我认为这些结果可以作为一个过滤器,也就是禁止交易--因为猜测零点更稳定。
错过了这篇文章--谢谢你的指出,它澄清了一些事情。但不是一下子就能完成的--你必须把这种东西读几遍...我了解散射系数,并通过一个函数来听它们的总和。
谢谢你!我认为这些结果可以作为一个过滤器,即禁止交易--因为猜测零的结果更稳定。
嗯,现实中的人更多--这就是为什么很容易猜到的原因)
> 如果我们的目标变量是交易的财务结果,那么将这个结果规范化是合理的,正如我所想的那样
我不对目标进行规范化处理,我按原样使用它们(价格收益)。如果你使用神经元,那么最好将预测器(另一个名字是输入,芯片)规范化。对于森林来说,某种程度上并不真的需要为规范化而烦恼,它在任何情况下都能正常工作。
嗯,相反,我想,对于森林来说,最重要的是做逻辑预测,比如是/不是,我就是这么做的,这就是为什么有很多的预测,而且会少很多。我将尝试以不同的方式来做--我将给一个预测器提供8个值,看看结果是否有变化。
请注意,很多时候,神经元key的输出也会通过激活函数,对于一个sigmoid来说,只能在(0;1)范围内。那么,如果目标不在这个区间内,也应该被规范化。或者我们可以去掉对输出的激活,这样它就可以取任何值。
你说的取消进入的激活是什么意思?我不知道它是什么 - 激活...
> 但这里是在网站上找资料,到处都说目标变量应该有两个值--买入或卖出。
这就是所谓的分类。当代替价格 - 只是一些集合(0和1;-1和1;"买 "和 "卖")。
如果你预测价格本身或其增长,这叫回归,而不是分类。
是的,但如果我不需要买入或卖出,而只是跳过一个信号,那么该怎么做?所以我决定做两个独立的NS,以便考虑当下--不做交易。
> 如果我在任何情况下都会出现亏损--买入或卖出(可能会出现这种情况!),我是否应该简单地砍掉负面的变体?而如果是负面选项的存在影响了统计数据呢?
这完全取决于你的预测因素,你只能通过实验来找出答案,尝试两种变体。例如,我试图为森林建立我的健身功能--我使用森林预测做了一个交易图(考虑到价差),并使用该图来定义sharpe比率,这是我试图增加的结果。
也就是说,对于某些预测因素来说,历史并不十分重要,而对于另一些预测因素来说,则是至关重要的,由于可能同时存在这两种情况,所以事实证明,切掉并不可取......
现在我把公开的价格与指标(自制的)一起使用,以创造新的功能。我正在训练神经元学,它能用这些芯片预测每条的价格上涨。创建新的指标需要大量的时间,否则模型将无法战胜价差。
我的大部分功能都与预测有关,但不是价格,而是其水平 - 我使用我的ATR,但标准的应该以同样的方式工作。
那么现实中的人更多--这就是为什么很容易猜到的原因)
所以这并不重要--主要的是要知道在哪些领域的交易风险会增加,他们有点显示了这一点。
另一件事是,我不知道如何把它全部变成同一个指标--真的有必要重写所有已经形成的规则还是什么?
嗯,我以为对森林来说,使预测者符合逻辑更重要,比如是/否,我做到了,这就是为什么有这么多的预测者,但会少很多。我将尝试以不同的方式来做--我将给一个预测器8个值,我将看看结果是否有变化。
森林中的特征较少,会有很少的分裂。
如果有许多稀疏的特征,而其中有一个不是稀疏的,那么森林就会对它进行过度拟合,从它那里得到的进口 将是最大的,而其他的对结果的影响很小。
森林对稀疏的特征效果更差,会有很少的分裂。
另外,如果有许多稀疏特征,而其中有一个不是稀疏的,那么森林将对它进行过度拟合,它将有最大的进口,而其他的对结果影响很小。
正态森林或随机森林,还是两者都有?
我把Rattle和R(好吧,和glitches整个事情......),现在我不能理解如何使一个可比的设置,如下图所示?因为标准的Rattle设置给出的结果比我之前使用的程序更糟糕。
森林对稀疏的特征效果更差,会有很少的分裂。
如果有许多稀疏的属性,而其中有一个不是稀疏的,森林将对其进行过度拟合,它将有最大的进口,其他的对结果的影响很小。
同样的指示,同样的设置,但指示是折叠的,而不是像以前那样展开。
旧的变体
新变体
我发现零的数量稍多,但一的数量明显较少--几乎是两倍之多。我没想到塌陷和扩展的变量可以有这样的效果...
正常的树林或随机的树林,还是两者都有?
我把Rattle和R(这整件事真是个小故障......),现在我不知道如何进行可比性设置,就像下面的截图一样?因为Rattle的默认设置比我之前使用的程序的结果更差。
正常森林和随机森林 以及树状森林是一样的 :)森林是树木的集合体
它们是少还是什么? 它们是少吗?它们是罕见的和/或像1和0一样的分类(这是一个高水平的理解)。
我不使用R,因为我已经被当地的大师们的镀金眼镜所厌恶。
总之,只要你愿意,研究一下什么是树,什么是树的森林的理论。
https://habr.com/post/171759/
https://habr.com/post/116385/
如果你想改变Rattle的设置,你应该去找Sanych,但我不知道为什么,你只是想放纵一下,或者费心在mt5和R上整合EA。
https://www.mql5.com/ru/articles/1165
在你的数据上,文件Pred_004_Buy除以一半,你可以得到0.85的迎面。
这些数据是垃圾,最好扔掉。其余的我们自己去追赶。在沉默中...
为什么数据很糟糕?这是一个非常好的结果。