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

 
mytarmailS:

你正在做的事情(在 "第三个 "样本上测试)在GMDH 术语中被称为 "预测能力标准"。

我看得出,你是个好专家。你能用几个短语来说明GMDH的本质吗,对非数学家来说?

 
秘密

我看得出来,你是个好专家。你能用几个短语来概括MGUA吗,对非数学工作者来说?

回归模型,列举了由不同内核(多项式、样条式等)转换的特征。误差最小的最简单模型是首选。它并不能挽救市场上的过度训练。

大致说来,这是一个粗暴的模型,根据外部标准选择最简单的模型

这就像机器学习的基础知识 )

 
mytarmailS:

例如,MSUA的回归只是简单地模拟了现代随机森林算法的回归和提升...

提升在任何事情上都是更好的,如果你像为MSUA准备功能,它将会更好。

但如果你不知道该怎么教,你也不会在意的

 
秘密

我看得出来,你是个好专家。你能用几个短语来说明MSUA的精髓吗,对于非数学家来说?

我根本不是专家 )) 不幸的是....

如果非常简单、粗略和不精确地说,MGUA的原则就是自组织......


例如,我们有一组属性

x1,x2,x3.....x20...

从这些属性中,我们创建了一个候选模型集

m1,m2,m3.....m10...

从这些模型中选出最佳模型,并从最佳模型中创建新的模型,再次进行选择....。等...以此类推,直到新数据的误差(之前算法不知道)被减少

你看,算法会改变自己,变得更加复杂,并自我组织...有点像遗传算法

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

一个回归模型,列举了由不同内核(多项式、样条式等)转化的特征。误差最小的最简单模型是首选。它并不能挽救市场上的过度训练。

粗略地说,这是一种粗暴的模型,根据外部标准,选择最简单的模型

那么我认为这种方法论没有任何新的和原创性。

 
mytarmailS:

从这些模型中选出最佳模型,并利用最佳模型创建新的模型,再次选择....。等...以此类推,直到新数据的误差(之前算法不知道)减少

你看,算法会改变自己,变得更加复杂,并自我组织...这有点像遗传算法

那么我在这里没有看到数学,更多的是脑力劳动,嗯,还有编码。GA是一件微不足道的事情。

如果里面是一些原始的、从幼儿园开始就能直观理解的东西,那么为什么都拿着这个MGUA到处跑,写论文,以至于无法理解它们呢?

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

促进会在任何方面都更好,如果你像为MGUA准备功能,它将会更好。

但如果你不知道要教什么,那也没有关系

我不同意...

让我们做一个快速测试,通过眼睛 )


创建四个变量(常规随机),每个变量有1000个元素

z1 <- rnorm(1000)

z2 <- rnorm(1000)

z3 <- rnorm(1000)

z4 <- rnorm(1000)

创建一个目标变量y,作为所有四个变量的总和。

y <- z1+z2+z3+z4


让我们来训练提升和Mgua,甚至不是为了预测,只是为了强迫解释Y

我把样本分成三块,一块训练两块测试


绿色的 MGUA

红色:广义 提升 回归模型(GBM)。

灰色是原始数据

记住,目标是所有预测因素的基本和

http://prntscr.com/rawx14

正如我们所看到的,这两种算法都很好地应对了任务。


现在让任务变得更复杂一点

为数据添加累积和或趋势

z1 <-cumsum(rnorm(1000))

z2 <-cumsum(rnorm(1000))

z3 <- rnorm(1000)

z4 <- rnorm(1000)

并将目标改为以下形式

y <- z1+z2+z3

所以我们把两个有趋势的预测因子和一个普通的预测因子加起来,Z4变成了一个噪音,因为它没有参与目标Y 的研究。

于是我们得到以下结果

http://prntscr.com/rax81b

我们的提升都是一团糟,而MSUA并不重要。


我只用这个野生目标成功地 "杀死 "了MSUA

y <- ((z1*z2)/3)+((z3*2)/z4)

甚至这还不完全是这样,那么提升的情况呢?)))

http://prntscr.com/raxdnz


游戏的代码

set.seed(123)
z1 <- cumsum(rnorm(1000))
z2 <- cumsum(rnorm(1000))
z3 <- rnorm(1000)
z4 <- rnorm(1000)

y <- ((z1*z2)/3)+((z3*2)/z4)

x <- cbind.data.frame(z1,z2,z3,z4) ; colnames(x) <- paste0("z",1:ncol(x))

tr <- 1:500
ts <- 501:800
ts2<- 801:1000

library(gbm)
rf <- gbm(y[tr] ~ ., data = x[tr,],
          distribution = "gaussian", n.trees = 1000,
           cv.folds = 5)
best.iter.max <- gbm.perf(rf, method = "cv")
prg <- predict(rf,x[c(tr,ts,ts2),],n.trees = best.iter.max)

library(GMDHreg)
gmd <- gmdh.gia(X = as.matrix(x[tr,]),y = y[tr],prune = 5,
                    criteria = "PRESS")
prh <- predict(gmd,as.matrix(x[c(tr,ts,ts2),]))

par(mfrow=c(1,3))
plot(head(y[tr],30),t="l",col=8,lwd=10,main = "train ")
lines(head(prg[tr],30),col=2,lwd=2)
lines(head(prh[tr],30),col=3,lwd=2)
plot(head(y[ts],30),t="l",col=8,lwd=10,main = "test ")
lines(head(prg[ts],30),col=2,lwd=2)
lines(head(prh[ts],30),col=3,lwd=2)
plot(head(y[ts2],30),t="l",col=8,lwd=10,main = "test2 ")
lines(head(prg[ts2],30),col=2,lwd=2)
lines(head(prh[ts2],30),col=3,lwd=2)


Скриншот
Скриншот
  • prnt.sc
Снято с помощью Lightshot
 
秘密

那么我不认为这里有数学,它更多的是脑力劳动,嗯,还有编码。GA是一件微不足道的事情。

那为什么每个人都带着这个MSUA跑来跑去,写论文,以至于无法理解他们,如果里面是一些原始的,从幼儿园开始就能直观理解的东西?

我不知道,但它对数据的描述要好得多,帖子写了,代码贴了

 
mytarmailS:

我不同意...

让我们做一个小测试,快速,通过眼睛 )

我不想乱用R(我用python),也许原因是MSUA创造了fey regressors,因为它适合。如果我们对提升做同样的选择,就不会有任何区别。

这里有一个森林的MSUA枚举表。

https://www.mql5.com/ru/code/22915

RL algorithms
RL algorithms
  • www.mql5.com
Данная библиотека имеет расширенный функционал, позволяющий создавать неограниченное количество "Агентов". Использование библиотеки: Пример заполнения входных значений нормированными ценами закрытия: Обучение происходит в тестере...
 
马克西姆-德米特里耶夫斯基

我不想乱用R(我用python),也许原因是MSUA创造了fey regressors,这使它适合。如果你做同样的选择来提升,就不会有任何区别。

这里有一个森林的MSUA枚举表。

https://www.mql5.com/ru/code/22915

首先,还有什么费力的回归者? 什么乱七八糟的东西,为什么MSUA变硬后也会熄灭?

第二,我在例子中给出的数据对MSUA和升压都是一样的。

第三,你不需要做什么,你不能用python做一个有四个随机值的矩阵,然后把它们累积起来吗?要自己检查升压情况?

2行代码 )))


我自己也很好奇这里面有什么。