Обсуждение статьи "Машинное обучение и Data Science (Часть 36): Работа с несбалансированными финансовыми рынками"

 

Опубликована статья Машинное обучение и Data Science (Часть 36): Работа с несбалансированными финансовыми рынками:

Финансовые рынки не находятся в идеальном равновесии. Некоторые рынки демонстрируют бычий тренд, другие — медвежий, а третьи — флэт. Эта несбалансированная информация, используемая для обучения моделей машинного обучения, может вводить в заблуждение, поскольку рынки часто меняют направление. В этой статье мы обсудим несколько способов решения этой проблемы.

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

Машинное обучение и Data Science - Работа с несбалансированными финансовыми рынками


Автор: Omega J Msigwa

 
Спасибо, вы, Омега, цените, что вы собрали это вместе, Баис - это то, чего мы все боимся. Я скачал вложения, могу ли я предложить, что он включает в себя все необходимые компоненты. К счастью, у вас есть github, поэтому я смог найти и установить необходимые компоненты (preprossing.mqh, plots.mqh, Matrixextend.mqh, metrics.mqh и Random Forext.mqh). К сожалению, затем я застрял с сообщением ' Init - Undeclared Identifier ' из строки if (!random_forest.Init(StringFormat("%s.%s.%s.onnx", symbol_, EnumToString(timeframe_), technique_name), ONNX_COMMON_FOLDER)) //Инициализация RFC в формате ONNX из общей папки. Я проверил, и у меня действительно есть USDJPY.PERIOD_D1.randomundersampling.onnx в папке MQL5\Common
 
linfo2 USDJPY.PERIOD_D1.randomundersampling.onnx в папке MQL5\Common

Необходимые компоненты - это последние версии всего, что импортировано в блокнот, вы можете выполнить pip install, не беспокоясь о конфликте версий. Также вы можете перейти по ссылке в таблице вложений, она приведет вас на сайт Kaggle.com, где вы сможете редактировать и изменять код.

Необъявленный идентификатор может означать, что переменная или объект не определены. Проверьте свой код или пришлите мне скриншот кода по DM.

 
Результаты тестирования недостоверны. Временной период тестирования включает в себя временной период обучающих данных. Модель будет хорошо работать на обучающем наборе и плохо - на тестовом. Вы можете видеть, что многие результаты тестирования находятся во временном диапазоне от 2024.07.06 до 2025.01.01. Модель работает плохо, в то время как в предыдущее время она работает отлично. Я подсчитал, что обучающий набор составляет 80 %. Данные не подвергаются случайному распределению, а обучающий и тестовый наборы распределяются по порядку. Модель распознает предыдущие обучающие данные, но не последующие тестовые данные. Вы использовали обучающие данные в тесте, что привело к завышению общих результатов, а производительность на последующих тестовых данных очень низкая, с потерями. Тогда центроид кластера также ненадежен. При кластеризации используются все данные, и общие данные будут использоваться для кластеризации и последующего обучения. Таким образом, обучающие данные, используемые этим методом, включают временной диапазон 2023.01.01~2025.01.01. Можно сказать, что это тест полностью на обучающих данных, без тестирования на неизвестных данных. Тренировочные и тестовые данные должны быть строго разграничены в хронологическом порядке. Для проверки эффективности модели можно использовать только тестовые данные, например, 2023.01.01~2024.01.01 в качестве обучающих данных, а 2024.01.01~2025.01.01 в качестве тестовых данных. Тестовая модель может быть проверена только на тестовых данных. Не должно быть риска утечки информации, иначе все хорошие показатели модели окажутся недостоверными.