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

 
elibrarius:
Скопируйте в свой блог, может еще кому пригодится. Тут что-то искать уже нереально.

В блоге этот код тоже есть. Но это совсем базовая вещь на тему "как сделать kfold", там нужно много под свои конкретные задачи переделывать. Плюс если в генетике включить многопоточность, то elmnn будет игнорировать установленное зерно гпсч, и в каждом потоке будет получаться что-то своё и невоспроизводимое, для такого случая (многопоточность в генетике) нужно смотреть статьи Владимира Перервенко и его способ контроля гпсч.

 
Maxim Dmitrievsky:

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

дропаут наоборот увеличивает ошибку, не?

Дропаут эквивалентен отключению нейрона. Если он шумный, то это хорошо.
Да и зачем бы придумали какую то вещь, которая увеличивает ошибку - все имеет смысл, тольео если оно помогает уменьшить ошибку.
 
elibrarius:
Дропаут эквивалентен отключению нейрона. Если он шумный, то это хорошо.
Да и зачем бы придумали какую то вещь, которая увеличивает ошибку - все имеет смысл, тольео если оно помогает уменьшить ошибку.

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

потому и дудят про то что 0.5 шиба модели на форексе это хорошая шиба. У  меня при 0.3 0.4 начинает более-менее работать, если меньше то оверфит как правило

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

 
Dr. Trader:

В Питоне должно быть тоже.

Ясно, питон вообще далек от меня... неужели никто не делает обертки GUI для работы с НС?

Dr. Trader:

Запущу алгоритм сегодня на ночь, покажу завтра что вышло

Спасибо, будет познавательно.

Dr. Trader:

Достижение точности в 100% и надеяться что модель будет хорошо работать - на форексе обычно невозможно, для этого нужно месяцами подбирать предикторы, и даже целевую, которые хорошо сойдутся вместе. Обычно достигнув точность на пару десятков выше 50% модель после этого начинает запоминать обучающие примеры, а не находить в них логические закономерности. И соответственно результат на новых данных будет всё хуже. У ваших данных этот оптимум у меня получился около 60% - когда результат и на тренировочных и на тестовых данных примерно равен, а при более детальной разбивке дерева и более высокой точности лес показывет всё более худший результат на новых данных.

Да куда торопится, время есть, если оно будет потрачено не в пустую.

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

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

 
Maxim Dmitrievsky:

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

Это тоже. Точнее - это главная задача. У меня сложилась ассоциация удаления нейронов с удалением входов. Может она и не верная.

Да, скорее dropconnect в первом слое похож на удаление входов.

 
elibrarius:

Это тоже. Точнее - это главная задача. У меня сложилась ассоциация удаления нейронов с удалением входов. Может она и не верная.

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

если из регрессии удалить несколько членов то это равносильно удалению входов, а в полносвязной НС то почему

dropconnect, из названия, - да, похоже

 
Maxim Dmitrievsky:

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

если из регрессии удалить несколько членов то это равносильно удалению входов, а в полносвязной НС то почему

dropconnect, из названия, - да, похоже

Но и с dropconnect-ом задача сложная... например 50 входов, 50 нейронов.
Удалив 1 вход удаляем и 50 связей на 50 нейронов.
А перебрать удаление всех 50 связей ради удаления 1 входа, задача в 50 раз сложнее. И таким образом все 50 входов  перебрать... итого 50^50 вариаций. Видимо - безнадежное дело. Проще все-таки входами заниматься - всего то 2^50 ))).
 
elibrarius:

Вопрос не только к вам, - ко всем.

На практике это так и есть, т.е. если есть шумовые предикторы то НС не может вырваться из 50-55%. Если подобрать - то и 70% может выдать.

А вот почему так?
1) Ведь НС, при обучении, сама должна бы подобрать шумовым предикторам веса близкие к 0 (что равносильно их исключению при подборе). Это мы видели в задачке в начале ветки.
2) Если не обучением занизить веса, то хотя бы dropout должен бы их отсеивать...

Писалось много раз: шумовые предикторы гораздо удобнее для модели - в шуме всегда находятся значения, которые улучшают результат обучения. Поэтому процесс обратный - шумовые предикторы получают больший вес, а не так как Вы предполагаете. Особенно это заметно на небольших выборках, а это менее 1000 наблюдений. На выборках свыше 5000 наблюдений не так сказывается, но все равно надо предварительно отсеивать шумовые предикторы

 
elibrarius:
Но и с dropconnect-ом задача сложная... например 50 входов, 50 нейронов.
Удалив 1 вход удаляем и 50 связей на 50 нейронов.
А перебрать удаление всех 50 связей ради удаления 1 входа, задача в 50 раз сложнее. И таким образом все 50 входов  перебрать... Видимо - безнадежное дело. Проще все-таки входами заниматься.
входы полюбак важней, игры с моделями это уже шаманство и по идее не должны давать большого прироста, в общем случае. Ну я сделал ансамбль из лесов, после дропов отдельных лесов можно улучшиться на 0.05, иногда на 0.1 по ошибке (разнице между трэйн и тест). Основную проблему это не решает. В навороченных нейросетках не знаю как.
 
СанСаныч Фоменко:

Писалось много раз: шумовые предикторы гораздо удобнее для модели - в шуме всегда находятся значения, которые улучшают результат обучения. Поэтому процесс обратный - шумовые предикторы получают больший вес, а не так как Вы предполагаете. Особенно это заметно на небольших выборках, а это менее 1000 наблюдений. На выборках свыше 5000 наблюдений не так сказывается, но все равно надо предварительно отсеивать шумовые предикторы

Может есть технология позволяющая давать приоритеты для использования в НС/Дереве/Лесах предикторов по их важности с точки зрения аналитика?