Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 1605

 
mytarmailS:

Например регрессия МГУА просто глумиться над регресией современного алгоритма random forest и бустингов там всяких..

бустинг лучше во всем, если фичи подготовить как для МГУА, будет лучше

а так вообще поф, если не знаешь чему обучать

 
secret:

Я вижу, вы хороший специалист. Не могли бы вы изложить суть МГУА в нескольких фразах, для нематематиков?

Я вообще не специалист )) к сожалению....

Если очень просто, грубо и неточно, то принцип МГУА в самоорганизации... 


Например есть у нас набор признаков

х1,х2,х3.....х20...

из этих признаков создается набор моделей претендентов 

м1,м2,м3.....м10...

из этих моделей отбираются лучшие , и уже из лучших  создаются новые модели, опять отбор.... итд... и так до тех пор пока уменьшается ошибка на новых данных (ранее неизвестных алгоритму)  

Те алгоритм сам себя изменяет, усложняет, самоорганизуеться... Чем то похоже на генетический алгоритм

 
Maxim Dmitrievsky:

регрессионная модель с перебором признаков, преобразованных разными ядрами (полиномиальным, сплайнами, не важно). Предпочтение отдается самой простой модели с наименьшей ошибкой. От переобучения на рынке не спасает.

грубо говоря, это брутфорс моделей, где выбирается самая простая, по внешним критериям

Тогда я не вижу в этой методике ничего нового и оригинального.

 
mytarmailS:

из этих моделей отбираются лучшие , и уже из лучших  создаются новые модели, опять отбор.... итд... и так до тех пор пока уменьшается ошибка на новых данных (ранее неизвестных алгоритму)  

Те алгоритм сам себя изменяет, усложняет, самоорганизуеться... Чем то похоже на генетический алгоритм

Тогда я не вижу здесь математики, это больше работа мозга, ну и кодинг. ГА тривиальная вещь же.

Чего тогда все носятся с этим МГУА, пишут диссертации, так что понять их невозможно, если внутри это какой-то примитив, интуитивно понятный еще с детского сада?

 
Maxim Dmitrievsky:

бустинг лучше во всем, если фичи подготовить как для МГУА, будет лучше

а так вообще поф, если не знаешь чему обучать

Не согласен...

Сделаем небольшой тест, быстрый, на глазок )


создадим  четыре переменные (обычный рандом) по 1000 элементов

z1 <- rnorm(1000)

z2 <- rnorm(1000)

z3 <- rnorm(1000)

z4 <- rnorm(1000)

создадим целевую переменную у  в виде суммы всех четырех

y <- z1+z2+z3+z4


обучим бустинг и мгуа, при чем обучим даже не на предсказание , а просто заставим объяснить  у

я разбил выборку та три куска , на одном обучение два для теста


зеленым цветом МГУА

красным цветом бустинг  (  Generalized Boosted Regression Modeling (GBM)   )

серым цветом оригинальные данные

напомню, целевая это элементарная сумма всех предикторов 

http://prntscr.com/rawx14

как видим оба алгоритма отлично справились с задачей


теперь немного усложним задачу

добавим в данные кумулятивную сумму или тренд

z1 <- cumsum(rnorm(1000))

z2 <- cumsum(rnorm(1000))

z3 <- rnorm(1000)

z4 <- rnorm(1000)

а также изменим целевую в вид

y <- z1+z2+z3

те выходит мы складываем два предиктора с трендом и один обычный , а  z4 у нас получается шум потому что вообще не участвует в целевой у

и получаем такой результат

http://prntscr.com/rax81b

бустинг наш посыпался нафиг, а МГУА все не почем


Мне удалось "убить" МГУА только такой дикой целевой

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
 
secret:

Тогда я не вижу здесь математики, это больше работа мозга, ну и кодинг. ГА тривиальная вещь же.

Чего тогда все носятся с этим МГУА, пишут диссертации, так что понять их невозможно, если внутри это какой-то примитив, интуитивно понятный еще с детского сада?

Не знаю, но описывает данные намного лучше, пост написал, код выложил

 
mytarmailS:

Не согласен...

Сделаем небольшой тест, быстрый, на глазок )

на R нет желания ковыряться (юзаю питон), возможно, причина в том, что МГУА создает фейовые регрессоры, из-за этого подгоняет. Если сделать такой же подбор для бустинга, то отличий не будет

вот делал перебор по МГУА для леса

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

RL algorithms
RL algorithms
  • www.mql5.com
Данная библиотека имеет расширенный функционал, позволяющий создавать неограниченное количество "Агентов". Использование библиотеки: Пример заполнения входных значений нормированными ценами закрытия: Обучение происходит в тестере...
 
Maxim Dmitrievsky:

на R нет желания ковыряться (юзаю питон), возможно, причина в том, что МГУА создает фейовые регрессоры, из-за этого подгоняет. Если сделать такой же подбор для бустинга, то отличий не будет

вот делал перебор по МГУА для леса

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

в первых какие еще фейловые регрессоры??  шо за чушь , почему тогда при усложнении задачи МГУА тоже тухнет ??

в вторых у меня в примере одинаковые данные что для МГУА что для буста

в третьих , не надо тебе нигде ковыряться, ты что не можешь сделать в питоне матрицу с четырьмя рандомными значениями  и потом сделать их кумулятивную сумму? Чтобы проверить буст у себя?

2 строчки кода ))


Мне самому интересно что там за фигня

 
mytarmailS:

в первых какие еще фейловые регрессоры??  шо за чушь , почему тогда при усложнении задачи МГУА тоже тухнет ??

в вторых у меня в примере одинаковые данные что для МГУА что для буста

в третьих , не надо тебе нигде ковыряться, ты что не можешь сделать в питоне матрицу с четырьмя рандомными значениями  и потом сделать их кумулятивную сумму? Чтобы проверить буст у себя?

2 строчки кода ))


Мне самому интересно что там за фигня

мгуа создает фейковые переменные из исходных, (в зависимости от используемого ядра) еще раз повторяю

 
Maxim Dmitrievsky:

мгуа создает фейковые переменные, (в зависимости от используемого ядра) еще раз повторяю

Да забудь ты за МГУА, я тебе говорю  - создай у себя подобный дата сет как у меня и прогони свой бустинг по нему и посмотрим что получиться, БЕЗ МГУА, только форест или что там у тебя любимое. Или скинуть тебе текстовик именно моими данными ?

Причина обращения: