Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2254
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
короче давай за пса потом поговорим, я спать хочу )
кодеры не вкатили эмпирически
окай
будешь первым
Смотрю один курс по байесовскому методу 2019 года, там интересные идеи есть, но формулы тормозят понимание. Вот подумал, что кто пробовал современные подходы с байесовской логикой. Лектор вообще утверждает, что все МО без байесовских методов оценки вероятности в МО - просто подгонка.
Кстати про подгонку, всё больше склоняюсь к выводу, что модели CatBoost ухудшают свои результаты на выборках вне обучения по причине нерепрезентативности выборки и способе построения модели. Дело в том, что там в классических моделях деревья симметричны и нет прунинга, что может приводить к ситуации, когда в один лист попадает очень мало данных, но при этом лист получает не малый вес, и если это ошибочное разделение, то на выборках вне обучение, если там будет много примеров в ошибочном листе, то это будет приводить к существенному искажению результатов. А таких листьев может быть тысяча. Если бы выборка была репрезентативна, то проблемы не существовало так как вес в листе был бы адекватен и соответствовал характеру распределения данных (энтропии). Нужно попробовать шунтировать листья с малым числом примеров путем обнуления их веса.
Идея в том, что бы модель реагировала только на те данные о которых имеет представление, а не суждение типа "если это правильно, то то не правильно", как происходит сейчас.Смотрю один курс по байесовскому методу 2019 года, там интересные идеи есть, но формулы тормозят понимание. Вот подумал, что кто пробовал современные подходы с байесовской логикой. Лектор вообще утверждает, что все МО без байесовских методов оценки вероятности в МО - просто подгонка.
Кстати про подгонку, всё больше склоняюсь к выводу, что модели CatBoost ухудшают свои результаты на выборках вне обучения по причине нерепрезентативности выборки и способе построения модели. Дело в том, что там в классических моделях деревья симметричны и нет прунинга, что может приводить к ситуации, когда в один лист попадает очень мало данных, но при этом лист получает не малый вес, и если это ошибочное разделение, то на выборках вне обучение, если там будет много примеров в ошибочном листе, то это будет приводить к существенному искажению результатов. А таких листьев может быть тысяча. Если бы выборка была репрезентативна, то проблемы не существовало так как вес в листе был бы адекватен и соответствовал характеру распределения данных (энтропии). Нужно попробовать шунтировать листья с малым числом примеров путем обнуления их веса.
Идея в том, что бы модель реагировала только на те данные о которых имеет представление, а не суждение типа "если это правильно, то то не правильно", как происходит сейчас.Реперзентативность - это важное условие.
Разве у катбуста, при делении получаются листья с малым числом примеров в листе? Рекомендованная глубина там 6, это 2^6=64 т.е. в лист в среднем попадет 1/64 часть строк от всей выборки. Если у вас хотя бы 10000 строк обучения, то будет примерно по 156 примеров в листе в среднем. Думаю это вполне репрезентативно, на мой взгляд.
Хотя если деревья делать симметричными, может там и будут какие-то искажения. Насколько малыми вы видели листья и сколько при этом подавалось строк на обучение?
Реперзентативность - это важное условие.
Разве у катбуста, при делении получаются листья с малым числом примеров в листе? Рекомендованная глубина там 6, это 2^6=64 т.е. в лист в среднем попадет 1/64 часть строк от всей выборки. Если у вас хотя бы 10000 строк обучения, то будет примерно по 156 примеров в листе в среднем. Думаю это вполне репрезентативно, на мой взгляд.
Хотя если деревья делать симметричными, может там и будут какие-то искажения. Насколько малыми вы видели листья и сколько при этом подавалось строк на обучение?
Сейчас у меня точных чисел нет - это только предположение. Нужно возвращаться к своим старым кодам, там, кажется, у меня была возможность получить такую статистику - запамятовал. Вы правильно говорите, что среднее значение не выглядит пугающим, но это не значит, что не будет совсем мало примеров в одном листе.
Мы видим, что приделы экстремальной вероятности на выборке обучения и на тестовой выборки отличаются обычно существенно - предполагаю, что как раз причина в листьях с малым числом примеров, такие листья просто редко встречаются на тестовой выборке.
Есть такая визуализация оценки статистики по активации листьев деревьев - одна из старых моделей.
По y - номер листа, а по x - строка выборки. Цвет показывает коэффициент веса листа по модулю.
Видно, что даже тут есть редкие активации листьев, а значит предположение обоснованно - это выборка exam
Есть такая визуализация оценки статистики по активации листьев деревьев - одна из старых моделей.
По y - номер листа, а по x - строка выборки. Цвет показывает коэффициент веса листа по модулю.
Видно, что даже тут есть редкие активации листьев, а значит предположение обоснованно - это выборка exam
Редкая активация на Exam скорее означает, что рынок поменялся и то, что часто случалось на трейне, перестало случаться. И это не обязательно, что на трейне там тоже было мало активаций листа.
Да, я согласен, что есть и эффект изменения рынка.
Давайте посмотрим на Train.
Ситуация чуть лучше, но так же есть листья с редким числом активаций.
Обратите внимание, как происходит обучение - строится дерево с большим весом - условно удачное, а потом множество с мелкими весами, а потом опять большое - такой пирог, и если убрать прожилки с мелкими весами, то и получается смещение вероятности.
Да, я согласен, что есть и эффект изменения рынка.
Давайте посмотрим на Train.
Ситуация чуть лучше, но так же есть листья с редким числом активаций.
Обратите внимание, как происходит обучение - строится дерево с большим весом - условно удачное, а потом множество с мелкими весами, а потом опять большое - такой пирог, и если убрать прожилки с мелкими весами, то и получается смещение вероятности.
Интересно что будет если обучить новую модель на этой диаграмме?
Вообще сама идея - обучить вторую модель на "внутренностях" первой
зачем вы ковыряете этот карбюратор? работает и ладно. Вы не улучшите ничего этим
Если понимаешь в чем проблема, то можешь искать решение. Очевидно, что у таких деревьев есть недостатки.
Но согласен, что с кодом CatBoost я не разберусь для внесения в него правок, увы.
Однако, есть возможность повлиять на модель, возможно зануление редких примеров в листьях даст положительный эффект, но желательно потом перевзвесить коэффициенты листьев - с этим сложней, но глобально решаемо.
возьмите простую нейросеть без листьев. Она будет работать на новых данных так же плохо как бустинг. О чем это говорит?
Я согласен, что и там будет эффект переобучения, но другого характера - вопрос в том, какой из этих эффектов можно точней выявлять и оценивать и с каким легче бороться.
есть прекрасный инструмент SHAP для отбора и интерпретации признаков, но он на питоне. Все уже давно сделано за вас )
На самом деле подавляющее большинство этих методов говорят лишь об использовании предикторов в моделях, но не делают какой либо оценки их самих. Нужны оценки предикторов независимые от модели - я работаю над этим, есть скромные положительные результаты.
Конечно мне хочется покрутить готовые решения на питоне или R, но есть сомнения, что я осилю новый синтаксис.
Интересно что будет если обучить новую модель на этой диаграмме?
Вообще сама идея - обучить вторую модель на "внутренностях" первой
Эта модель в примере из древних залежей, сейчас в моделях у меня по 60к листьев, что конечно много для формирования выборки. Возможно попробовать существенно сократив число деревьев. Однако замечу, что я оценивал листья от CatBoost и они очень слабы по своим характеристикам по отдельности в сравнении с листьями от генетического дерева.
На листьях(тысячах листьев) от генетического дерева я обучался - можно улучшить метрические показатели.