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

 

收件人: CyberCortex

对不起,SanSanych 把我牵扯进来了。

我不能对这种高高在上、咄咄逼人的不专业态度视而不见。

让我们逐一看看作者在描述申请程序时的陈述

引文:"与现有同类产品相比,CyberCortex 具有以下优势:

  • 使用的算法。 对于许多交易者来说,人工智能领域的技术始于经典神经网络这个老生常谈的话题,也止于此。但是,CyberCortex 所采用的波形算法是一种更强大、更现代的工具,因为:"......":"

反对

  1. 一般来说,这一领域被称为机器学习(Machine Learning),人工智能(Artificial Intelligence)则有所不同。我相信,许多交易者对许多类型的神经网络(深度网络、卷积网络和其他现代网络)都耳熟能详,而你却闻所未闻。对于那些仅限于研究MLP 的人来说,神经网络的话题已经过时了。我要让你失望的是,在深度学习方法发展起来之后,神经网络的话题已经焕发了第二春,对于那些了解并能够做到这一点的人来说,它远不是一个封闭的话题。此外,我们还知道许多其他分类算法,这些算法已在许多R 语言包中实现。

  2. 经过各种修改的 Bousting 算法早已为人所知(1996 年),其功能并不比神经网络算法强大。顺便说一下,您应该告诉我们您的程序使用的是什么算法。快速浏览R 语言包

  • "ADA"-- 自适应 随机搜索。这是我最喜欢的算法 之一,对原始算法进行了三种修改: Gentle-、Logit- 和 Real AdaBoost

  • "adabag"- 该软件包使用多类算法 Adaboost.M1(Freund 和 Schapire 的算法)、AdaBoost-SAMME(Zhu 等人,2009 年) 和 Breiman 的 Bagging 算法

  • boost"- 包含一组提升方法,如 "BagBoost"、"LogitBoost"、"AdaBoost "和 "L2Boost",并使用 Wilcoxon 检验统计量对特征(预测因子)进行预选

  • "pga"- 包含将 AdaBoost 随机森林与 进化算法相结合的算法集合

    如果您有世界上未知的原创算法,请至少大致描述一下与现有算法的区别以及与之相比的优势, 最好能提供描述的链接

如您所见,选择范围相当广泛。

对于那些不了解该主题的人来说。"取样"(放大)--一种重新取样的方法, 最初是为了解决科学领域的问题 提出的,在这些领域中,最初用于统计计算的实例(实验结果)数量 很少,要提取新的 实例是 不可能的,或者是非常昂贵的。该方法的本质是从初始的 样本集中随机抽取一个较小的样本。这一过程 会重复多次 ,从而获得足够大的样本总量,然后用于统计计算。

首先。外汇市场并不存在 "数据不足 "的情况。相反,它是一个 "数据丰富 "的市场。

其次。 bousting 和交叉验证在实践中和大学中的长期研究和应用 经验表明,在训练过程中,即通过内部误差选择模型时,使用这些方法是不可取的。但在训练模型的评估阶段,即获取外部误差时,这些方法却非常有用。 因此,对于我们这种 "数据丰富 "的 情况 在训练过程中 分成 训练/验证/测试 是最理想的。在数据选择和预训练过程中,还有许多其他微妙之处需要考虑 ,建模结果在 很大程度上取决于这些 微妙之处, 但这是一个单独的大课题

根据我长期使用 ADA 进行实验的经验 ,我可以说,有时结果很好,有时令人反感 = 非常不稳定。


引用:"该算法不需要降低输入数据的维度,也不需要找出哪些特征具有信息量,哪些没有。相反,可用的输入数据越多,正确分类的概率就越高。无信息的特征会被自动舍弃。

问题--如何 神奇地 剔除无信息特征? 每种决策树算法都包含对 预测因子重要性的 确定(评估) ,但用于确定重要性的标准很多 ,而且并非所有 标准 都能给出明确的结果。 如何在程序中解决这个问题

引用: "该算法不需要任何初步的数据归一化或任何初步处理。所有数据都会自动简化为单位方差和零数学期望"。

真正不需要任何预处理的算法只有RandomForest其他所有算法都需要 各种 预处理。 你的意思显然是说,你的程序会为用户进行标准化处理(x 减去平均值除以标准偏差)? 我不 确定这是否是一个好的解决方案,因为至少有十几种不同的预处理 方法,你必须根据具体情况确定哪一种最好。

引用:"算法与神经网络不同,无需调整训练参数即可获得最佳分类结果"。

