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

 
elibrarius

向R专家提问。

如何将一个有绝对值 的矩阵转换为一个softmax类的矩阵?

apply(matr, 1, function (rowvec) { result <- rep(0, length(rowvec)); result[which.max(rowvec)] <- 1; result } )

并根据需要进行转置,取决于矩阵的维度

 
马克西姆-德米特里耶夫斯基

啊,好吧,现在还没有图书馆......我不能自己写 )


我想我会写信给他们,请他们借给我一个神经网,如果它能工作,我会用%的比例归还它 :)

顺便说一下,他们有点接近原作,至少他们增加了媒介物,但它仍然不是人工智能,因为据我所知,新的突触不会形成,也不会自行重构。

 
马克西姆-德米特里耶夫斯基

我正在考虑给他们写信,要求借用一个神经网络,如果成功了,我就连本带利地还给他们 :)

我认为,如果简单的MLP在解决方案上没有任何转变,那么复杂的NS也不会有任何转变。此外,即使你用更复杂的NS取代MLP,也远不能肯定结果会有某种程度的改善。因为不同的工具需要不同的处理方式,对问题的表述也不同。

目前,我将坚持使用简单的MLP和古老的、基于BP的学习算法,如果真的有需要,我们再看看。

 
匿名 的。

并根据矩阵的维度进行必要的转置

哇,短多了!谢谢!

我做了一些改变,我通过复制旧的矩阵来创建一个新的矩阵,所以列名和行名仍然保留。这更具有普遍性,以备我需要进一步使用它们。而我立即逆转矩阵。按照我的理解,apply(x,1,f)总是! 翻转矩阵,因为它逐行处理数据并将其合并成列。

get_softmax <- function(m){
    t(apply(m, 1, function (row) {r <- row;  r [1:length(row)] <-0 ; r[which.max(row)] <- 1;  r } ))
}

 
尤里-阿索连科

我认为,如果简单的MLP在解决方案上没有转变,那么复杂的NS也不会有转变。此外,即使你用更复杂的NS取代MLP,也远不能肯定结果会有某种程度的改善。因为不同的工具需要不同的处理方式,对问题的表述也不同。

目前,我将坚持使用简单的MLP和古老的、BP的训练算法,如果真的有需要,我们再看看。


我只是喜欢一切都算得很快的时候,你可以尝试很多策略。

如果我有一个更有效的模拟方法,我会改用它......但现在是90%的数据挖掘和10%的模型选择。

 
马克西姆-德米特里耶夫斯基

我只是喜欢一切都算得很快的时候,你可以通过很多策略。

如果我有一个更有成效的模拟方法,我会改用它......到目前为止,90%的时间都是在做数据分析和10%的模型选择。

至于性能,一个经过训练的6层MLP(约60个神经元)的响应时间为0.005s。这对几乎所有的东西来说都是相当足够的。

至于学习时间很长,这根本不是一个问题,因为光是思考每一个下一个实验就需要更长的时间--一个星期,甚至更久。

好吧,每几个月重新培训一次,比如说我们花几天时间--我不认为这是一个问题。在逻辑上重做系统需要更长的时间。是的,仅仅是标准的训练是行不通的--你需要在各纪元之间进行漫长的手鼓舞。虽然标准训练(没有跳舞))给出了很好的结果,但只是在训练样本上的结果)。

 

R的另一个问题。

在一台电脑上可以,在另一台电脑上,对代码的正确性有一些增加的要求。

比如说

darch.unitFunction = linearUnit - 导致Rterm.exe崩溃

改为

darch.unitFunction ="linearUnit"

这一点在下一个错误发生之前就已经开始了。

还不得不把library(darch)改为require(darch)。

现在是学习本身让人感到无奈。

R_NN <- darch(
darch = NULL。
x = MatrixLearnX ,
y = MatrixLearnY ,
paramsList = params
)

我试过很多变种, Rterm.exe 总是 崩溃

R是否有某种错误等级控制?也许在第二台电脑上,我得到了一个错误级别的工作,当停止在每个警告?

在两台电脑上,我都用默认设置安装了R,我安装了所有的软件包。
我怎样才能解决这个问题呢?

 

如果没有安装darch库,library(darch)将导致错误,代码执行将停止,而require(darch)只是翘起,代码将继续工作,但由于该库没有安装,其函数不能被调用。

下一步是运行
install.packages("darch", dependencies=TRUE)来自动安装库。

 
尤里-阿索连科

至于性能,一个经过训练的6层MLP(约60个神经元)的响应时间为0.005s。它几乎足以应付一切。

至于学习时间很长,这一点也不麻烦,因为光是思考每个下一个实验就需要更长的时间--一个星期,甚至更久。

好吧,每几个月重新培训一次,比如说我们花几天时间--我不认为这是一个问题。在逻辑上重做系统需要更长的时间。是的,仅仅是标准的训练是行不通的--你需要在各纪元之间进行漫长的手鼓舞。而标准训练(没有跳舞))给出了很好的结果--但只是在训练样本上)。


我做得有点不对--我积极使用优化器正是为了寻找策略,即尝试筹码、TS块的组合、其他东西......因为有时我甚至没有考虑到一些琐事,这正是我在系统中遗漏的东西。而要通过即使是一百个选项也需要相当快的学习速度(而一百个选项是非常小的)......好吧,每个人都有他自己的方法,我并不是说我的方法更好。当然,你可以说NS本身就是一个优化器,但总是有一些超参数,可以在初始阶段进行选择

 
马克西姆-德米特里耶夫斯基

我积极使用优化器搜索策略,即通过筹码、TS块的组合、其他东西来搜索......因为有时甚至有一些小东西我没有考虑到,而它在系统中是缺失的。而要通过即使是一百个选项也需要相当快的学习速度(而一百个选项是非常小的)......好吧,每个人都有他自己的方法,我并不是说我的方法更好。当然,你可以说NS本身就是一个优化器,但总有一些超参数可以在初始阶段被你选中。

因此,你很快就得有一个采矿场来制定采矿战略。