Обсуждение статьи "Грокаем "память" рынка через дифференцирование и энтропийный анализ" - страница 10

[Удален]  
Олег:

Если брать конкретно его книгу, то дробное дифференцирование не очень понравилось (на практике), к тому же ему сто лет в обед, начиная с модификаций ARIMA. Это если брать такие ряды автономно, без других фичей, то удовлетворительных результатов не получил.

Понравились его мысли насчет мета-маркировки, т.е. обучать вторую модель корректировать результаты первой, улучшая результаты по confusion matrix. Убыточных сделок становится очень мало на трейн сабесте. Опять же, это не чисто его подход, он хорошо известен. Но только у него увидел применительно к фин. рядам. От переобучения это не избавляет, но делает красивую картинку на трейне.

Здесь можно посмотреть, Meta-Labeling раздел: https://towardsdatascience.com/financial-machine-learning-part-1-labels-7eeed050f32e

Еще здесь: https://www.quantopian.com/posts/meta-labeling-advances-in-financial-machine-learning-ch-3-pg-50

__________________________________________________________________________________________________________________

Что касается проблемы переобучения, то смотрю  сторону Meta-learning, Attention (внимания) механизмов в машинном обучении. 

Посмотреть можно:

1. https://medium.com/towards-artificial-intelligence/a-simple-neural-attentive-meta-learner-snail-1e6b1d487623

2. https://stats.stackexchange.com/questions/344508/what-are-attention-mechanisms-exactly

Financial Machine Learning Part 1: Labels
Financial Machine Learning Part 1: Labels
  • Maks Ivanov
  • towardsdatascience.com
In the previous post, we’ve explored several approaches for aggregating raw data for a financial instrument to create observations called bars. In this post, we will focus on the next crucial stage of the machine learning pipeline — labeling observations. As a reminder, labels in machine learning denote the outcomes of the random variable that...
 
Спасибо за развернутый ответ, смотрю...
[Удален]  
Олег:
Спасибо за развернутый ответ, смотрю...

Еще забыл добавить, что Meta-Labeling из его книги это частный случай стакинга (stacking), если применять мета-модель не к одной первичной модели, а к взвеси нескольких, обученных на разных сабсетах. Это может дать еще простора для исследований, применительно к тафм-сериям. 

Вот есть неплохая статья.  

Плюс к этому, attention + stacking механизмы так же хорошо вплетаются в meta-learning. Ну и там есть что попробовать. 

Это все должно приводить к какому-то глобальному обобщению и помогать бороться с оверфитом.

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

How to Develop a Stacking Ensemble for Deep Learning Neural Networks in Python With Keras
How to Develop a Stacking Ensemble for Deep Learning Neural Networks in Python With Keras
  • Jason Brownlee
  • machinelearningmastery.com
Model averaging is an ensemble technique where multiple sub-models contribute equally to a combined prediction. Model averaging can be improved by weighting the contributions of each sub-model to the combined prediction by the expected performance of the submodel. This can be extended further by training an entirely new model to learn how to...
 

Maxim Dmitrievsky:

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

Не сочтите за наглость (автор библиотеки Вы и вам решать в каком направлении двигаться), в обсуждении к первой вашей статье о RL я поднимал вопрос о замене усреднения более сложным методом, тогда Вы восприняли это в штыки, в принципе, когда все агенты созданы одним алгоритмом случайного леса это действительно не актуально, с долей условности можно считать что 2 агента дают в объединении лес с большим числом деревьев. Просто напрашивается сделать еще один шаг в RL библиотеке и вынести деревья в отдельный стандартизированный класс-обертку, для возможности простой замены в агенте другим алгоритмом.

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

Сама цепочка: несколько стандартных классов пред обработки, класс метода

В конце - класс принятия решения (объединения результатов цепочек), в простом виде - среднее

У меня получилось 4 класса-основания-обертки: данные, пред обработка, обработка, принятие решений.

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

[Удален]  
Олег:

Не сочтите за наглость (автор библиотеки Вы и вам решать в каком направлении двигаться), в обсуждении к первой вашей статье о RL я поднимал вопрос о замене усреднения более сложным методом, тогда Вы восприняли это в штыки, в принципе, когда все агенты созданы одним алгоритмом случайного леса это действительно не актуально, с долей условности можно считать что 2 агента дают в объединении лес с большим числом деревьев. Просто напрашивается сделать еще один шаг в RL библиотеке и вынести деревья в отдельный стандартизированный класс-обертку, для возможности простой замены в агенте другим алгоритмом.

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

Сама цепочка: несколько стандартных классов пред обработки, класс метода

В конце - класс принятия решения (объединения результатов цепочек), в простом виде - среднее