不对。任何 已知的 分类算法都至少需要调整两个参数才能获得最佳结果。

引文:"该算法几乎不受过度训练趋势的影响"。

错误说法。任何机器学习算法都有过度学习的倾向。正则化可以降低模型过度训练的风险。如今,各种正则化方法已广为人知并得到成功应用,包括在bousting算法中

引用:"该算法可以将数据分为任意数量的类别"。

这不是该算法的成就如今,几乎所有的机器学习算法都能做到这一点。

引文:"所实施算法的特点是,如果数据中有模式,就会被发现。相反,如果数据中没有规律,那么程序的预测结果就不会比简单的抛硬币好,这是合乎逻辑的"。

我可能会让你大吃一惊,但所有算法都有这个特点

一句话:你花钱买来的难以理解的算法可以 R 语言以各种变体 透明、 简单地 实现 ,注意,它是完全免费的,即免费的。 该程序长 10-15 行。 R 语言的第二个不可否认的优势 是, 它是由世界科学界(实际上是世界上所有的大学)开发和支持的,现在又得到了软件业巨头的支持。微软推出了一项云服务 "Azure " "Microsoft Azure Machine Learning Studio",让您可以在云中完成模型创建、训练和评估的所有阶段,随后通过向服务发送数据来获得模型预测结果。该服务完全基于 R 语言 ,并有一个图形界面,可以将整个过程简化为 "画 "一张图(当然,我是在简化)如果说以前 R 语言是研究领域的事实标准,那么现在它实际上已经成为应用和工业领域的标准。

最后一点。我并不反对将程序中体现的劳动货币化。这很好。我反对你们出于广告目的,将不存在或夸大的品质赋予产品。这看起来很不专业。

小心点。正如经典之作所说

祝你好运


 
vlad1949:


您好

"一般来说,这个领域被称为机器学习,人工智能则有些不同"- 机器学习是人工智能的一个分支。但我相信你已经把它忘了。确实如此...

我听说过新型神经网络:)而且,如果你注意到了,我的程序描述中说的是"经典 神经网络",而不是所有网络。我所说的经典神经网络是指 MLP 及其衍生网络、Hopfield 网络、概率网络和其他网络。

"许多交易员这种不屑一顾的宏大观点从何而来?- 这种超重要的观点来自于这样一个事实,即绝大多数试图使用弱人工智能技术的交易者都使用经典 神经网络。

"顺便说一句,有必要说出你的程序运行的具体算法是什么。"- 单级决策树(树桩)的自适应突变。这里写着呢。因为我是自己从头开始实现的,眼前没有任何榜样,互联网上也没有正常的描述,所以我在开发时应用了一些启发式方法。

"对于那些不了解的人来说。"提升是 由......提出的一种重采样方法 "。- 我不知道你是从哪里抄来的,但我认为这个定义描述的不是提升,而是引导(bootstrap:)提升是对简单分类器的提升。在提升过程中,你不会从一个小样本 m 中得到一个大样本 N。在提升法中,对于每个后续的简单分类器,被前一个分类器误分类的例子都会被优先采样。样本数总是等于原始样本数。在此之后,读到你一本正经的"给那些不在圈子里的人 "就 特别好笑了。xD

"首先。外汇市场并不存在 "数据稀缺 "的情况。相反,它是一个'数据丰富'的案例"- 嗯,这取决于你从哪个角度看问题。如果你指的是外汇报价和一堆散发着旧时代气息的 "伪数学 "指标以及它们的各种衍生品,那么是的,数据并不缺乏。但是,既然你走到了另一个方向,不小心混淆了 "bousting "和 "bootstrap",那么你的格言就不会被理睬,因为我不知道你在等待什么样的答案。

"在实践和大学中研究和应用 bousting 和交叉验证的长期经验表明......"- 真的吗?无聊...

"根据我对 ADA 的长期实验经验 ,我可以说--有时结果很好,有时令人厌恶 = 非常不稳定""- 你的经验对我们来说并不是公理,也许你在那里混淆了一些按钮什么的,就像上面的混乱一样。我不知道。

"你们如何在软件中解决这个问题?- 每个简单分类器都会关注产生最小分类误差的特征。如果特征信息量不大,误差就会很大。这就是它的神奇之处。让我们用一些更科学的废话来挑战这个逻辑,看看大学.....。不,说真的,写点什么吧。

"我不 确定这是不是一个好的解决方案"--你不觉得你有点太绝对了吗?在我看来,软件开发人员似乎更有眼光,知道需要添加什么才能使其达到预期效果。

