Есть ли закономерность в хаосе? Попробуем поискать! Машинное обучение на примере конкретной выборки. - страница 17
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кроме как время начала чего либо и окончания (сессий, календарных) на ум ничего не приходит. Что имелось ввиду?
Да почему, это просто самые очевидно возможные. Волатильность была на рисунке, можно другие факторы рассмотреть
С метриками дискретной цены не просто все, по отдельности теряется связь и смысл часто. Ширина канала или волатильность и скорость изменения цены. Вроде просто, но нет концепции))) в голове)
надо сначала задать что хотим от МО. Просто классификация или некоторый отбор, то есть слепить инструмент по типу стандартного оптимизатора, где задаются разные целевые ф-ии
потом вертеть через это индикаторы (признаки). Часто втупую, перебором, пока что-нибудь интересное не почудится (типа Грааля)
как что-то подучится, начинаем копать глубже
наверное, мне кажется что пишу очевидные вещи, но они таковыми получаются только для меня :D
Вопрос ветки конечно интересный...
Поэтому и задумался.
Наверное закономерность можно определить.
Предлагаю анализировать по несколько баров подряд, например по 3-4.
Далее сдвигаться на один бар от начала этой выборки из 3-4 баров и снова анализ.
Как бы накладывая одну выборку на другую.
Возможно что и найдется закономерность
Примерно так:
Между делом получил такую вот модельку по первой выборке в этой теме.
К сожалению, на выборке test она сливает - ну явно выборки разные.
В процессе поиска способа обучить модель были проверены разные подходы, создано более 100 тысяч моделей, придуманы новые подходы, предварительно показавшие хороший потенциал. Использовались разные способы преобразование выборки и отбора предикторов. Эти методы комбинировались между собой.
Методы преобразования выборки и отбора предикторов.
Преобразование выборки:
a) Исключение по лучшему кванту без учета вектора на выборке train, если такой больше заданного процента отклонения от среднего значения целевой в выборке, иначе происходит оценка дополнительно по выборкам с учетом вектора и отбирается лучший вариант.
b) То же, что и «a», но не берутся квантовые отрезки, показавшие на выборке test отклонение в сторону уменьшения вероятности для TN.
c) То же, что и «a», только оценочный отбор происходит по выборке «test».
Отбор предикторов:
a) Отбор предикторов по статистике с подбором квантовых таблиц для каждого предиктора.
b) Отбор квантов по статистике с составлением бинарной выборки.
c) Объединение квантовых отрезков из подвыборок с разными векторами с составлением сводной бинарной выборки.
d) Отбор предикторов по статистике с подбором квантовых таблиц на базе бинарных квантов.
Новый рекорд, и на этот раз выборка test так же в плюсе.
Напишу, как была получена модель - видимо для себя, раз никому не интересно, как хоть что-то вытянуть из сложной выборки.
Итак, первым делом тут сделано смещение целевой по принципу, что если прибыль менее 50 пунктов, то это негативный исход, т.е. "0", вместо "1" прежде. Позитивных меток осталось менее 20%, но это позволило отобрать более выраженные трендовые движения.
Потом произвел подбор сплитов из квантовых таблиц для каждого предиктора. Использовалось около 900 таблиц для выборки, отбирались отрезки смещающие вероятность от 5%, производилось оценка устойчивости генерации сигналов в квантовом отрезке.
Следующим этапом является объединение отобранных квантовых отрезков. Использовал подход с элементом рандома и оценивал результат по критерию - "чем больше отрезков, тем лучше" - не уверен, что метод идеален, и, возможно следует его улучшать - нужно думать над алгоритмом.
Таким образом получил объединенную квантовую таблицу для предикторов. Предикторы без удачных отрезков получили просто разделитель "0,5" в квантовой таблице.
Провел обучения 100 моделей с Seed от 8 до 800 с шагом 8.
Из полученных вариантов отобрал лучшую модель, проанализировал предикторы, что были ей использованы - оказалось, что их 77.
Пробовал обучить ещё 100 моделей, но уже только на этих предикторах, так же с Seed от 8 до 800 с шагом 8. Результат получался лучших моделей чуть хуже, чем у прошлой модели. И это меня озадачило конечно.
Решил, что надо перебрать Seed с меньшим шагом и в большем объёме, ведь их предикторов можно получить результат лучше - это доказано. Обучил 10000 моделей, с Seed от 1 до 10000 с шагом 1.
Ниже на графике представлен финансовый результат моделей, упорядоченный по убыванию - от лучшего к худшему.
Примерно 25% моделей оказались убыточными, что уже не так и плохо, а средняя прибыль 2116,65. 38% моделей имеют прибыль более или равную 3000 пунктам.
Не до конца понятно, почему на выборке test результаты не коррелируют с выборками exam - особенность подвыборки, или могут быть иные причины?
На графике ниже показаны результаты по выборке test - упорядочены так же, как и ранее - по фин результату выборки exam.
Ну и для наглядности график рассеивания - выглядит как рандом.
Думал, что дело в показателях - пунктах, а не бинарных статистических показателях, но, как видно на графике ниже, показатель точности между двух выборок так же независим.
Без выявления зависимости результатов на выборке exam от выборки test и train сложно выбрать модель - думаю нужно разработать дополнительные оценочные критерии - метрики модели может.
Новая модель (приметил две) использовала уже менее 50 предикторов. Думаю повторить процесс - в итоге останутся предикторы, которых достаточно для построения модели.
Что делать потом - можно обучить уже модели на полной выборке с применением только отобранных предикторов - и далее посмотреть, как их совокупность поведет себя на новых данных.
Кроме того, хотелось бы попробовать найти какие либо особые признаки в отобранных предикторах, увеличивающие вероятность их отбора без обучения - по аналогии, как это делалось с отбором квантовых отрезков из таблиц.
Потом произвел подбор сплитов из квантовых таблиц для каждого предиктора. Использовалось около 900 таблиц для выборки, отбирались отрезки смещающие вероятность от 5%, производилось оценка устойчивости генерации сигналов в квантовом отрезке.
Следующим этапом является объединение отобранных квантовых отрезков. Использовал подход с элементом рандома и оценивал результат по критерию - "чем больше отрезков, тем лучше" - не уверен, что метод идеален, и, возможно следует его улучшать - нужно думать над алгоритмом.
Это по сути выбор листьев с вероятностью >55% ?
Пробовал обучить ещё 100 моделей, но уже только на этих предикторах, так же с Seed от 8 до 800 с шагом 8. Результат получался лучших моделей чуть хуже, чем у прошлой модели. И это меня озадачило конечно.
Видимо рандом Seed-a не совпал полностью с вариантом рандома лучшей выборки. Потому и разные/худшие результаты.
Не до конца понятно, почему на выборке test результаты не коррелируют с выборками exam - особенность подвыборки, или могут быть иные причины?
На графике ниже показаны результаты по выборке test - упорядочены так же, как и ранее - по фин результату выборки exam.
Это как с обычным обучением, которое переобучается/подгоняется под трейн. В данном случае, вы сделали подгонку под exam. Любая подгонка, и под тест и под exam, как видим на вашем тесте приводит к рандомному результату.
Думаю не надо брать лучшие трейны или exam-ы. Нужно что-то стабильное, хоть и c значительно худшим результатом, чем лучший вариант на трейне или exam-e.
Когда занимался с Darch, то там был отбор по обоим выборкам err = err_ oob * k+ err_trn * (1 - k); где k=0.62 (рекомендованный, но можно менять)
Т.е. ошибка = err_ oob * 0,62+ err_trn * 0,38;
Но это лишний параметр для подбора с увеличением времени расчетов.
По моим экспериментам с выборкой на H1 - было что-то стабильное, но мало зарабатывающее. 10000 сделок, но всего по 0.00005 на сделку. Это тоже неинтересно т.к. в ральной торговле спреды/проскальзывания и т.п. съедят эти 5 пт.
У вас 400 сделок, но по 40 пт на экзамене. Ну а на тесте, как и у меня - близко к 0 (рандом).
Подходов много, но результативных пока никто не нашел.Это по сути выбор листьев с вероятностью >55% ?
Нет, отбирается именно, скажем так, числовой диапазон одного предиктора. 5% - относительно значения процента "1" в выборке train.
Видимо рандом Seed-a не совпал полностью с вариантом рандома лучшей выборки. Потому и разные/худшие результаты.
Рандом то фиксированный :) Там видимо хитро считается этот seed, т.е. возможно участвуют все предикторы допустимые для построения модели, а изменение их числа так же изменяет результат отбора.
Это как с обычным обучением, которое переобучается/подгоняется под трейн. В данном случае, вы сделали подгонку под exam. Любая подгонка, и под тест и под exam, как видим на вашем тесте приводит к рандомному результату.
Почему это подгонка, точней в чём её видите? Я склоняюсь к тому, что выборка test отличается от exam больше, чем exam от train, т.е. там разные вероятностные распределения у предикторов. И лечится это либо отбором тех предикторов, что наиболее устойчивы - дает результат на всех выборках приемлемый, либо способом изменяющим вероятностное распределение по внешнему признаку (т.е. другому предиктору) - о таких моделях я не знаю, но хотел бы попробовать. Подобный эффект можно получить использую повторное обучение на отобранных листьях разных деревьев или даже моделях целиком. Возможно рекуррентные нейронки это могут делать - в них не разбираюсь.
Я отношусь пока к этому методу, как способ отобрать предикторы на которых будет строиться объединенная модель, и как эталоны для идентификации других эффективных до фактического обучения.
Думаю не надо брать лучшие трейны или exam-ы. Нужно что-то стабильное, хоть и c значительно худшим результатом, чем лучший вариант на трейне или exam-e.
Когда занимался с Darch, то там был отбор по обоим выборкам err = err_ oob * k+ err_trn * (1 - k); где k=0.62 (рекомендованный, но можно менять)
Т.е. ошибка = err_ oob * 0,62+ err_trn * 0,38;
Но это лишний параметр для подбора с увеличением времени расчетов.
А что за метрика то "err_"?
У вас 400 сделок, но по 40 пт на экзамене. Ну а на тесте, как и у меня - близко к 0 (рандом).
Подходов много, но результативных пока никто не нашел.По оси Х - значение мат ожидания на выборке test, т.е. в целом да, но бывают и удачные экземпляры.