文章 "用随机森林预测趋势" - 页 10

 
TheXpert:

过度训练是一个公认的、相当具体的术语。你不仅偷换概念,而且没有解释你的理解是什么。

这让我想起了 Sulton )的交流方式。

模型训练是指模型提取过程的本质,用本地行话说就是 "模式",这些模式不仅发生在训练样本中,也发生在训练样本之外。

过度训练(过拟合)是指模型开始挑选出一些在训练样本之外并不存在的随机性,正因为如此,模型给出的误差值与训练误差大相径庭。

在这个论坛上,很多人都遇到过过度训练的问题(也许并没有意识到),因为在测试仪优化的帮助下,很容易得到一个过度训练的 EA。

但这都是哲学问题。

现实情况在于具体的技能,以及在此过程中使用的工具。

通过我的文章和书籍,我并不是要解决过度训练的问题,而只是要打开通往预测模型世界的大门,预测模型(模型)教授如何预测未来的质量问题。如果尊敬的gpwr 花几个小时运行一下《Rattle》,他的问题就会有更多内容,而不会表明他懒得读我的文章,却对文章内容有意见。但最重要的是,Rattle 涵盖了创建非常复杂模型的整个过程,包括估计样本外模型的性能、重要预测因子列表、发现的模式数量 .....。虽然实际模型不同,但我仍在使用 Rattle。只要弄明白,测试一个想法.....20-30 分钟,开发方向就可能发生根本变化。

目标非常有限。

除了文章和书籍,我还提供付费服务。大家可以自行决定我是否有必要的资质来完成广告中列出的工作。而我,在接受某项订单之前,会决定客户是否能够理解我的劳动成果。

附加的文件:
PredictTrend.zip  858 kb
 
faa1947:


1. 形成一个相当大的预测器集合,例如,50 件,条数 为 15000

2.使用上述算法之一,在这 1.5 万个条形图上选择预测因子--我们通常会得到 15 到 20 个条形图,这些条形图在模型构建中的使用率超过 20%。

3.3. 然后,我们选择一个更小的窗口,例如 2000 条,开始逐条移动,从之前选出的 50 条中的 20 条中选择重要的预测因子。

4.4. 重要预测因子的具体列表一直在变化。


1 如何改变?您需要 60 年的每日历史记录吗?

2.您在展望未来,尊敬的阁下。你在整个历史中选出 15-20 个预测因子,然后在同样的 15000 条 "未经训练的 "样本中检查它们?如果今天有人告诉我未来会 "抽取 "哪 15-20 个预测因子,我不需要任何其他东西就能成为亿万富翁。

我使用 MatLab。里面有很多不同的工具箱。所以你没必要认为我不知道你的方法。你也不应该认为我的方法肤浅或乏力(我只是对你的方法这么认为)。每个人都可以使用不同的软件包和工具箱。但不是每个人都能理解它们的精髓。你也不需要向我宣传你的服务和书籍。我的问题比过度训练的定义复杂得多。我有上万个经济指标--预测指标,要选择那些对市场有影响的指标非常困难。如果我逐个分析每个预测因子,就会错过像我上面例子中的情况,即目标序列与某个预测因子不匹配,但这个预测因子却包含在目标序列的模型中。如果你对不同预测因子的所有可能组合进行搜索,你将没有足够的时间。即使从 10,000 个预测因子中搜索两个,也需要一周以上的时间。到目前为止,我已经有了一个生物自剪枝网络(解释起来需要很长时间,你需要经过一定的训练才能理解)来选择 N 个相关变量。这个网络比搜索所有可能的预测因子组合要快,但仍然很慢。所以,如果你有一个绝妙的主意,如何通过只看我例子中的 y 和 x1 来确定 x1 是 y 模型的一部分,我会给你一枚金牌。

 
gpwr:

1. 怎么样?需要 60 年的日常历史?

2.阁下,您在展望未来。你在整个历史中选出 15-20 个预测因子,然后在同样的 15000 条 "未经训练 "的样本中检查它们?如果今天有人告诉我未来会 "抽取 "哪 15-20 个预测因子,我不需要任何其他东西就能成为亿万富翁。

