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

 

我已经尝试了各种自写的验证方法,包括这些文章中描述的方法。我的结论如下。

在外汇中,目标变量和预测因素之间没有严格的关系,外汇不是一个可以找到并应用于计算新数据的公式。一个模型所能做的就是找到一些规律性的东西,并推断出结果用于新数据的交易。
换句话说,有一个一定的多维空间(维度等于预测因子的数量),其中有多个点(已知的目标变量)。该模型在这个空间建立了一个超平面,将空间中的点("买入 "类和 "卖出 "类)分开。构建这个超平面的方法是无限的(在一个简单的例子中--在纸上画四个点,在它们之间画一条弧线,这样在曲线的右边有两个点,左边也有两个点。绘制曲线的方法是无穷无尽的)。因此,不能保证所构建的模型反映了目标变量对预测因子的正确依赖。为了检查模型的充分性,采用了验证的方法--在训练中没有使用一些点,如果模型在这些测试点上会显示正确的结果,就很容易发现模型是否失败。

如果模型没有正确通过验证,可能是由于许多原因,例如
- 模型发现了一些不存在的依赖关系,这些依赖关系只存在于训练实例中
- 训练数据中存在一些依赖关系,而在测试的数据中不存在。例如,万一测试的所有数据都是在后来取的,而且外汇符号的行为已经改变了
- 模型本身已经用一个不成功的种子初始化了。经常发生的情况是,一个在相同数据上训练的模型,在多次尝试重新训练后,会在验证中得到不同的结果。

不知道是什么原因导致了某一案件的不良结果。我们能做的就是估计一个模型平均有多好--建立一个模型几十次,对验证进行估计。训练/验证数据每次都需要重新划分。
我认为有效的方法是按50%/50%的比例随机划分数据(不是按时间划分,而是让所有的东西都均匀混合,例如第1、2、5、7行用于训练,3、4、6、8行用于验证),在第一部分上训练模型,然后在第二部分上做验证,对于模型的评价我用准确率。这样重复50次(将数据重新划分为2个随机部分,训练、验证)。然后计算训练数据的平均精度,以及验证数据的平均精度。假设训练样本的平均准确率为90%,验证样本为80%。前测的准确率会更低,我使用这个经验法则:计算差值(90%-80%=10%),然后从验证结果中减去(80%-10%=70%)。事实证明,这样的模型在frontttest上的平均准确率将达到70%左右。此外,我通过基因调整模型参数和预测因子,将这一估计值从70%提高到70%(这比想象的要难得多,甚至超过50%都很难)。

但我不喜欢这样的事实,即这个结果只是一个平均数,没有保证。交易时真正的准确率将是60%至80%,甚至是50%至90%,这取决于你的运气有多差。无论我如何尝试,都不可能从任何迹象中钓出最佳模型。唯一的解决办法可能是用发现的最佳参数和预测器建立几十个模型,并把结果带到大多数人看的地方(模型的大会)。

这与SanSanych在本主题开始时所说的密切相关。你也可以按照他的建议,删除最后一个对照样本的已知数据的最后一部分。不要将这些数据用于训练和验证,而只是将其单独存储,直到模型训练结束。然后在这些数据上测试完成的模型,或国会。好处是,它将显示模型在新的时间数据上的表现。缺点是留给训练和验证的数据会更少,而且在交易开始时,模型会有点过时了。这里有一个小的细微差别,如果你不喜欢这个基准数据上的结果,而你开始选择一个模型,在这个领域会显示一个好的结果--然后你开始使用这个数据进行验证,相应地,模型的选择已经考虑到了他们,因此,有一点展望未来,控制和整个操作变得毫无意义,在这种情况下,根本不做控制样本更容易。

 
Dr.Trader:

我已经尝试了各种自写的验证方法,包括这些文章中描述的方法。我的结论如下。

