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

 
Ivan Negreshniy:

ИМХО, надо в питоне сначала отрабатывать, там где оно более или менее отлажено, иначе много неопределенности

да походу дллка 32бит а мт5 64

потом вернусь, пока питон да

 
Maxim Dmitrievsky:

Походу не осилю сам, придется через питон все-таки :D

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


Вот пресловутый rattle, всего несколько щелчков мышью для упомянутой вами модели xgboost.

Получаем для выборки обучения:

Error matrix for the Extreme Boost model on Df1.num [**train**] (counts):

      Predicted
Actual    0    1 Error
     0 1930   90   4.5
     1   42 2152   1.9

Error matrix for the Extreme Boost model on Df1.num [**train**] (proportions):

      Predicted
Actual    0    1 Error
     0 45.8  2.1   4.5
     1  1.0 51.1   1.9

Overall error: 3.1%, Averaged class error: 3.2%

Rattle timestamp: 2018-05-31 11:21:20 user

Для выборки валидации

Error matrix for the Extreme Boost model on Df1.num [validate] (counts):

      Predicted
Actual   0   1 Error
     0 306 119  28.0
     1 111 367  23.2

Error matrix for the Extreme Boost model on Df1.num [validate] (proportions):

      Predicted
Actual    0    1 Error
     0 33.9 13.2  28.0
     1 12.3 40.6  23.2

Overall error: 25.5%, Averaged class error: 25.6%

Rattle timestamp: 2018-05-31 11:22:15 user

Для выборки тестирования

Error matrix for the Extreme Boost model on Df1.num [test] (counts):

      Predicted
Actual   0   1 Error
     0 314 118  27.3
     1 112 360  23.7

Error matrix for the Extreme Boost model on Df1.num [test] (proportions):

      Predicted
Actual    0    1 Error
     0 34.7 13.1  27.3
     1 12.4 39.8  23.7

Overall error: 25.5%, Averaged class error: 25.5%

Rattle timestamp: 2018-05-31 11:22:50 user


Если Вас устроит результат, то можно будет посмотреть код на R. Вот вызов:

crs$ada <- xgboost(Long_Short ~ .,
  data              = crs$dataset[crs$train,c(crs$input, crs$target)],
  max_depth         = 6,
  eta               = 0.3, 
  num_parallel_tree = 1, 
  nthread           = 2, 
  nround            = 50,
  metrics           = 'error',
  objective         = 'binary:logistic')


Фактически можно взять весь код на R из rattle оформить его в виде функции и вызвать эту функцию из советника МТ4/5 и посмотреть в тестере результат. Примитивная длл, давно и устойчиво работает, полно людей, которые ее используют...

Все это в течение часа! НЕТ ПРОБЛЕМ С МОДЕЛЯМИ!

Есть проблемы с целевыми и соответствующими этим целевых предикторами или наоборот. Но чтобы решить эту проблему нужно иметь инструментарий с крайне малой трудоемкостью для апробирования вариантов.


ПС.

Уж если Вы зайдете в rattle, то заодно построите за один клик дерево (rPart), randomForest, SVM, логистическую регрессию glm, любимую вами нейросеть, правда самую простую  nnet. И на закуску модель дожития (достижения заоблачных прибылей или достижения слива депозита), если сумеете опять же сформулировать целевую и предикторы к ней.


ПСПС.

Раз у вас проснулась любовь к xgboost и эту любовь Вы сможете подкормить приемлемыми предварительными расчетами в rattle, то вот Вам и документация:

Описание пакета - https://cran.r-project.org/web/packages/xgboost/xgboost.pdf

Understand your dataset with Xgboost - https://cran.r-project.org/web/packages/xgboost/vignettes/discoverYourData.html

xgboost: eXtreme Gradient Boosting - https://cran.r-project.org/web/packages/xgboost/vignettes/xgboost.pdf

И на закуску презентация Xgboost presentation  https://cran.r-project.org/web/packages/xgboost/vignettes/xgboostPresentation.html


Если учесть уровень, который Вы здесь демонстрируете, то никаких проблем у Вас с R вообще нет.


Удачи.

 
СанСаныч Фоменко:

Спасибо, СанСаныч.. только не понял, разве в ратл есть xgb? прикольно

в любом случае, мне просто нужно присобачить эту модель вместо лесов алглиб, для задач RL

ничего исследовать не нужно, нужна просто более качественная штука с регуляризацией и кросс-валид.. Не знаю как в R,но в питоне, например, кросс-валидация легко прикручивается к xgb отпало, тоже можно

а дальше в R нет нормальных библиотек для RL, все они в питоне, т.е. придется опять корячить Р поверх питона.. короче я до сих пор не определился что мне надо :)

 

Мыли о деревьях...

Не знаю, как дело обстоит с целевыми на один бар, но когда целевые это фактически события наступление которых произойдет через N баров (конкретно я рассматриваю трендовую торговлю, или иные случаи, где закрытие позиции происходит по SL/TP, спустя N баров или фиксированному периоду времени), и при этом будет учтен и классифицирован их исход, для оценки результатов очень важно обратить внимание не на таблицу сопряженности, а на:

1. Частоту изменения результатов классификации в окне N баров

2. Группировку правил на N баров (плотность правил)

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

Во втором случае надо применить правило на одно окно (N баров) одно повторяющееся правило для оценки подкрепления и распространения этого правила по модели.

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

Что думаете об этих мыслях?

 

В очередной раз убедился что R не мое :) синтаксис почти не подсвечивается, код не читаемый, ошибки практически не подсвечиваются. Сам код и язык эстетически не приятен

здесь могли быть ваши контраргументы

Да, можно обучить алгоритм в 3 строчки, вместо 5-и на питоне, это все. При этом читаемость на питоне будет лучше. По пакетам с МО не вижу никаких преимуществ, все одно и то же.

 
Maxim Dmitrievsky:

В очередной раз убедился что R не мое :) синтаксис почти не подсвечивается, код не читаемый, ошибки практически не подсвечиваются. Сам код и язык эстетически не приятен

здесь могли быть ваши контраргументы

Да, можно обучить алгоритм в 3 строчки, вместо 5-и на питоне, это все. При этом читаемость на питоне будет лучше. По пакетам с МО не вижу никаких преимуществ, все одно и то же.

Я тут в муках смотрю видеокурс на русском языке по программированию на R :) Язык конечно жесть, в плане синтаксиса и допущений, к примеру возможность объявить глобальную переменную в функции может сильно извратить код, особенно если функция вызывается не один раз, после чего будешь тупить и искать ошибку, но её не будет для компилятора.

Меня сильно огорчает в R прожорливость памяти - сейчас файл csv объемом 187 мегабайт разворачивается в памяти как 1,5 гигабайта для работы с деревом (а в Rattle 7.5 гигабайт для построения леса), многопоточность при этом реализована как запуск отдельных процессов, неумеющих работать с общей памятью, в итоге вместо загрузки 6 ядер процессора, я могу нагрузить только 4, упираясь в имеющийся объем в 8 гигабайт.

Как с этим делом обстоят дела у питона?

 
Aleksey Vyazmikin:

Я тут в муках смотрю видеокурс на русском языке по программированию на R :) Язык конечно жесть, в плане синтаксиса и допущений, к примеру возможность объявить глобальную переменную в функции может сильно извратить код, особенно если функция вызывается не один раз, после чего будешь тупить и искать ошибку, но её не будет для компилятора.

Меня сильно огорчает в R прожорливость памяти - сейчас файл csv объемом 187 мегабайт разворачивается в памяти как 1,5 гигабайта для работы с деревом (а в Rattle 7.5 гигабайт для построения леса), многопоточность при этом реализована как запуск отдельных процессов, неумеющих работать с общей памятью, в итоге вместо загрузки 6 ядер процессора, я могу нагрузить только 4, упираясь в имеющийся объем в 8 гигабайт.

Как с этим делом обстоят дела у питона?

