交易中的机器学习:理论、模型、实践和算法交易 - 页 361 1...354355356357358359360361362363364365366367368...3399 新评论 Maxim Dmitrievsky 2017.05.18 19:15 #3601 桑桑尼茨-弗门科。训练、再训练和过度训练从根本上说是不同的事情。所有这些关于每个新酒吧的培训,在这个论坛上和TA内部都被嚼烂了,嚼烂了。在反对过度训练(overfitting)的斗争中,我知道两种方法。1.从与目标变量无关的预测器中清理预测器集--从输入的预测器集的噪声中清理。这个主题的前100个帖子详细地讨论了这个问题。2.在对预测因子集进行清理后,我们开始用训练样本拟合模型,然后用测试和验证样本,这些样本是来自一个文件的随机样本。所有三组的误差应该大致相同。3.然后取一个与前一个文件分开的文件,在其上运行模型。同样,误差应该与之前的差不多。4.如果定期进行这些检查,"20%的下滑是重新训练的信号 "的问题就根本不会被问到,因为前三个步骤的结果是下滑作为一个模型参数,超过这个参数就说明模型不工作了,一切都应该重新开始。 嗯,这都是一般的情况,是的。而在每一种情况下,你都需要与每个特定的TS进行更多的合作,然后当它被训练得很好时,当它被重新训练时,当它有时期时,理解就会到来。例如,买入/卖出比率应大致相同,训练样本应包含上升趋势、下降趋势和平坦,否则就是单向抽样。在这种情况下,最主要的是不要 "过度训练 "自己 :)另外,季节性因素、危机因素和其他许多不同的规律性因素也需要考虑到。 Forester 2017.05.18 19:30 #3602 桑桑尼茨-弗门科。1.清理预测器集合中与目标变量无关的预测器--清理输入预测器集合中的噪音。在这个主题的前100个里程碑中,这个问题得到了非常详细的讨论 最终出现了什么解决方案--如何识别与输出指令无关的预测因子? Yuriy Asaulenko 2017.05.18 19:41 #3603 elibrarius。 最后的解决方案是什么--如何识别与输出指令无关的预测因子? 如何?- 这一切都取决于具体细节。我花了2天时间来解决一个简单的问题。现在,解决方案似乎显而易见了))。 Forester 2017.05.18 19:44 #3604 尤里-阿索连科。 如何?- 这一切都取决于具体细节。我花了两天时间来解决一个简单的问题。现在,解决方案似乎很明显))。 我想,也有一般的、普遍的原则?了解你的具体例子也很有意思。 Yuriy Asaulenko 2017.05.18 19:49 #3605 埃利布留斯。 我假设也有一般的、普遍的原则?好吧,知道你的特殊例子也很有意思。在我的博客上查一查。这些原则,是的,是普遍的。但没有一般的解决方案。除了某些类别的任务。 Dr. Trader 2017.05.18 19:55 #3606 对前一百页的总结 :)神经元和几乎所有其他流行的模型都离人工智能很远。他们可以简单地找到这样的预测值组合,以达到所需的学习精度,在未来的预测中,他们对过去的结果进行插值(或外推),以获得新的预测。这意味着,如果我们以Ma、Rci和Stochastic为预测因子,并以人字形反转作为训练目标来训练神经网络--我们会对神经网络说 "这三个预测因子可以预测反转。而神经网络本身也不会知道这些预测因素是否真的适合。它将以可接受的精确度记住这些数据,在交易中,我们希望在反转之前保存Ma、Rci和随机指数的相同组合。但他们不会,而且会失败。一个基于无用预测因子的模型将会失败,无论它是gbm、神经元还是回归。你甚至可以生成随机数列并将其作为预测器,神经元会在其中找到重复的组合并记住它们。 选择预测器和训练的目的,使用其他工具,这是人类数据挖掘者的任务。而训练模型(神经元)是倒数第二步的小事。预测器必须与训练数据上的目标保持相关性,包括过去和未来。这就是为什么SanSanych谈到要在不同的文件上测试模型,只是为了确保找到的依赖关系不会因为新的数据而消失。 也就是说,我们仔细研究并收集预测因素和目标,训练模型并测试它。然后我们在模型的全新数据上进行测试。如果这两种情况下的预测准确率不一致,那么预测者或目标就不合适。我们应该寻找其他的。SanSanych Fomenko: NS可以预测非平稳序列吗?如果是这样,哪些类型的非平稳性?在我看来,神经元学完全不适合于用价格来预测非平稳的时间序列。价格行为不断变化,发现的模式在下班后停止工作,一切都很混乱。然后有人拿着一个神经元库,给它几个月的价格,要求找到这段时间内重复的依赖关系。但没有重复的依赖性,神经元能找到并记住的东西将只是一个100%的随机巧合。如果我们要使用一个神经元,那么我们应该只给它处理过的价格(而不是纯粹的ohlc),比如说指标。 Forester 2017.05.18 20:16 #3607 谢谢你的总结,我没心情读100页...) 人工选择预测因子的过程,例如3的组合将需要很长的时间。在MT5中,有38个标准技术指标。3的组合--巨大的数字。此外,我们需要选择时期、价格类型和其他输入参数。而如果我们加入有趣的非标准指标,测试的数量将增加更多。因此,我们应该寻找一种自动估计的指标。我在Vladimir Perervenko的 文章中发现了2种常见的方法。 1)去除高度相关的变量--它在R中实现。 2)选择最重要的变量--也是在R中解决的。 我还在直接用MT5写,可能这些问题有现成的解决方案?或者将解决方案从R转移到MT5的方法,至少在简化版....?如果我们寻找指标的相关性,我们只需寻找每个指标对之间的差异---对每个柱状图进行总结---除以柱状图的数量。(或其他方式?)随着最重要的--没有完全解决... 也许有一些其他方法可以清除预测器? Dr. Trader 2017.05.18 20:32 #3608 elibrarius。但我还是直接在MT5上写,也许已经有现成的解决方案来解决这些问题?或者将解决方案从R转移到MT5的方法,至少在一个简化的版本....?要在MQL中一次写完,但依靠R并不是最好的选择。在R语言中开发一个策略,然后使用这个库https://www.mql5.com/ru/code/17468,从专家顾问中调用R语言代码,并在测试器中进行测试,这样做比较容易。 在创建和测试过程中,很可能会有很多东西被删除和改变,包、模型等的变化,在R本身中改变和测试都比较容易。最后,当你喜欢它并且一切正常时,你可以尝试用手把代码移植到mql上。 R中使用的许多包实际上是用C/C++编写的,你可以在这里找到标准包的源代码https://cran.r-project.org/web/packages/available_packages_by_name.html。 Andrey Dik 2017.05.18 20:39 #3609 交易员博士。对前一百页的总结 :)神经元和几乎所有其他流行的模型都离人工智能很远。他们可以简单地找到这样的预测值组合,以达到所需的学习精度,在未来的预测中,他们对过去的结果进行插值(或外推),以获得新的预测。这意味着,如果我们以Ma、Rci和Stochastic为预测因子,并以人字形反转作为训练目标来训练神经网络--我们会对神经网络说 "这三个预测因子可以预测反转。而神经网络本身也不会知道这些预测因素是否真的适合。它将以可接受的精确度记住这些数据,在交易中,我们希望在反转之前保存Ma、Rci和随机指数的相同组合。但他们不会,而且会失败。在无用的预测因素上训练的模型会失败,无论是gbm、神经元学还是回归。你甚至可以生成随机数列并将其作为预测器,神经元会在其中找到重复的组合并记住它们。 选择预测器和训练的目的,是人类数据挖掘者的任务,使用其他工具。而训练模型(神经元)是倒数第二步的小事。预测器必须与训练数据上的目标保持相关性,包括过去和未来。这就是为什么SanSanych谈到要在不同的文件上测试模型,只是为了确保找到的依赖关系不会因为新的数据而消失。 也就是说,我们仔细研究并收集预测因素和目标,训练模型并测试它。然后我们在模型的全新数据上进行测试。如果这两种情况下的预测准确率不一致,那么预测者或目标就不合适。我们应该再找一个。在我看来,神经元学不适合预测非平稳的时间序列。价格行为不断变化,发现的模式在下班后停止工作,一切都很混乱。然后有人拿着一个神经元库,给它几个月的价格,要求找到这段时间内重复的依赖关系。但没有重复的依赖性,神经元能找到并记住的东西将只是一个100%的随机巧合。如果我们使用一个神经元,那么我们可以只给它处理过的价格(而不是纯粹的ohlc),比如说指标。问题不在于神经元本身或其他适用于市场的东西。问题是向DM工具输入了什么。而使用裸价作为输入,纯粹是疯狂的行为。问题在于预测者,正如CC所说。也就是说,问题在于如何将一个非平稳序列表示为平稳序列。谁最接近解决这个问题,谁就是最好的。 Forester 2017.05.18 20:43 #3610 交易员博士。用MQL写所有的东西,同时依靠R,这不是最好的解决方案。在R语言中开发策略,然后使用这个库https://www.mql5.com/ru/code/17468, 从专家顾问中调用R语言代码,并在策略测试器中进行测试,这样做比较容易。 在创建和测试时,很可能会有很多东西被删除和改变,包会被替换,模型会被改变等等。最后,当你喜欢它并且一切正常时,你可以尝试用手把代码移植到mql上。 R中使用的许多包实际上是用C/C++编写的,你可以在这里找到标准包的源代码https://cran.r-project.org/web/packages/available_packages_by_name.html。这很复杂...这将比理解算法(如上面的K-correlation)和编写算法花费更多时间。我认为尝试所有的输入,计算相关性,并筛选出高度相关的功能将需要几个小时。我希望使用其他的解决方案来筛选出预测者也同样容易)。那么,是否有其他的解决方案来寻找不必要的预测因素? 1...354355356357358359360361362363364365366367368...3399 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
训练、再训练和过度训练从根本上说是不同的事情。
所有这些关于每个新酒吧的培训,在这个论坛上和TA内部都被嚼烂了,嚼烂了。
在反对过度训练(overfitting)的斗争中,我知道两种方法。
1.从与目标变量无关的预测器中清理预测器集--从输入的预测器集的噪声中清理。这个主题的前100个帖子详细地讨论了这个问题。
2.在对预测因子集进行清理后,我们开始用训练样本拟合模型,然后用测试和验证样本,这些样本是来自一个文件的随机样本。所有三组的误差应该大致相同。
3.然后取一个与前一个文件分开的文件,在其上运行模型。同样,误差应该与之前的差不多。
4.如果定期进行这些检查,"20%的下滑是重新训练的信号 "的问题就根本不会被问到,因为前三个步骤的结果是下滑作为一个模型参数,超过这个参数就说明模型不工作了,一切都应该重新开始。
嗯,这都是一般的情况,是的。而在每一种情况下,你都需要与每个特定的TS进行更多的合作,然后当它被训练得很好时,当它被重新训练时,当它有时期时,理解就会到来。例如,买入/卖出比率应大致相同,训练样本应包含上升趋势、下降趋势和平坦,否则就是单向抽样。在这种情况下,最主要的是不要 "过度训练 "自己 :)
另外,季节性因素、危机因素和其他许多不同的规律性因素也需要考虑到。
1.清理预测器集合中与目标变量无关的预测器--清理输入预测器集合中的噪音。在这个主题的前100个里程碑中,这个问题得到了非常详细的讨论
最后的解决方案是什么--如何识别与输出指令无关的预测因子?
如何?- 这一切都取决于具体细节。我花了两天时间来解决一个简单的问题。现在,解决方案似乎很明显))。
我假设也有一般的、普遍的原则?好吧,知道你的特殊例子也很有意思。
在我的博客上查一查。
这些原则,是的,是普遍的。但没有一般的解决方案。除了某些类别的任务。
对前一百页的总结 :)
神经元和几乎所有其他流行的模型都离人工智能很远。他们可以简单地找到这样的预测值组合,以达到所需的学习精度,在未来的预测中,他们对过去的结果进行插值(或外推),以获得新的预测。
这意味着,如果我们以Ma、Rci和Stochastic为预测因子,并以人字形反转作为训练目标来训练神经网络--我们会对神经网络说 "这三个预测因子可以预测反转。而神经网络本身也不会知道这些预测因素是否真的适合。它将以可接受的精确度记住这些数据,在交易中,我们希望在反转之前保存Ma、Rci和随机指数的相同组合。但他们不会,而且会失败。
一个基于无用预测因子的模型将会失败,无论它是gbm、神经元还是回归。你甚至可以生成随机数列并将其作为预测器,神经元会在其中找到重复的组合并记住它们。
选择预测器和训练的目的,使用其他工具,这是人类数据挖掘者的任务。而训练模型(神经元)是倒数第二步的小事。
预测器必须与训练数据上的目标保持相关性,包括过去和未来。这就是为什么SanSanych谈到要在不同的文件上测试模型,只是为了确保找到的依赖关系不会因为新的数据而消失。
也就是说,我们仔细研究并收集预测因素和目标,训练模型并测试它。然后我们在模型的全新数据上进行测试。如果这两种情况下的预测准确率不一致,那么预测者或目标就不合适。我们应该寻找其他的。
NS可以预测非平稳序列吗?如果是这样,哪些类型的非平稳性?
在我看来,神经元学完全不适合于用价格来预测非平稳的时间序列。价格行为不断变化,发现的模式在下班后停止工作,一切都很混乱。然后有人拿着一个神经元库,给它几个月的价格,要求找到这段时间内重复的依赖关系。但没有重复的依赖性,神经元能找到并记住的东西将只是一个100%的随机巧合。
如果我们要使用一个神经元,那么我们应该只给它处理过的价格(而不是纯粹的ohlc),比如说指标。
谢谢你的总结,我没心情读100页...)
人工选择预测因子的过程,例如3的组合将需要很长的时间。在MT5中,有38个标准技术指标。3的组合--巨大的数字。此外,我们需要选择时期、价格类型和其他输入参数。而如果我们加入有趣的非标准指标,测试的数量将增加更多。
因此,我们应该寻找一种自动估计的指标。我在Vladimir Perervenko的 文章中发现了2种常见的方法。
1)去除高度相关的变量--它在R中实现。
2)选择最重要的变量--也是在R中解决的。
我还在直接用MT5写,可能这些问题有现成的解决方案?或者将解决方案从R转移到MT5的方法,至少在简化版....?
如果我们寻找指标的相关性,我们只需寻找每个指标对之间的差异---对每个柱状图进行总结---除以柱状图的数量。(或其他方式?)
随着最重要的--没有完全解决...
也许有一些其他方法可以清除预测器?
但我还是直接在MT5上写,也许已经有现成的解决方案来解决这些问题?或者将解决方案从R转移到MT5的方法,至少在一个简化的版本....?
要在MQL中一次写完,但依靠R并不是最好的选择。在R语言中开发一个策略,然后使用这个库https://www.mql5.com/ru/code/17468,从专家顾问中调用R语言代码,并在测试器中进行测试,这样做比较容易。
在创建和测试过程中,很可能会有很多东西被删除和改变,包、模型等的变化,在R本身中改变和测试都比较容易。
最后,当你喜欢它并且一切正常时,你可以尝试用手把代码移植到mql上。
R中使用的许多包实际上是用C/C++编写的,你可以在这里找到标准包的源代码https://cran.r-project.org/web/packages/available_packages_by_name.html。
对前一百页的总结 :)
神经元和几乎所有其他流行的模型都离人工智能很远。他们可以简单地找到这样的预测值组合,以达到所需的学习精度,在未来的预测中,他们对过去的结果进行插值(或外推),以获得新的预测。
这意味着,如果我们以Ma、Rci和Stochastic为预测因子,并以人字形反转作为训练目标来训练神经网络--我们会对神经网络说 "这三个预测因子可以预测反转。而神经网络本身也不会知道这些预测因素是否真的适合。它将以可接受的精确度记住这些数据,在交易中,我们希望在反转之前保存Ma、Rci和随机指数的相同组合。但他们不会,而且会失败。
在无用的预测因素上训练的模型会失败,无论是gbm、神经元学还是回归。你甚至可以生成随机数列并将其作为预测器,神经元会在其中找到重复的组合并记住它们。
选择预测器和训练的目的,是人类数据挖掘者的任务,使用其他工具。而训练模型(神经元)是倒数第二步的小事。
预测器必须与训练数据上的目标保持相关性,包括过去和未来。这就是为什么SanSanych谈到要在不同的文件上测试模型,只是为了确保找到的依赖关系不会因为新的数据而消失。
也就是说,我们仔细研究并收集预测因素和目标,训练模型并测试它。然后我们在模型的全新数据上进行测试。如果这两种情况下的预测准确率不一致,那么预测者或目标就不合适。我们应该再找一个。
在我看来,神经元学不适合预测非平稳的时间序列。价格行为不断变化,发现的模式在下班后停止工作,一切都很混乱。然后有人拿着一个神经元库,给它几个月的价格,要求找到这段时间内重复的依赖关系。但没有重复的依赖性,神经元能找到并记住的东西将只是一个100%的随机巧合。
如果我们使用一个神经元,那么我们可以只给它处理过的价格(而不是纯粹的ohlc),比如说指标。
问题不在于神经元本身或其他适用于市场的东西。问题是向DM工具输入了什么。而使用裸价作为输入,纯粹是疯狂的行为。
问题在于预测者,正如CC所说。也就是说,问题在于如何将一个非平稳序列表示为平稳序列。谁最接近解决这个问题,谁就是最好的。
用MQL写所有的东西,同时依靠R,这不是最好的解决方案。在R语言中开发策略,然后使用这个库https://www.mql5.com/ru/code/17468, 从专家顾问中调用R语言代码,并在策略测试器中进行测试,这样做比较容易。
在创建和测试时,很可能会有很多东西被删除和改变,包会被替换,模型会被改变等等。
最后,当你喜欢它并且一切正常时,你可以尝试用手把代码移植到mql上。
R中使用的许多包实际上是用C/C++编写的,你可以在这里找到标准包的源代码https://cran.r-project.org/web/packages/available_packages_by_name.html。
这很复杂...这将比理解算法(如上面的K-correlation)和编写算法花费更多时间。我认为尝试所有的输入,计算相关性,并筛选出高度相关的功能将需要几个小时。
我希望使用其他的解决方案来筛选出预测者也同样容易)。
那么,是否有其他的解决方案来寻找不必要的预测因素?