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

 

Поначалу, когда им предлагали свои пронозы всего пара сотен людей - всё было норм, я даже выплаты за места получал. Тут на форуме ещё как минимум двое человек тоже отличные результаты показывали с призами. 

Админам нумераи было довольно просто выбрать лучшие результаты и торговать по ним. Потом участников стало тысячи, начали слать им всяких хлам а не модели, появились всякие читеры с сотнями аккаунтов которые тупо брутфорсили прогноз. Админам весь этот цирк надоел, сделали очень просто - "хочешь денежный приз - оставь залог". Если модель фуфло то и залог пропадёт, и прибыли не будет. 
По-моему админы пошли самой простой для них тропой. Сами не научились определять потенциально хорошие модели, или даже подготавливать фичи, и превратили всё в лотерею. Яб на их месте сделал всё по-другому.

 
Dr. Trader:

Поначалу, когда им предлагали свои пронозы всего пара сотен людей - всё было норм, я даже выплаты за места получал. Тут на форуме ещё как минимум двое человек тоже отличные результаты показывали с призами. 

Админам нумераи было довольно просто выбрать лучшие результаты и торговать по ним. Потом участников стало тысячи, начали слать им всяких хлам а не модели, появились всякие читеры с сотнями аккаунтов которые тупо брутфорсили прогноз. Админам весь этот цирк надоел, сделали очень просто - "хочешь денежный приз - оставь залог". Если модель фуфло то и залог пропадёт, и прибыли не будет. 
По-моему админы пошли самой простой для них тропой. Сами не научились определять потенциально хорошие модели, или даже подготавливать фичи, и превратили всё в лотерею. Яб на их месте сделал всё по-другому.

Может Вы и правы, но сейчас ИМХО как то оно всё слишком произвольно, меняются логлосы как то странно, то были больше половины ниже(лучше) рандома(0.96315) на лайфе, сейчас вдруг почти все стали ваше(хуже) рандома... короче произвол ИМХО, я им не доверяю, чтобы "рисковать" когда нельзя ничего проверить, да и сама затея глупая, сама по себе классификация - вообще не предмет челенжа, нет никакого смысла её делегировать, другое дело фичи и целевые конструировать из сырых данных...

 

Не дам этой ветке выпасть из Top-уровня.

Господа нейросетевики - простой люд ждет от Вас Грааль. Не погубите.

 

Поэкспериментировал с randomUniformForest - не понравился.

Важность предикторов постоянно прыгает по списку.

Вот воспроизводимый пример на данных из статьи https://www.mql5.com/ru/articles/4227 :
Запускаем RStudio, загружаем из GitHub/Part_I файл Cotir.RData, с котировками, полученными из терминала, и файл FunPrepareData.R с функциями подготовки данных из GitHub/Part_IV.
Потом:

evalq({
  dt <- PrepareData(Data, Open, High, Low, Close, Volume)
}, env)

 prep <- caret::preProcess(x = env$dt[, -c(1,ncol(env$dt))], method = c("spatialSign"))
 x.train <- predict(prep, env$dt[, -c(1,ncol(env$dt))])#удалить время и класс
 x.train <- as.matrix(x.train,ncol=(ncol(env$dt)-1))
 
 y.train <- as.matrix(env$dt[, ncol(env$dt)],ncol=1)
 require(randomUniformForest)

ruf <- randomUniformForest( X = x.train,Y = y.train,mtry = 1, ntree = 300,threads = 2, nodesize = 2,  regression = FALSE)
ruf$forest$variableImportance

ruf <- randomUniformForest( X = x.train,Y = y.train,mtry = 1, ntree = 300,threads = 2, nodesize = 2,  regression = FALSE)
ruf$forest$variableImportance

ruf <- randomUniformForest( X = x.train,Y = y.train,mtry = 1, ntree = 300,threads = 2, nodesize = 2,  regression = FALSE)
ruf$forest$variableImportance

ruf <- randomUniformForest( X = x.train,Y = y.train,mtry = 1, ntree = 300,threads = 2, nodesize = 2,  regression = FALSE)
ruf$forest$variableImportance