на память не смотрел т.к. не юзал таких больших файлов никогда :) Но слышал что в ранних версиях R вообще был швах с памятью и ее очисткой

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

Не понял также прикола с тем что хвалят визуализацию графиков в R - она убогая по сравнению с питоном, IDE Rstudio тоже убожество лесное, как такое можно поддерживать в 2018 году

написал 100 строк и запутался в коде, все слилось в одну нечитаемую портянку с неподсвеченным синтаксисом :) короче если хочется делать в кайф то на питоне в vscode или jupyter notebooks

Upd деревья и лес сами по себе занимают много памяти, в зависимости от размера сета и кол-ва деревьев и их глубины. Например, у меня комитет из 20 лесов по 50 деревьев и сет около 1000 примеров занимает ~40мб
 

Пишите чепуху про R: не знаете, не умеете и не желаете.

1. Скорость и удобство отладки кода на R просто потрясающая по сравнению с языками, у которых компилятор - это преимущество интерпретатора. В этой связи подсветка очень ограниченная, так как нечего подсвечивать - код практически сразу работоспособен. Чрезвычайно емкий код. Написание "портянки" - это скорее всего результат отсутствия знания самого R и функционала из пакетов. А если уж действительно так получилось, то хороший моветон требует разбиения на функции, присутствует ООП.

2. Использование глобальных переменных во всех языках надо осторожно. В R их необходимость весьма сомнительна, так как параметрами функций и возврат из них может быть "объект", а в R это что угодно. Кроме этого можно управлять пространством, к которым привязаны имена переменных.

2. Графика - одна из лучших в мире - есть все, от простейшего plot до мультиков, графика нескольких уровней: от примитива до специализированных заготовок для статистики. 

3. С питоном сравнивать нельзя: по распространенности они примерно равны, но в питоне очень много "чужих" пользователей, в основном разработчиков сайтов, а R - это система статистики, наша, родная, вдвойне родная, так как в статистику включили МО. Если говорить про пакеты для нас, то сравнивать надо с другими специализированными пакетами (SAS...), но они платные.

4. R - это алгоритмический стандарт в области статистики. Практически все современные публикации обязательно содержат код на R.  


Последнее. R - это часть майкрософт, а питон поделуха, тут на соседней ветке очень квалифицированные в программировании люди не могли договориться об источнике дистрибутива. Для меня это приговор.  


В программировании очень часто выбирают то, что удобнее, а не то полезнее, функциональное, но поливать, чтобы сделать крайне сомнительный выбор - не надо.

 
СанСаныч Фоменко:

СанСаныч, источник дистрибутива там только один - сайт питона :)

для статистики и машинного обучения расширение IPython и anaconda. Зайдите в русскоязычное коммьюнити opendatascience или посмотрите ролики от яндекса. Там про R вообще не слышали. Так что считать стандартом? Вы попробуйте питон, что бы составить свое собственное мнение и сравнить. Плюс знание питона, как вы уже сказали, позволит заниматься не только статистикой но и делать другие вещи, при необходимости.

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

 
Maxim Dmitrievsky:

на память не смотрел т.к. не юзал таких больших файлов никогда :) Но слышал что в ранних версиях R вообще был швах с памятью и ее очисткой

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

Не понял также прикола с тем что хвалят визуализацию графиков в R - она убогая по сравнению с питоном, IDE Rstudio тоже убожество лесное, как такое можно поддерживать в 2018 году

написал 100 строк и запутался в коде, все слилось в одну нечитаемую портянку с неподсвеченным синтаксисом :) короче если хочется делать в кайф то на питоне в vscode или jupyter notebooks

Upd деревья и лес сами по себе занимают много памяти, в зависимости от размера сета и кол-ва деревьев и их глубины. Например, у меня комитет из 20 лесов по 50 деревьев и сет около 1000 примеров занимает ~40мб

У меня пока ощущение, что R - крутой калькулятор. Убивает отсутствие русскоязычного хэлпа по основным функциям, ну это мне очень важно из-за слабости в лингвистики.

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

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