"不对。任何 已知的 弹跳算法都至少有两个参数需要调整,以获得更好的结果"- 你的 R 中有哪些参数需要调整?我正在做笔记......

"引用:"该算法几乎不受过度训练倾向的影响。 "虚假陈述....""- 我太喜欢你的说法了:)。首先,它说的是 "实际上"。俄语的意思是 "几乎"。但是,如果数据中有一个稳定的模式,比如在汽车牌照识别实验中,那么是的,算法不会被重新训练。在训练样本上,误差为零,而在测试样本上,误差保持不变,约为 1%。问题是什么?

"这不是这种算法的成就。 如今,几乎所有的机器学习算法都能做到这一点"- 你能告诉我这是缺点吗?与二元分类器相比,这是优势。难道你不这么认为吗?

"我可能会让你大吃一惊,但所有算法都有这个特点"- 仔细读一下"如果数据中有模式 它们就会被发现"这是我强调的重点。机器学习算法的主要问题在于能找到多少模式。我的程序对此没有问题。按照你的逻辑,原来有了一些 MLP,人们就不应该开发其他算法,因为多层perseptron 是一种机器学习算法,而你说"所有算法都有这个特点"。

"我提供的 不是算法,而是程序。我并不反对 R 语言。但你应该明白问题的关键:并不是所有人都能理解编程语言的逻辑和语法、理解算法的设置、转换一些文件并通过各种拐杖连接到终端以使用计算结果。如果有人能做到这些,我向他们表示祝贺。有些人只需要 "开箱即用"。你会觉得我是在追着你跑,强迫你买我们的软件。用 R 吧,我保证不会惹我生气。

"我不介意你把辛勤劳动用软件货币化"- 对不起,我忘了征求你的意见。但只要你同意,我也没意见。

"我反对你为了做广告而把不存在的或夸大的品质归结到产品上 " - 我反对你写一些你根本不了解的东西

谢谢我说完了正如经典之作所说。

附注:我只是对侵略性的回应。无意冒犯,和平共处。

附注:是的,你不应该和我争论。)

 
每个 "之 "字形数值都基于未来的货币价格,所以我想结果过于乐观了。
 

Я не понимаю содержание Скрежет обучение режим? В частности, о том, как использовать платформу использовать платформу MT4 MQL предварительной подготовки?

 
能给一个MQL4里使用训练好的模型的例子吗?非常感谢!
 
经过一些小的冒险,我终于在 MacOS Sierra 上运行了最新的 Rattle 4.1.0,但菜单点 R Dataset 不允许选择任何文件,仍然是灰色的。相反,RData 文件可以选择 "TC.RData "作为文件名,然后选择 "TC "作为数据名,然后执行就可以了。
 
我甚至不知道该怎么走
 

伙计们,你们好!你们的精力,在正确的方向上!

恭喜你,你犯了一个战略性错误!

我引用您文章的第一行"最初,建立交易系统的目的是预测某些市场工具的行为,例如货币对"。

我甚至没有进一步阅读这篇文章。最好研究一下所有的预测方法!

我告诉你一个秘密:建立交易系统的目的是 "创建(你的)行为模型"。

市场(领导者)会怎么做并不重要,重要的是你会怎么做:AND、OR、NOT。

例如:AND - 追随领导者(重复领导者的行为)。

 

我试着在 linux(Kubuntu)上安装 rattle,但没有成功,因为代码编译需要大量依赖包。

通过分析安装错误,我得到了以下在 R 中安装 rattle 之前需要在操作系统中安装的软件包列表:

console -
$ sudo apt-get install libxml2-dev unixodbc-dev libssl-dev libgtk2.0-dev

然后在 R 中运行安装 -
> install.packages("rattle", dependencies=TRUE)

如果你还缺少一些 *.h 文件来安装 rattle,你可以像这样找到所需的软件包
$ sudo apt-get install apt-file
$ apt-file update
$ apt-file search /someheaderfile.h

也许这能帮到其他人:)

 

更新操作系统后,rattle 停止工作,调用 rattle() 出现错误
Error in method(obj, ...):Invalid root element:'requires'。

第一个几乎有帮助的方法是运行 rattle,并附加一个参数
rattle(useGtkBuilder = TRUE)
程序窗口打开了,但按钮不起作用,该方法最终也无济于事。


install.packages("rattle", repos="https://rattle.togaware.com", type="source")
之后一切正常。