Тут 4 раза происходит расчет глобальной важности предикторов на одних и тех же данных. Результат - почти рандомный:

----------------------------------------------------------------------------------------------
1       ftlm  9204     2            0.52  100.00                  8
2       rbci  9197     2            0.52   99.92                  8
3       stlm  9150     2            0.52   99.41                  8
4     v.fatl  9147     2            0.51   99.38                  8
5     v.rftl  9122     2            0.52   99.11                  8
6     v.satl  9110     2            0.51   98.98                  8
7     v.stlm  9096     2            0.51   98.82                  8
8     v.rbci  9084     2            0.51   98.69                  8
9       pcci  9082     2            0.52   98.68                  8
10    v.rstl  9049     2            0.52   98.31                  8
11    v.pcci  8980     2            0.51   97.57                  8
12    v.ftlm  8953     2            0.52   97.28                  8
----------------------------------------------------------------------------------------------

1     v.fatl  9130     2            0.51  100.00                  8
2       ftlm  9079     2            0.52   99.45                  8
3     v.rbci  9071     2            0.52   99.35                  8
4     v.rftl  9066     2            0.52   99.30                  8
5       stlm  9058     2            0.51   99.21                  8
6     v.satl  9033     2            0.51   98.94                  8
7       pcci  9033     2            0.51   98.94                  8
8     v.stlm  9019     2            0.51   98.78                  8
9     v.rstl  8977     2            0.51   98.33                  8
10      rbci  8915     2            0.52   97.64                  8
11    v.pcci  8898     2            0.51   97.46                  8
12    v.ftlm  8860     2            0.51   97.04                  8
----------------------------------------------------------------------------------------------

1     v.fatl  9287     2            0.51  100.00                  9
2       stlm  9191     2            0.52   98.96                  8
3     v.rbci  9172     2            0.52   98.76                  8
4     v.rftl  9134     2            0.51   98.35                  8
5     v.satl  9115     2            0.51   98.14                  8
6       ftlm  9109     2            0.51   98.08                  8
7     v.stlm  9072     2            0.51   97.69                  8
8     v.rstl  9072     2            0.51   97.68                  8
9     v.ftlm  9036     2            0.51   97.30                  8
10      pcci  9014     2            0.52   97.05                  8
11      rbci  9002     2            0.52   96.93                  8
12    v.pcci  8914     2            0.51   95.98                  8
----------------------------------------------------------------------------------------------

1     v.satl  9413     2            0.51  100.00                  8
2       ftlm  9389     2            0.52   99.75                  8
3     v.stlm  9371     2            0.51   99.55                  8
4     v.rftl  9370     2            0.51   99.54                  8
5     v.rbci  9337     2            0.51   99.19                  8
6     v.pcci  9314     2            0.51   98.95                  8
7     v.fatl  9311     2            0.52   98.91                  8
8       stlm  9295     2            0.52   98.75                  8
9       pcci  9281     2            0.51   98.60                  8
10    v.rstl  9261     2            0.51   98.39                  8
11    v.ftlm  9257     2            0.51   98.35                  8
12      rbci  9238     2            0.52   98.14                  8

У 2-х других проверенных пакетов, важность предикторов определяется одинаково при презапусках.

Глубокие нейросети (Часть VI). Ансамбль нейросетевых классификаторов: bagging
Глубокие нейросети (Часть VI). Ансамбль нейросетевых классификаторов: bagging
  • 2018.03.01
  • Vladimir Perervenko
  • www.mql5.com
В предыдущей статье этой серии мы оптимизировали гиперпараметры модели DNN, обучили ее несколькими вариантами и протестировали. Качество полученной модели оказалось довольно высоким. Также мы обсудили возможности того, как можно улучшить качество классификации. Одна из них — использовать ансамбль нейросетей. Этот вариант усиления мы и...
 
elibrarius:

Поэкспериментировал с randomUniformForest - не понравился.

Важность предикторов постоянно прыгает по списку.

Не вижу seed.

Но дело не в этом, а дело вот в каком принципе.

Важность предикторов, которая определяется в этой модели и в других моделях - это некоторая характеристика использования конкретного предиктора в конкретной модели.

А можно ставить проблему как важность предиктора для целевой переменной, а не в конкретной модели.

Вот функции из caret именно такие. С их помощью можно сформировать некий общий набор предикторов, которые "полезны" для целевой переменной. При этом есть один очень интересный нюанс: что если двигать окно и в уже отобранных предикторах делать повторный отбор, например связанный с конкретным алгоритмом, то этот набор будет постоянно меняться.

Если говорить в целом, то необходим ответ на вопрос: для чего Вам нужна важность предиктора? Для отбора в конкретном алгоритме? Так алгоритм уже высказал свое мнение по этому поводу и Вас проинформировал об этом. поэтому показанные Вами цифры они вообще ни о чем, меняются они или нет - не имеет значения. Значение имеет предсказание по модели вне выборки обучения  и связь перечня предикторов с успехом предсказания ВНЕ выборки

 
elibrarius:

Поэкспериментировал с randomUniformForest - не понравился.

Попробуйте загрузить свои предикторы сюда

https://www.mql5.com/ru/articles/3856

а затем посмотреть их импортанс на уже сформированной автоматически матрице, после обучения Агента

у меня на моих пока +- результаты на ООС, но есть еще куда улучшать

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

Random Decision Forest в обучении с подкреплением
Random Decision Forest в обучении с подкреплением
  • 2018.04.12
  • Maxim Dmitrievsky
  • www.mql5.com
Random Forest (RF) с применением бэггинга — один из самых сильных методов машинного обучения, который немного уступает градиентному бустингу.  Случайный лес состоит из комитета деревьев решений (которые также называются деревьями классификации или регрессионными деревьями "CART" и решают одноименные задачи). Они применяются в статистике...
 
СанСаныч Фоменко:

Не вижу seed.

Но дело не в этом, а дело вот в каком принципе.

Важность предикторов, которая определяется в этой модели и в других моделях - это некоторая характеристика использования конкретного предиктора в конкретной модели.

А можно ставить проблему как важность предиктора для целевой переменной, а не в конкретной модели.

Вот функции из caret именно такие. С их помощью можно сформировать некий общий набор предикторов, которые "полезны" для целевой переменной. При этом есть один очень интересный нюанс: что если двигать окно и в уже отобранных предикторах делать повторный отбор, например связанный с конкретным алгоритмом, то этот набор будет постоянно меняться.

Если говорить в целом, то необходим ответ на вопрос: для чего Вам нужна важность предиктора? Для отбора в конкретном алгоритме? Так алгоритм уже высказал свое мнение по этому поводу и Вас проинформировал об этом. поэтому показанные Вами цифры они вообще ни о чем, меняются они или нет - не имеет значения. Значение имеет предсказание по модели вне выборки обучения  и связь перечня предикторов с успехом предсказания ВНЕ выборки

seed - просто зафиксировал бы один из этих случайных наборов. Но он все равно останется случайным, хоть и воспроизводимым. Думаю дело в том, что веса важности (3й столбец) отличаются всего на 3% между минимумам и максимумом, потому при небольших изменениях леса они легко перепрыгивают по списку. В других пакетах эти веса отличаются в разы или на порядки.

Важность предикторов нужна, чтобы отсеять неважные и шумовые, и использовать их в НС или в ансамбле.

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

 
Maxim Dmitrievsky:

Попробуйте загрузить свои предикторы сюда

https://www.mql5.com/ru/articles/3856

а затем посмотреть их импортанс на уже сформированной автоматически матрице, после обучения Агента

у меня на моих пока +- результаты на ООС, но есть еще куда улучшать

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

О - новая статья. Интересно...
 
elibrarius:
О - новая статья. Интересно...

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

фитится хорошо на любых предикторах, но что бы работало на ООС надо попариться с их выбором

 
Alexander_K2:

Не дам этой ветке выпасть из Top-уровня.

Господа нейросетевики - простой люд ждет от Вас Грааль. Не погубите.

Да я уж сам переживать начал, когда её потерял :-)

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