У меня получилось 4 класса-основания-обертки: данные, пред обработка, обработка, принятие решений.

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

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

 
Maxim Dmitrievsky:

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

Вот на этом я и погорел... Решил перенести алгоритм бустинга, разбросался и никак не соберу все в кучу. Библиотеки С++ слишком налегают на шаблоны и перегрузку функций, т.к. в MQL не все перегрузки поддерживаются, алгоритм летит и проще написать заново, для алгоритмов питона необходима нормальная библиотека матриц (то что в AlgLib усечено, кое-что просто закрыто заглушками, для основы не годится), проще всего оказалось перенести с C#, такое впечатление что разработчики MQL на него ориентируются больше чем на С++, вплоть до совпадения методов и имен. Попытался взять за основу деревья алглиб, но там деревья выполнены на матрицах, разбираться с индексацией тяжело, да и удаление затруднено. Теперь или доделаю и выложу, или есть надежда что кто-либо заинтересуется и тоже поделится...

[Удален]  
Олег:

Вот на этом я и погорел... Решил перенести алгоритм бустинга, разбросался и никак не соберу все в кучу. Библиотеки С++ слишком налегают на шаблоны и перегрузку функций, т.к. в MQL не все перегрузки поддерживаются, алгоритм летит и проще написать заново, для алгоритмов питона необходима нормальная библиотека матриц (то что в AlgLib усечено, кое-что просто закрыто заглушками, для основы не годится), проще всего оказалось перенести с C#, такое впечатление что разработчики MQL на него ориентируются больше чем на С++, вплоть до совпадения методов и имен. Попытался взять за основу деревья алглиб, но там деревья выполнены на матрицах, разбираться с индексацией тяжело, да и удаление затруднено. Теперь или доделаю и выложу, или есть надежда что кто-либо заинтересуется и тоже поделится...

Либо делать на питоне, но потом мучиться со связками с МТ5 :) у меня есть желание сделать подобную библиотеку на питоне, возможностей там выше крыше в плане моделей. Есть смысл заморачиваться со статьей?

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

Либо делать на питоне, но потом мучиться со связками с МТ5 :) у меня есть желание сделать подобную библиотеку на питоне, возможностей там выше крыше в плане моделей. Есть смысл заморачиваться со статьей?

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

ОДНОЗНАЧНО СМЫСЛ В СТАТЬЕ ЕСТЬ.

Питон стал стандартом ML, разработчики MQL также двинулись в этом направлении, приходится Питон осваивать при любом раскладе. Моя попытка переноса алгоритмов связана с отказом от DLL для постановки на авто торговлю в MQL, но это не жесткое требование и если алгоритмы проще ложаться на питон, то почему бы и нет.


Без лести - ваши статьи с удовольствием читаю, можно спорить до посинения о содержании, но то что они задают новые направления - однозначно.

Я за новую статью.

[Удален]  
Олег:

ОДНОЗНАЧНО СМЫСЛ В СТАТЬЕ ЕСТЬ.

Питон стал стандартом ML, разработчики MQL также двинулись в этом направлении, приходится Питон осваивать при любом раскладе. Моя попытка переноса алгоритмов связана с отказом от DLL для постановки на авто торговлю в MQL, но это не жесткое требование и если алгоритмы проще ложаться на питон, то почему бы и нет.


Без лести - ваши статьи с удовольствием читаю, можно спорить до посинения о содержании, но то что они задают новые направления - однозначно.

Я за новую статью.

Предлагаю тогда сделать аналог библиотеки RL на питоне в кач-ве статьи, только не со случайным лесом а с бустингом, например CatBoost

ну и дальше развить тему потом. Для начала по простому.
 
Maxim Dmitrievsky:

Предлагаю тогда сделать аналог библиотеки RL на питоне в кач-ве статьи, только не со случайным лесом а с бустингом, например CatBoost

ну и дальше развить тему потом. Для начала по простому.

Как вариант XGBoost - библиотека с исходным кодом или даже упрощенное:

https://habr.com/ru/company/mailru/blog/438562/

Кстати, в статье описан бустинг, бустингированный бэгинг
Пишем XGBoost с нуля — часть 2: градиентный бустинг
Пишем XGBoost с нуля — часть 2: градиентный бустинг
  • habr.com
Всем привет! В прошлой статье мы разбирались, как устроены решающие деревья, и с нуля реализовали алгоритм построения, попутно оптимизируя и улучшая его. В этой статье мы реализуем алгоритм градиентного бустинга и в конце создадим свой собственный XGBoost. Повествование будет идти по той же схеме: пишем алгоритм, описываем его, в заверешение...