我使用 MatLab。里面有很多不同的工具箱。所以你没必要认为我不知道你的方法。你也不应该认为我有什么肤浅或勤奋的方法(这正是我对你的方法的看法)。每个人都可以使用不同的软件包和工具箱。但不是每个人都能理解它们的精髓。你也不需要向我宣传你的服务和书籍。我的问题比过度训练的定义复杂得多。我有上万个经济指标--预测指标,要选择那些对市场有影响的指标非常困难。如果我逐个分析每个预测因子,就会错过像我上面例子中的情况,即目标序列与某个预测因子不匹配,但这个预测因子却包含在目标序列的模型中。如果你对不同预测因子的所有可能组合进行搜索,你将没有足够的时间。即使从 10,000 个预测因子中搜索两个,也需要一周以上的时间。到目前为止,我已经有了一个用于选择 N 个相关变量的生物自剪枝网络(说来话长,你需要经过一定的训练才能理解)。这个网络比搜索所有可能的预测因子组合要快,但仍然很慢。所以,如果你有一个绝妙的主意,如何通过只看我例子中的 y 和 x1 来确定 x1 是 y 模型的一部分,我会给你一个好主意。

1. 怎么样?需要 60 年的日常历史?

别夸张了。

我从事外汇交易。我预测趋势,我对有 50-100 点反转的趋势非常满意。为此,我不需要一天的历史记录。在我的例子中,这是 H1,18000 就是三年。

2.阁下,您展望未来。您是否在整个历史记录中选择 15-20 个预测因子,然后在同样 15000 个条形图的 "未训练 "样本中进行测试?

我已经解释过了。我希望您能亲自阅读我的解释。我不预测未来。性能总是在样本之外。即使我想,Rattle 也无法提供你建议的另一种可能性。

我的问题远比界定过度训练复杂得多。我有上万个经济指标预测,如何选择影响市场的指标 非常困难。如果我必须逐个分析每个预测指标、

不存在完全搜索。当预测因子的数量以千为单位时,随机森林的效果最好。我的数据如下90 个预测因子,10000 行(条形图)--模型训练时间在一个核心上约为一分钟。结果是:类标签、类标签概率、每个预测因子在模型构建中的重要性。

该网络比搜索所有可能的预测因子组合更快、

无需搜索预测因子。算法如下。有一个参数--树节点中预测因子的数量,在此基础上做出分类决定。你可以自己设置,默认值 = sqrt(我的最大预测因子数是 90)。每个节点大约使用 9 个预测因子。该算法在考虑树的每个节点时,总是使用 9 个预测因子,但总是从总数=90 的预测因子中随机选择。通过交叉验证,最终选出最重要的预测因子,用于最终的树构建。

PS.

为什么不用 R?如果付费,那么 SAS....

Matlab 完全不属于专业统计软件包。

 
请解释一下,为什么要费尽心思选择预测因子?毕竟,现代算法能够处理成千上万个预测因子,即使这些预测因子大多是随机的。在这种情况下,模型是可靠的。
 
CyberCortex:
请解释一下,为什么要费尽心思选择预测因子?毕竟,现代算法能够处理成千上万个预测因子,即使这些预测因子大多是随机的。而且这些模型是可靠的。

不幸的是,情况并非如此。至少对我来说不是。

我不知道有什么预测因子选择 算法(尽管我知道几十种选择算法),在这些算法(算法)之后,模型的过度训练将被排除。

统计学的老规则仍然适用:"垃圾进-垃圾出"。

 
faa1947:

不幸的是,事实并非如此。至少对我来说是这样。

我不知道有什么预测因子选择算法(尽管我知道几十种选择算法),在使用这些算法(算法)之后,模型的过度训练就会被排除。

统计学的老规则仍然适用:"垃圾进-垃圾出"。

我不知道,我测试了我的程序,似乎没有问题。

请允许我引用我在另一份资料上写的一段话:"我们用这里的数据测试了程序的正确性:

http://archive.ics.uci.edu/ml/index.html

(机器学习和智能系统中心网站)。

在这种情况下,我们使用了健康人和癌症患者的血液分析数据。我们的假设是建立一个能够根据分析结果预测人类癌症的模型。分类要求分为两类(患病-未患病)。

训练示例的长度为 10000 个特征。其中 3000 个为随机特征,专门用于测试分类质量。训练样本中总共使用了 100 个示例,这无疑是非常小的,但我们无法找到更多。在测试过程中,我们还使用了其他 100 个样本。

http://archive.ics.uci.edu/ml/datasets/Arcene

(链接到原始数据档案)。

对陌生数据的识别准确率为 75%。我们相信,如果有更多的数据进行训练,我们就能大大提高预测的准确率"。引用完毕。

附注:在一台配备 8 核处理器和 8GB 内存的电脑上,训练时间约为 2 分钟,因为算法的训练时间不会随着预测因子数量的增加而呈指数 增长。而且不会自动使用无意义的预测因子。

如果有人感兴趣,请点击以下链接 cybercortex.blogspot.ru(不要认为这是广告:)。

 
CyberCortex:

我不知道,我测试了我的程序,似乎一切正常。

请允许我引用我在另一份资料上写的一段话:"我们根据这里的数据测试了程序的正确性:

指标等 正式的数学值。而事实证明,将各种垃圾纳入模型非常容易,"垃圾进-垃圾出 "的规则开始发挥作用。

将垃圾预测因子(即对目标变量影响微弱的预测因子)纳入模型会导致模型的过度训练,即在训练样本上一切正常,但在样本之外就会出现问题。

 
faa1947:

你有一个很好的典型例子来说明问题。

1.表面上看,与您的例子不同,所有金融序列都属于所谓的时间序列,其中数值的顺序非常重要。因此,金融市场模型与医学模型不同,应该考虑到这一细微差别。

2.但还有一种更严重的情况,它与您的问题直接相关。

在医学中,解决 "有病没病 "的问题指的是诊断,这是所有医学的一半。很多人研究、论证、寻找我们术语中的 "预测因素",根据这些研究人员的说法,这些预测因素与 "生病与否 "的判断有关。我们在外汇市场上看不到类似的东西。在股票市场,对经济原因和运动方向之间关系的研究很常见,但这些都不适用于日内区间。

因此,在建立日内区间的机器学习模型时,会使用指标等 正式的数学值。而事实证明,将各种垃圾纳入模型非常容易,"垃圾进-垃圾出 "的规则开始发挥作用。

将垃圾预测因子(即对目标变量影响较弱的预测因子)纳入模型会导致模型的重新训练,在训练样本上一切正常,但在样本之外就会出现问题。

1."所有金融序列都属于所谓的时间序列,其中数值的顺序非常重要。- 没有人否认这一点,即使是时间序列,也没有违反这个顺序。您在对价格 P1、P2、P3...Pn 进行模型训练后,在对样本外或实际使用进行测试时,不会改变它们的顺序。

2.我同意你的观点:如果输入是 100% 的垃圾预测因子,那么输出也是 100% 的垃圾。这是显而易见的,没有人对此提出异议。我想说的是,在有些算法中,剔除数据并不重要,因为这些算法在 "样本缺失"(Out Of Samples)情况下,无论有多少垃圾数据,只要不是 100%,都能得到很好的结果,因为事实上并没有使用垃圾数据。同样重要的是,要区分对降低数据维度至关重要的算法(如主成分分析或自动编码器)和对数据维度不敏感的算法。

"在股票市场上,研究经济原因和运动方向之间的关系很常见,但这些都不适用于日内区间"。- 嗯,确实适用,而且确实适用于日内区间,比如非农就业数据的发布

3. 我当然理解你的意思,每个人都是量力而行,但你自己实施过任何机器学习算法吗?我深信,要想了解算法的工作原理,你需要自己从头开始编写。相信我,在这种情况下,你会发现书本上没有记载的东西。即使是以前看似简单的元素,实际运作起来也与你想象的不同:)谢谢。

 
faa1947:

此外,在建立日内区间的机器学习模型时,会使用指标等 正式的数学值。而事实证明,在模型中加入各种垃圾是非常容易的,"垃圾进-垃圾出 "的规则就开始起作用了。

是的,顺便说一句,不一定非要使用 "指标等数学量"。只要你愿意,你可以根据价格、成交量、时间和 delta 想出很多自己的启发式方法。我唯一会使用的真正数学指标是均值、标准差和相关性。
 
CyberCortex:
....

3. 当然,我理解你,每个人都在尽自己所能赚钱,但你自己实现过任何机器学习算法吗?我相信,要想了解算法的工作原理,你需要自己从头开始编写。相信我,在这种情况下,你会发现书本上没有记载的东西。即使是以前看似简单的元素,其实际工作原理也与你想象的不同。)恕我直言。

我不能错过这样一句话。尊敬!