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

 
尤里,我能够训练一个vmr模型,但我不能在上面预测新的数据,你能告诉我哪里出了问题吗?我选择加载模型菜单,从附件中选择train.vmr文件,然后点击使用模型。我在日志中看到 "输入数据并按 "确定 "的文字。但就是这样,无论我输入什么数据,我仍然看到一个灰色的不活动的 "OK "按钮,无法得到答案。train.csv和test.csv文件也在atache中,它们是你之前发布的文件。
附加的文件:
train.zip  38 kb
 
Dr.Trader:
尤里,我能够训练一个vmr模型,但我不能在上面预测新的数据,请你告诉我哪里出了问题?我选择加载模型菜单,从附件中选择train.vmr文件,然后点击使用模型。我在日志中看到 "输入数据并按 "确定 "的文字。但就是这样,无论我输入什么数据,我仍然看到一个灰色的不活动的 "OK "按钮,无法得到答案。Train.csv和test.csv文件也在atache中,这些是你之前发布的文件。

一定是输入了非数字的东西?这将触发一个异常处理程序,并停用OK按钮。在这种情况下,你需要重新启动jPrediction。

我将在不久的将来研究这个问题,至少在用户输入非数字数据时给出某种警告信息。

P/S 我已经修复了它。

例如,让我们输入符号 "z "而不是数字。这将导致一个错误信息

现在要激活OK键,选择菜单项 "文件">"使用模型"。


将更正后的版本上传到我的网站

 

我想明白了,错误是在错误的数据格式中。我按照你在pdf中的格式化了数据--增加了第二行的解释,第一列的指数,并删除了预测器中的列名。一切正常。在这两种情况下,模型都是在原始数据和格式化数据上训练的。但是,只有当特殊格式的数据被送入训练时,预测才能发挥作用。

但不幸的是,你的模型在你自己的数据上没有通过测试。你之前发布了train.csv和test.csv文件,你有良好的预测性能。我检查了一下,预测的误差是50%,根本没有好的表现。

测试的步骤。

1) 如上所述格式化train.csv文件。然后将文件一分为二 - train_part1.csv 和 train_part2.csv。第二个文件包含train.csv的最后20行。第一个文件 包含除最后20行以外的所有其他内容,因此两个文件中的数据不会重叠。

2) 在train_part1.csv上训练模型,进入预测模式。从train_part2.csv中交替输入行,进行预测。我在20次中只得到了9次正确的答案,没有奇迹。

我不明白,如果你的模型自己把原始训练文件分成两部分进行训练和验证,然后做一个样本外测试,最后的预测准确率为100,为什么?如果你用物理方法分割训练文件,并手动进行样本外测试,那么预测结果就不会比掷硬币好?如果我从训练样本中输入任何样本进行预测,那么预测工作就会正确,也就是说,预测功能似乎是可以的。这都是非常糟糕和错误的,你的代码中存在一些严重的错误。

附加的文件:
vmr_test.zip  44 kb
 
桑桑尼茨-弗门科

只有对R非常肤浅的熟悉,才能谈及 "唠叨"。

当然,我们放上R,看到的是一个字符串解释器。如果你深入了解,你可以看到字节码,但它并没有解决解释器在效率方面的任何问题。甚至没有什么可讨论的--唠叨。

但如果你深入研究一下R包,你很快就会发现,你在R代码中看到的是指其他代码。而如果你开始调查,你会发现,对于计算密集型的算法,R总是使用第三方软件包,这些软件包的选择是以最大效率为原则。这些通常是C或Fortran库。

或者,比如说,矩阵运算。考虑到R没有标量的概念,一切都从向量开始,矩阵运算对R来说是完全自然的,使用一个合适的、不是用R写的库是一个原则问题。使用了英特尔数学内核 库。

除此之外,不仅对自己的计算机的所有核心进行并行计算,而且对相邻的计算机进行并行计算,这在R中是一种常见的操作。

因此,什么是 "唠叨",什么不是,这是一个大问题。

PS。

你不必将任何东西移植到R,你只需学习数学。R拥有你所需要的一切,而且远远不止这些。

我同意SanSanych的观点。你的任何想法所需要的一切都已经在R/中存在。

雷舍托夫的傲慢言论并不令人惊讶。这就是这样一种世界观。

没有必要改变你的想法。这毫无意义。

 
Dr.Trader:

我不明白,如果你的模型本身将原始训练文件分成两部分进行训练和验证,然后做一个样本外测试,最后的预测准确率为100,为什么?如果你用物理方法分割训练文件,并手动进行样本外测试,那么预测结果就不会比掷硬币好?如果我从训练样本中输入任何样本进行预测,那么预测工作就会正确,也就是说,预测功能似乎是可以的。这都是非常糟糕和错误的,你的代码中存在一些严重的错误。

你是对的,代码中存在一个错误。我会纠正它。
 
弗拉基米尔-佩雷文科

我支持桑桑尼茨。你的任何想法所需要的一切都已经在R/。

如果可以的话,我想在这里争论一下,唠叨是指速度方面,我绝对同意尤里的观点......

对于几乎所有的问题,你都可以在R中找到现成的解决方案,但有时你会被速度所困扰