在外汇中,目标变量和预测因素之间没有严格的关系,外汇不是一个可以找到并应用于计算新数据的公式。一个模型所能做的就是找到某种模式,并推断出结果,在新的数据上进行交易。
换句话说,有一个一定的多维空间(维度等于预测因子的数量),其中有多个点(已知的目标变量)。该模型在这个空间中建立了一个超平面,将空间中的点("买入 "类和 "卖出 "类)分开。构建这个超平面的方法是无限的(在一个简单的案例中--在纸上画四个点,在它们之间画一条弧线,使曲线的右边有两个点,左边也有两个。绘制曲线的方法是无穷无尽的)。因此,不能保证所构建的模型反映了目标变量对预测因子的正确依赖。为了检查模型的充分性,采用了验证的方法--在训练中没有使用一些点,如果模型在这些测试点上会显示正确的结果,就很容易发现模型是否失败。

如果模型验证失败,可能有很多原因。
- 该模型发现了一些不存在的、只存在于训练实例中的依赖关系。
- 训练数据中存在一种依赖性,而这种依赖性在测试数据中是不存在的。例如,在一个案例中,当一个测试的所有数据都是在较晚的时间采取的,并且外汇符号的行为已经改变了
- 模型本身已经用一个不成功的种子进行了初始化。经常发生的情况是,一个在相同数据上训练的模型,在多次尝试重新训练后,会在验证中得到不同的结果。

不知道是什么原因导致了某一案件的不良结果。我们能做的就是估计一个模型平均有多好--建立一个模型几十次,对验证进行估计。训练/验证数据每次都需要重新划分。
我认为有效的方法是按50%/50%的比例随机划分数据(不是按时间划分,而是让所有的东西都均匀混合,例如第1、2、5、7行用于训练,3、4、6、8行用于验证),在第一部分上训练模型,然后在第二部分上做验证,对于模型的评价我用准确率。这样重复50次(将数据重新划分为2个随机部分,训练、验证)。然后计算训练数据的平均精度,以及验证数据的平均精度。假设训练样本的平均准确率为90%,验证样本为80%。前测的准确率会更低,我使用这个经验法则:计算差值(90%-80%=10%),然后从验证结果中减去(80%-10%=70%)。事实证明,这样的模型在frontttest上的平均准确率将达到70%左右。此外,我通过基因调整模型参数和预测因子,将这一估计值从70%提高到70%(这比想象的要难得多,甚至超过50%都很难做到)。

但我不喜欢这个结果只是一个平均值,没有任何保证。交易的真正准确性将是60%至80%,甚至50%至90%,这取决于你的运气有多差。无论我如何尝试,都不可能从任何迹象中钓出最佳模型。唯一的解决办法可能是用发现的最佳参数和预测器建立几十个模型,并把结果带到大多数人看的地方(模型的大会)。

这与SanSanych在本主题开始时所说的密切相关。你也可以按照他的建议,删除最后一个对照样本的已知数据的最后一部分。不要将这些数据用于训练和验证,而只是将其单独存储,直到模型训练结束。然后在这些数据上测试完成的模型,或国会。好处是,这将显示模型在新的时间数据上的表现。缺点是留给训练和验证的数据会更少,而且在交易开始时,模型会有点过时了。这里有一个小的细微差别,如果你不喜欢基准数据上的结果,你开始选择一个在这方面会有好结果的模型--你开始使用这个数据进行验证,分别选择一个模型时考虑到它们,因此有一个轻微的展望未来,这整个操作变得毫无意义,在这种情况下,完全不做验证样本会比较容易。

准确无误!©

但是,有一个关键的细微差别。对于交叉验证和顶层嵌套cv,你需要采取时间分离的观察。那么,或者至少对于顶层来说,从与训练和底层CV不一致的日期中提取稀疏的样本。

结果应该更糟,但更真实。

如果我们在CV和嵌套CV上得到的结果是相关的(相关)。然后,该模型适合数据。
 
Vizard_
还没有)))。
7人查了一下。削减并不比半年前的版本好,或者当我看的时候不记得确切。在窗口和fylo的统计中写的是不同的。选择投入的重要性
有问题,与rf和其他几个人正面比较,可能会对非常不重要的事情给予高度重视。如果你采取最好的切割方式(从窗口),仍然是不好的。
在这个数据上,我至少得到92%。这块东西(原样)对于实际用途来说仍然没有什么用处。为发展中的努力和思想的飞翔点赞。

当然,这都是我的看法。现在暂时是这样))))。


