Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2032
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Код я не изучал, но если логически подумать, то CatBoost, вероятно, преобразует таблицу данных выборки и хранит именно преобразованных вариант, который поддается быстрому сжатию.
Преобразование происходит по сетке квантования каждого предиктора (доступно 6 алгоритмов), и, к примеру, из 1000 разных значений переменной остается 32 варианта(попадающих в диапазон квантовой сетки) и такой вектор данных легко сжимается, к тому же цифры уже только целые (судя по ограничениям размера сетки - типа данных ushort - 2 байта на число), а таблица квантования просто лежит в памяти и используется уже потом при создании модели в код. Вот уже прилично уменьшили размер, а дальше можно сократить объем за счет выбора не всех предикторов для оценки, а их части, что рекомендуется делать при больших выборках, при этом алгоритм рандомизатора позволяет в других деревьях использовать те предикторы, что сразу не попали в "мешок", за счет этого обучение будет ещё и быстрей, но в моделе будет больше деревьев. Наверняка есть и иные хитрости, но главное - это квантование.
Квантованию тут вообще нужно уделять отдельное внимание, в идеале для каждого предиктора нужно подобрать свою сетку и подать уже на обучение данные вместе с сеткой, это позволяет делать алгоритм.
Поэтому, выборку можно самому отквантовать и она будет хорошо сжиматься.
Теперь понял для чего эта сетка используется, оказывается для сжатия. Ну и сортировать ее быстрее.
Точно, вспомнил, там вроде по умолчанию сетка на 1024 варианта сплитов используется. Если все данные заменить на номера сплита, то в ushort формате можно хранить, а это 2 байта вместо 8, 4-х кратное сжатие. Видимо потому у вас 2 гб вместо 6 и использовалось.
По умолчанию 254, но не помню, сколько я тогда ставил. Возможно и меньше 2 гб памяти потреблялось - помню точно, что сильно удивился, что так мало.
В любом случае, такой подход позволяет существенно сжать данные даже саму выборку. С нейросетями так не сделать
Теперь понял для чего эта сетка используется, оказывается для сжатия. Ну и сортировать ее быстрее.
По умолчанию 254, но не помню, сколько я тогда ставил. Возможно и меньше 2 гб памяти потреблялось - помню точно, что сильно удивился, что так мало.
Тогда можно uchar использовать, это 1 байт.
Сетка позволяет и меньше подгоняться, ведь используется диапазон значений. Но не всегда это будет хорошо - для ловли теоретических уровней, думаю, надо самому сетку резать.
В ushort максимальное значение 65 тыс - если задать такую сетку, то можно вручную не париться
https://www.mql5.com/ru/articles/8385
не факт, что там хорошая реализация )
на русском я пас
эту я читал))) там куча ошибок в расчетах и сеть выдает скорее случайные ответы
Тогда можно uchar использовать, это 1 байт.
В ushort максимальное значение 65 тыс - если задать такую сетку, то можно вручную не париться
Придельный размер у них 65535, но я не могу же влиять на переменные в коде.
А вот по поводу максимального размера - нет, это не гарантирует результат, так как может быть подгонка под полоску данных и пропуск близ лежащих.
Вообще хорошо бы иметь алгоритм обучения, готорый всегда проверяет целесообразность закрывающего диапазон сплита (A>10 && A<=15), а то обычно это несколько рандомно происходит - нет такого обязательного условия, хотя оно и воспроизводится иногда.
эту я читал))) там куча ошибок в расчетах и сеть выдает скорее случайные ответы
Вы хотите именно сами сеть написать?
Вод здесь есть минимум слов и максимум кода на питоне, но тоже англ.
https://datascience-enthusiast.com/DL/Building_a_Recurrent_Neural_Network-Step_by_Step_v1.html
Вы хотите именно сами сеть написать?
Вод здесь есть минимум слов и максимум кода на питоне, но тоже англ.
https://datascience-enthusiast.com/DL/Building_a_Recurrent_Neural_Network-Step_by_Step_v1.html
Да, хочу сам) потому что во всех статьях, примерах функции активации считаются не правильно) например сигмоидную везде считают как 1/1+exp(-x). А нужно 1.0/1.0+exp(-x). Написано вроде одно и тоже, но терминал выдает разные расчеты) посмотри может у тебя так же считает) отсюда и ошибки.
В терминале нейросети писать вообще не вариант. Там любая ф-я внезапно может работать не так, как ожидалось. Пользуйтесь готовыми проверенными
Покажите картинку, как выглядят кластера из деревьев, пока не понимаю о чём речь.
А зачем его открывать? :) Я просто делаю мини копию с аналогичной структурой для отладки.
Несколько раз переделывал, после распаковки займет 6ГБ.
День недели, день месяца, час, минута, ...то же для выхода..., продолжительность сделки в минутах, СЛ, ТП, результат +-1