Скачать MetaTrader 5

Машинное обучение в трейдинге: теория и практика (торговля и не только) - страница 3

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Dmitry Fedoseev
47055
Dmitry Fedoseev  

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

Alexey Burnakov
3011
Alexey Burnakov  
Dr.Trader:

Визуально все веса делятся на две группы. Если нужно их поделить по принципу значимые/не значимые, то 5,11,7,1,3,9 явно выделяются, такого набора думаю хватит.

 

Это верное решение!

Я не знал, что НС такое может. Для меня это открытие.

Получается, НС могут моделировать взаимодействия.

С меня приз вам. Спасибо! 

Alexey Burnakov
3011
Alexey Burnakov  

Правда, НС не дают представления о виде закономерности. То есть, трактуемость модели под вопросом. 

Попозже я выложу логику создания набора данных и расскажу про вид зависимости. 

Alexey Burnakov
3011
Alexey Burnakov  
Dr.Trader:

Визуально все веса делятся на две группы. Если нужно их поделить по принципу значимые/не значимые, то 5,11,7,1,3,9 явно выделяются, такого набора думаю хватит.

 

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

Это уже вне задания. Для роста темы.

СанСаныч Фоменко
7034
СанСаныч Фоменко  
Alexey Burnakov:

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

Это уже вне задания. Для роста темы.

Печка - очень важная деталь интерьера в том смысле, что всегда надо танцевать от не нее.

 Dr.Trader

Ваш пример с НС говорит только о том, что НС больше понравились указанные Вами предикторы и не понравились другие. Алгоритмов, которые делают подобные вещи пруд-пруди.

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

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

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

 

ПС.

С НС не работал, а вот случайные леса, при некотором количестве шумовых предикторов, норовят отбросить информационные предикторы в соответствии со своим встроенным алгоритмом. Как результат на шуме дают необыкновенную результативность с ошибкой менее 5%! 

 

ПСПС

Наличие шумовых предикторов в обязательном порядке вдет к переобучению модели со всеми вытекающими для реала 

Alexey Burnakov
3011
Alexey Burnakov  
СанСаныч Фоменко:

Печка - очень важная деталь интерьера в том смысле, что всегда надо танцевать от не нее.

 Dr.Trader

Ваш пример с НС говорит только о том, что НС больше понравились указанные Вами предикторы и не понравились другие. Алгоритмов, которые делают подобные вещи пруд-пруди.

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

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

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

 

ПС.

С НС не работал, а вот случайные леса, при некотором количестве шумовых предикторов, норовят отбросить информационные предикторы в соответствии со своим встроенным алгоритмом. Как результат на шуме дают необыкновенную результативность с ошибкой менее 5%! 

 

ПСПС

Наличие шумовых предикторов в обязательном порядке вдет к переобучению модели со всеми вытекающими для реала 

НС очень хорошо справилась.

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

Dr. Trader
4052
Dr. Trader  

Рад что получилось :) , спасибо за приз. 

Я попробовал убрать один вход (4 случая) - если убрать input_5 или input_9 то больше ничего не работает, нейронка с такой-же конфигурацией даже не обучается до ошибки меньше 50%, начинает просто выдавать в большем случае или 0 или 1.

Если убрать input_20 то всё хорошо, результат правильный. Но странно вышло с input_15, если его убрать то нейронка даже толком не обучилась, проблемы такие-же как если убрать input_5 или input_9. Дальше я не проверял. 

Я приложил файл с R кодом для обучения нейронки, если интересно. Там по сути просто чуть изменённый код из лога Rattle.

          

Файлы:
r_nnet.zip 3 kb
Alexey Burnakov
3011
Alexey Burnakov  
Dr.Trader:

Рад что получилось :) , спасибо за приз. 

Я попробовал убрать один вход (4 случая) - если убрать input_5 или input_9 то больше ничего не работает, нейронка с такой-же конфигурацией даже не обучается до ошибки меньше 50%, начинает просто выдавать в большем случае или 0 или 1.

Если убрать input_20 то всё хорошо, результат правильный. Но странно вышло с input_15, если его убрать то нейронка даже толком не обучилась, проблемы такие-же как если убрать input_5 или input_9. Дальше я не проверял. 

Я приложил файл с R кодом для обучения нейронки, если интересно. Там по сути просто чуть изменённый код из лога Rattle.

          

Напишите мне в сообщении номер карты или Эл.кошелька
Dr. Trader
4052
Dr. Trader  

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

Ещё, пакет nnet в R это не совсем обычная нейронка. Судя по описанию, он должен использовать обучение второго порядка. Обычно в нейронках веса изменяются согласно производным, а здесь - согласно производным от производных. И при обучении строится некая "hessian" матрица, в которой хранятся важные данные о всех весах для всех обучающих примеров сразу. Говорят что это очень круто, этот пакет должен быть сильный. https://ru.wikipedia.org/wiki/Алгоритм_Бройдена_—_Флетчера_—_Гольдфарба_—_Шанно - я это не понял, но это если кто-то математик то разберётся.

Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно — Википедия
  • ru.wikipedia.org
Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно (BFGS) (англ. Broyden — Fletcher — Goldfarb — Shanno algorithm) — итерационный метод численной оптимизации, предназначенный для нахождения локального максимума/минимума нелинейного функционала без ограничений. BFGS — один из наиболее широко применяемых квазиньютоновских методов. В...
Alexey Burnakov
3011
Alexey Burnakov  
Про странные результаты:
Если убрать любой значимый предиктор ничего не получится. Это и есть взаимодействие.

Каждый из предикторов ничего не говорит о состоянии output. Поэтому алгоритмы , рассматривающие индивидуальную значимость не сработают. Также деревья решений и случайные леса не сработают почти наверное , так как они тоже рассматривают предикторы по отдельности. Но огромный лес из десятков тысяч деревьев может случайно соединить значимые предикторы в одну ветвь и тогда все получится . Но вряд ли.

Почему?

Взаимодействие - это информация , идущая от множества предикторов вместе взятых к выходу. Алгоритм зависимости таков, что сумма значимых предикторов может быть четной или нечетной 50/50. Если она четна выход 1. Иначе 0. Именно поэтому удаление хотя бы одного из значимых предикторов ломает зависимость. А добавление лишних предикторов ее может зашумить так, что стат.тест не покажет значимости .

Я реально удивлен, что обычная НС смогла выявить такую связь. Теперь я начинаю верить в возможности MLP выявлять значимые входы. Ура.

В общем, вы прямо в точку попали. Если попробуете обучить random forest почти точно не получиться.

Также я уверен, что логистическая регрессия не справится.

Одним словом, для этой задачи нужен стохпстический перебор разных подмножеств предикторов с правильно подобранной фитнесс-функцией. Ну или НС )))

Позже выложу свой метод.

Может еще кто-то попробует другим способом отобрать предикторы и тогда сможем сравнить результаты .

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий