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

 
阿列克谢-伯纳科夫
尤里,谢谢你。我将考虑一下。

我们确实有一个问题。你是如何选择预测因子的?

反正我也不给它们拔毛。这就是VMR的工作。21世纪已经过去16年了,所有的粗活都应该由自动系统完成,而不是由人类完成。

尤里-雷舍托夫

...更具体地说,VMR通过减少一些预测因子 来减少超空间。

甚至有一个具体的例子,VMR自动减少了其中一个预测因子。见预测破产

在这个页面上,你甚至可以尝试一个简单的经典例子,看看该算法是如何做到的:减少训练集中的非信息预测因子和非支持向量(样本)

Прогнозируем банкротства - Векторная машина Решетова
  • sites.google.com
Авторы: Myoung-Jong Kim, Ingoo Han опубликовали статью под названием: «The discovery of experts decision rules from qualitative bankruptcy data using genetic algorithms». Судя по оригинальной авторской статье, выборка предназначалась для генетических алгоритмов, т. к. предполагалось, что для других алгоритмов она не по зубам. Однако, вынужден...
 
我必须在实践中尝试你的算法。我无法想象为什么会有这么好的效果。
 
Yury Reshetov:

我不以任何方式剔除它们。这就是VMR的工作。21世纪已经过去16年了,所有艰苦的工作都应该由自动化系统完成,而不是由人类完成。


根据我的经验(我并不绝对化),模型中的预测器选择 算法是最没有效率的。也没有众多独立的软件包和函数可用于预测器的选择。

为什么我这样说?

对我来说,有一个简单的、用于交易的基本测试。

学习模式。我们按时间在训练样本之外的样本上测试,并比较误差。首先,误差不能在50%左右--这根本就不是一个可教的模型。我们认为误差小于40%。如果在训练和验证样本上,这些误差大致相等,那么模型就不会被重新训练。如果这些误差有明显的不同,而且可以分出好几倍,特别是在训练误差小于10%的情况下,那么这个模型就是过度训练了。重新训练的原因是,有一些噪声预测器,模型学习算法不会重新训练。

到目前为止,我还没有遇到过不包括噪声的预测器组。而所有的预测器选择算法都无法应对这种噪音,模型的粗化(正则化)概念也无法应对。

所以你的观点是错误的,鉴于获得过度训练的模型在真实上是危险的,而真实总是 "非样本的"。

 
阿列克谢-伯纳科夫

我提出问题一。我稍后将公布解决方案。SanSanych已经看过了,请不要告诉我答案。

简介:要建立一个交易算法,你需要知道哪些因素将成为预测价格,或趋势,或交易开盘方向的基础。选择这样的因素不是一件容易的事,它是无限复杂的。

附上一个档案,里面有我做的人工 csv数据集。

数据包含20个以input_为前缀的变量,以及一个最右边的变量output。

输出变量取决于输入变量的某个子集(该子集 可能包含1至20个输入)。

任务:在任何方法(机器学习)的帮助下,选择变量输入,在其帮助下,有可能确定现有数据的输出变量状态。

在二元分类方面还有什么问题吗?因为我在结果和抽样生成方法都已经布置好的情况下,来了个大闹天宫。

我想参加并同时测试我的二元分类器的一个新版本。

 
IvannaSvon:
尤里,请回复私人信息

脚本在附件中。

数据集取自欧元兑美元H1

附加的文件:
 
尤里-雷舍托夫

在二元分类方面还有什么问题吗?因为我来到了一个喧闹的地方,当时他们已经公布了结果和抽样生成方法。

我想参加并同时尝试我的二进制分类器的新版本。

总是有任务的 :)

档案中有两个文件 - train.csv和test.csv。文件中的最后一列是二进制分类的必要结果。我们需要使用train.csv文件来训练模型,然后将模型应用于test.csv。已经知道的test.csv的目标结果不能事先使用,它们只需要用于最终检查。数据取自eurusd d1,级别为0或1--价格在下一个柱状体中下跌或上涨。如果该模型至少在10个案例中的6个案例中正确预测了test.csv的结果,那么你可以尝试用它在外汇中进行交易。如果它在10个案例中正确预测了7个案例(甚至更多)--这就是通往圣杯的正确途径,我们必须在其他年份和月份尝试训练和测试该模型,如果一切都将是相同的--那么非常好。

我已经考虑到了过去的错误,现在的文件是基于条形的delta而不是原始值。而一切都按行给定的相同类型的预测因子进行规范化,而不是按列进行规范化。

我自己尝试使用遗传学来列举预测变体。在一组预测因子上,我用两次交叉验证来训练主成分模型,并将分类误差作为遗传学的健身值返回。当遗传学达到极限时,我取最后一组预测因子,用两次交叉验证再次训练神经元。测试数据的最终预测误差约为40%。这里开始有一个坏消息--根据神经元的参数(内部权重的数量,交叉验证之间的迭代次数),最终的误差是不同的,它随机地在30%-50%左右。我曾经为自己只得到30%而高兴,但结果是我无法控制,只是得到了平均40%。
合乎逻辑的问题是,为什么你需要在中间建立一个主成分模型?它只是没有训练参数,输入数据,得到模型,计算测试数据的交叉验证误差。如果用神经网络来确定遗传学的适配函数,训练时间就会增加很多,再加上不清楚对神经网络本身使用什么训练参数。

我还在附录中把Yuri的VMR模型移植到R中。拿我的数据与噪声预测器相比,训练数据的误差为30%,测试数据的误差为60%,也就是说,没有奇迹发生,模型重新训练。不过有可能是代码迁移中出现了错误,如果你看到任何不一致的地方,请让我知道。在训练模型时,我没有足够的内存用于大核机器,使用了中等的机器(参数kernelTrickMode<- 2)。我不能等待每列的一百万次迭代,我使用了10000次(iterPerColumn <- 10000)。

附加的文件:
 
Dr.Trader:

总是有任务的 :)

档案中有两个文件 - train.csv和test.csv。

不幸的是,我的RAR档案没有解压。IMHO,最好是把所有东西都装在ZIP里。所有平台上都有ZIP文件的解包程序。另外,许多用户并不使用RAR。



Dr.Trader:
我还把尤里的VMR模型移植到R,在应用程序中。我把我的数据与噪声预测器,在训练数据上得到了30%的误差,在测试数据上得到了60%的误差,也就是说,没有奇迹发生,模型被重新训练。不过可能是代码迁移中的一个错误,如果你看到任何不一致的地方,请让我知道。

我一定会研究这个问题。不过我对R的了解还不够深。

移植是手动完成的还是通过某种自动装置?

 
能否有人尝试用主成分法来拒绝噪音,但预测者有成千上万的观测值,而不是Dr.Trader的 方式
 
Dr.Trader:


见私人信息。
 
桑桑尼茨-弗门科
也许有人会尝试用主成分法来抑制噪音,但预测者有成千上万的观测值,而不是像Dr.Trader 那样

你为什么不试试呢?

ps.我很久以前就试过了,但没有得到什么有趣的结果。

在我的研究过程中,有一些适度但有趣的结果,我想与大家分享,但在这个 "奇妙 "的论坛上,我既不能添加图片也不能附加文件,也许谁知道是什么问题?