我记得,我正在通过相关函数对许多参数进行非常艰难的搜索,起初我使用了内置的R函数(顺便说一下,它是用C++编写的),但由于它被不同的方法所重载,我的一轮计算大约需要3.9分钟或230秒,这个时间是不能接受的,第二步是在R中编写我自己的函数,没有其他的东西,我的函数在30秒内工作,但它不能满足我,因为R是我第一个也是唯一的语言,我要求我的朋友为我编写一个函数corr所以我们来比较一下

R中默认的相关系数是230秒。

自写的R相关函数 - 30秒。

用C++编写的函数 - 0,33 sec

所以,是的,Yuri是对的,在他的意思中,R是一个杯子,但这个问题可以解决,至于方便和写代码的速度,我认为R离所有的语言都很远,因为我不需要写任何东西,所有东西都是现成的,这就是为什么我喜欢R ...

 
mytarmailS:

我在这里争论一下,如果可以的话,唠叨是指速度方面的,我绝对同意尤里的观点......

你很可能找到一个现成的解决方案来解决几乎任何问题,但有时你会被速度所困。

我记得,我正在通过相关函数对许多参数进行非常艰难的搜索,起初我使用了内置的R函数(顺便说一下,它是用C++编写的),但由于它被不同的方法所重载,我的一轮计算大约需要3.9分钟或230秒,这个时间是不能接受的,第二步是在R中编写我自己的函数,没有其他的东西,我的函数在30秒内工作,但它不能满足我,因为R是我第一个也是唯一的语言,我要求我的朋友为我编写一个函数corr所以我们来比较一下

R中默认的相关系数是230秒。

自写的R相关函数 - 30秒。

用C++编写的函数 - 0,33 sec

所以,是的,Yuri是对的,R在他的意思中是一个唠叨,但这个问题已经解决了,至于编码的便利性和速度,我认为R离所有的语言都很远,因为我几乎不用写任何东西,所有东西都是现成的,这就是为什么我喜欢R ...

那么这与R有什么关系呢?

再一次,R拥有你实现你的想法所需的一切,包括速度。

另一件事是,并不是每个人和所有东西都知道如何使用它们。

但这并不是语言的问题。

顺便说一下,Srr中的内联函数的方便性和简单性是惊人的。

祝好运

 
mytarmailS:

我在这里争论一下,如果可以的话,唠叨是指速度方面的,我绝对同意尤里的观点......

你有可能为R的几乎任何问题找到现成的解决方案,但有时你会被速度所困。

我记得,我正在通过相关函数对许多参数进行非常艰难的搜索,起初我使用了内置的R函数(顺便说一下,它是用C++编写的),但由于它被不同的方法所重载,我的一轮计算大约需要3.9分钟或230秒,这个时间是不能接受的,第二步是在R中编写我自己的函数,没有其他的东西,我的函数在30秒内工作,但它不能满足我,因为R是我第一个也是唯一的语言,我要求我的朋友为我编写一个函数corr所以我们来比较一下

R中默认的相关函数是230秒。

自写的R相关函数 - 30秒。

用C++编写的函数 - 0,33 sec

所以是的,Yuri是对的,R在他所指的背景下是个杯具,但这个问题已经解决了,至于编码的便利性和速度,我认为R离所有的语言都很远,因为我几乎不用写任何东西,所有东西都是现成的,这就是为什么我喜欢R ...

我们不要用一个特定的例子来代替一般的问题。

如果我们笼统地谈论R编程系统中代码的效率,我写过关于效率的基本知识。与大多数编程系统相比,R中的计算密集型算法是间接使用的,在一般的编程中,在一些内容函数内最有效地使用,尽管有可能直接使用它们,例如优化或GA。

这种效率最明显的例子是矩阵运算,它属于计算容量最大的运算。程序员可能根本没有意识到正在使用的库,因为矩阵操作只是一行简单的代码。

此外,我在关于效率的帖子中没有写到的是你写的内容。它是写一段snr代码的能力,强调R的结构是这样的:这种插入将是对主代码的有机补充。而你举的例子是非常典型的R的例子。

 
好吧,我建议关闭效率R的话题,因为我们已经开始重复显而易见的事情了,其含义是 "石油,天是蓝的,草是绿的"。
 

你好!

我发现了一个带有递归神经网络的软件包https://cran.r-project.org/web/packages/rnn/rnn.pdf, 在我的数据上检查它是很有趣的(也许其他人会感兴趣;) )但是我遇到了一些我还没有遇到过的事情,因为递归网络,数据是以一种特殊的方式以三维阵列的形式输入的,尽管有一个例子,我还是不能理解它是如何工作的。

如果我没有2个预测器,而是100个,代码应该如何在 "X "变量中显示,这里有一个例子。

#  create training numbers
X1 = sample(0:127, 7000, replace=TRUE)
X2 = sample(0:127, 7000, replace=TRUE)
#  create training response numbers
Y <- X1 + X2
#  convert to binary
X1 <- int2bin(X1)
X2 <- int2bin(X2)
Y <- int2bin(Y)
#  Create 3 d array: dim 1: samples; dim 2: time; dim 3: variables.
X <- array( c(X1,X2), dim=c(dim(X1),2) )