当我们与雷舍托夫这种水平的人打交道时,我们可以放心地要求。

1.类似物的回顾

2.说明这些类似物应该克服的缺点

3.指明消除这些缺陷的机制(你可以在市场经济中隐藏具体内容)

4.与你的发展进行类似物的比较。这种比较应该证明,现有原型的上述所有缺点都已被消除。而得到的工具并不比类似物差。

如果像雷谢托夫这样水平的人不做,那么好吧。雷舍托夫在发展和思想飞翔方面的苦心是值得赞扬的。

 
桑桑尼茨-弗门科

那么你就可以安全地要求。

))))))
 
Vizard_
还没有)))。
7看着。再也没有比半年前的版本更好的了,或者说我什么时候看的已经记不清楚了。在窗口和fylo的统计中写的是不同的。选择投入的重要性
有问题,与rf和其他几个人正面比较,可能会对非常不重要的事情给予高度重视。如果你采取最好的切割方式(从窗口),仍然是不好的。
在这个数据上,我至少得到92%。这块东西(原样)对于实际用途来说仍然没有什么用处。赞扬你在开发和飞行方面的努力。

当然,这都是我的看法。再见)))。


窗口中的结果是两个模型的委员会。如果你看一下文件,其中保存了预测器的两个模型 在窗口中是这两个模型的委员会的结果。因为它是这样的:....
 
蜴_
我明白了。记事本是压缩的,我没有把它扭下来)))但我把它从窗口里拿出来做比较。
我立即删除了,因为没有用,虽然有人可能有用......。
总而言之,我认为你不应该批评这项工作。首先,它回答了一个非常重要的问题,即输入数据中包含的概括性信息在输出方面占多大比例。其次,如果尤里听从我的建议,你会得到一枚炸弹,可以关闭很多问题。不幸的是,我没有设法在我的数据上100%地教授这个模型(没有对数据进行增加概括能力的操作,结果是富有想象力的),看看这个模型将来会如何工作。然而,一旦你有了委员会100%的概括,你需要确保每个模型都有相同的100%,也就是说,输入数据完全描述了输出。然后我们将看到....同时,关于 "优化者 "的不可操作性的结论为时过早。另一件事是,我们每个人都在努力建立一个模型,以达到理想的输出。这又是极其困难的,甚至是不可能的。那么,如果输出不是理想的,但有一点错误,.....这就是有趣的事情.....比方说,不要用一个信号来标记那些有100点利润的信号,也要标记那些有-30点及以上利润的信号....。知道了这个假设,我们就可以把信号提高30个点,如果我们设法建立一个概括程度为100%的模型,问题就会得到解决。
 
一般来说,为了建立分类模型,记录的顺序不是很重要,重要的是模型要100%地学习它,重要的是在不久的将来市场对同一事件的反应是相同的。所以要说没有矛盾的数据。至于预后模型,记录的顺序对它们很重要。这是分类和预测之间的区别之一.....。
 

我想知道这是否会帮助我们....所以我理解,这样的东西的处理能力要高一个数量级,如果不是几个....。

https://hi-tech.mail.ru/news/compact-quantum-computer/?frommail=1

 
桑桑尼茨-弗门科
Mihail Marchukajtes:
和所有来者。在z1档案中,有两个文件train和test。对于Target来说,在训练中建立模型,应用于测试,发布结果的百分比(成功预测)。
的情况下),两个样本(训练=xx%,测试=xx%)。方法和模式不需要公布,只需要公布数字。允 许进行任何数据操作
和采矿方法。
附加的文件:
z1.zip  43 kb
 
Vizard_
和所有来者。z1档案包含两个文件train和test。对于目标,在训练中建立模型,应用于测试,将结果以百分比形式发布(成功预测
的情况下),两个样本(训练=xx%,测试=xx%)。方法和模式不需要公布,只需要公布数字。允 许进行任何数据操作
和采矿方法。

谢谢你!我会试一试的。

让我们同意在训练好的模型被评估之前不要研究测试。我以前也做过。

也就是说,我们一直在训练,直到我们的脸色发青的时候,火车上的最好的模型。也许是两到三个模型。然后是他们的一次次测试。