Платный заказ
Бюджет:
55 000 руб
Всем привет!
Задача, вкратце написать машинное обучение для предсказаний колонки Target (движения цены актива вверх или вниз), со средний точностью 57%+ (точность = accuracy_score). В закрепе будет датасет, он состоит из цены актива и объема торгов (open_time, open, high, low, close, volume) и так же там есть колонка Target, которую мы и пытаемся предсказать со средний точностью 57%+ (точность = accuracy_score). мин, дерево, что угодно, что сможет достичь упомянутой точности, соблюдая 7 главных правил (о правилах ниже)
По сути вы берете исходный датасет, создаете пары train/test (минимум 25 штук) и делаете запуск обучения и тестирования. По итогу вы получаете какое-то количестве accuracy_score, и если их усреднить, то точность должна быть минимум 57%, вот и весь проект.
✅✅ Что можно ✅✅:
1) Выбрать абсолютно любую модель или библиотеку для работы. Это может быть алгоритм, нейронка, ИИ, ЛЛМ, дерево, что угодно, что сможет достичь упомянутой точности.
2) Выбрать любое количество строк train/test. Единственные 2 правила, касательно train/test: 1) между train и test должно быть МИНИМУМ 200 строк. То-есть если мы обучаем на 0-5000, то test будет самое раннее с 5200 строчки. 2) сам test не должен превышать 2000 строк. Это обязательно.
3) Создать любые индикаторы и колонки параметров для вашей модели. Единственное правило касаемо этого Ни в коем случае, ни при каких обстоятельствах НЕЛЬЗЯ подавать колонку Target в качестве feature (параметра) для алгоритма, даже как переменную в формуле и даже с задержкой! У вас полностью развязаны руки, чтобы сделать хоть 1000 features (параметров) колонок, на основании технических индикаторов, например EMA, SuperTrend, Stochastic, RSI и так далее. Для создания дополнительных колонок у вас есть все необходимые данные open, high, low, close, volume. Но полностью запрещено в какой-либо форме и в каком-либо виде интегрировать значения колонки Target в любую другую колонку и ее значения при создании features (параметров для модели).
4) Создавать ensemble модель или дообучать модель. Вы вполне можете сделать одну модель для кумулятивного обучения на всех данных и вторую модель для дообучения на данных последнем месяце.
❌❌ Что НЕЛЬЗЯ ни при каких обстоятельствах ❌❌:
1) Ни в коем случае, ни при каких обстоятельствах НЕЛЬЗЯ перемешивать данные! Данные на train, test, val (если используете валидацию) всегда должны идти в хронологическом порядке. Поэтому специально данные не перемешиваем, в train_test_split функцию shuffle ставим на False, пожалуйста, не забывайте.
2) Вы в полном праве переобучать или доучивать модель, по своему рассмотрению. Единсетнное правило, касаемо переобучения/переобучения, что между train и test должно быть МИНИМУМ 200 строк. То-есть если мы обучаем на 0-5000, то тест будем самое раннее с 5200 строчки. Это обязательно.
3) Ни в коем случае, ни при каких обстоятельствах НЕЛЬЗЯ подавать колонку Target в качестве feature для вашей модели, даже как переменную и даже с задержкой! У вас полностью развязаны руки, чтобы сделать хоть 100 features (параметров) колонок, на основании технических индикаторов, например EMA, SuperTrend, Stochastic, RSI и так далее. Для создания доп. колонок у вас есть все необходимые данные open, high, low, close, volume. Но полностью запрещено в какой-либо форме и в каком-либо виде интегрировать значения колонки Target в любую другую колонку и ее значения при создании features (параметров для модели).
4) Максимально время полного обучения (или обучения + дообучения) модели для любого единого цикла train/test на GPU Nvidia H100 не должно превышать 5 часов.
5) Минимальное количество циклов train/test должно быть 25 штук.
6) Минимальное общее количество строк теста по всем циклам должно быть 35,000 строк.
7) Нельзя работать без зафиксированного сида. Результаты полученные вами и мной, при дальнейшей проверки и валидации ваших результатов, должны сходиться минимум на 98%. Для этого вам везде нужно зафиксировать сид, чтобы я мог воспроизвести ваши результаты.
8) Нельзя брать данные из будущего. Данные, как при обучении, так и при предсказании в реальном времени, всегда могут браться только из прошлого. При создании параметров (features) запрещено использовать данные из будущего. Вы можете использовать ТОЛЬКО данные из прошлого. Полностью категорически запрещено использование pandas функцию .shift(-X) и подобное!! Только .shift(X)
Всем удачи!
P.S. я сам написал скрипт который мне выдавал ~53.2%, можете с ним тоже поиграть, либо взять за базу (для улучшения на 3.5%), либо просто посмотреть почти рабочий подход. Скрипт приложил
P.S.S. Если у вас получилось достичь 55%, но до 57 не выходит, то я готов рассмотреть ваше решение для частичной оплаты. Пишите, обсудим.
Рейтинг: 312.7
Исполнитель определен: