Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2254

Maxim Dmitrievsky:

короче давай за пса потом поговорим, я спать хочу )

кодеры не вкатили эмпирически

окай

mytarmailS:

будешь первым

Смотрю один курс по байесовскому методу 2019 года, там интересные идеи есть, но формулы тормозят понимание. Вот подумал, что кто пробовал современные подходы с байесовской логикой. Лектор вообще утверждает, что все МО без байесовских методов оценки вероятности в МО - просто подгонка.


Кстати про подгонку, всё больше склоняюсь к выводу, что модели CatBoost ухудшают свои результаты на выборках вне обучения по причине нерепрезентативности выборки и способе построения модели. Дело в том, что там в классических моделях деревья симметричны и нет прунинга, что может приводить к ситуации, когда в один лист попадает очень мало данных, но при этом лист получает не малый вес, и если это ошибочное разделение, то на выборках вне обучение, если там будет много примеров в ошибочном листе, то это будет приводить к существенному искажению результатов. А таких листьев может быть тысяча. Если бы выборка была репрезентативна, то проблемы не существовало так как вес в листе был бы адекватен и соответствовал характеру распределения данных (энтропии). Нужно попробовать шунтировать листья с малым числом примеров путем обнуления их веса.

Идея в том, что бы модель реагировала только на те данные о которых имеет представление, а не суждение типа "если это правильно, то то не правильно", как происходит сейчас.
Aleksey Vyazmikin:

Смотрю один курс по байесовскому методу 2019 года, там интересные идеи есть, но формулы тормозят понимание. Вот подумал, что кто пробовал современные подходы с байесовской логикой. Лектор вообще утверждает, что все МО без байесовских методов оценки вероятности в МО - просто подгонка.


Кстати про подгонку, всё больше склоняюсь к выводу, что модели CatBoost ухудшают свои результаты на выборках вне обучения по причине нерепрезентативности выборки и способе построения модели. Дело в том, что там в классических моделях деревья симметричны и нет прунинга, что может приводить к ситуации, когда в один лист попадает очень мало данных, но при этом лист получает не малый вес, и если это ошибочное разделение, то на выборках вне обучение, если там будет много примеров в ошибочном листе, то это будет приводить к существенному искажению результатов. А таких листьев может быть тысяча. Если бы выборка была репрезентативна, то проблемы не существовало так как вес в листе был бы адекватен и соответствовал характеру распределения данных (энтропии). Нужно попробовать шунтировать листья с малым числом примеров путем обнуления их веса.

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

Реперзентативность - это важное условие.

Разве у катбуста, при делении получаются листья с малым числом примеров в листе? Рекомендованная глубина там 6, это 2^6=64 т.е. в лист в среднем попадет 1/64 часть строк от всей выборки. Если у вас хотя бы 10000 строк обучения, то будет примерно по 156 примеров в листе в среднем. Думаю это вполне репрезентативно, на мой взгляд.

Хотя если деревья делать симметричными, может там и будут какие-то искажения. Насколько малыми вы видели листья и сколько при этом подавалось строк на обучение?

elibrarius:

Реперзентативность - это важное условие.

Разве у катбуста, при делении получаются листья с малым числом примеров в листе? Рекомендованная глубина там 6, это 2^6=64 т.е. в лист в среднем попадет 1/64 часть строк от всей выборки. Если у вас хотя бы 10000 строк обучения, то будет примерно по 156 примеров в листе в среднем. Думаю это вполне репрезентативно, на мой взгляд.

Хотя если деревья делать симметричными, может там и будут какие-то искажения. Насколько малыми вы видели листья и сколько при этом подавалось строк на обучение?

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

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

Есть такая визуализация оценки статистики по активации листьев деревьев - одна из старых моделей.

По y - номер листа, а по x - строка выборки. Цвет показывает коэффициент веса листа по модулю.

Видно, что даже тут есть редкие активации листьев, а значит предположение обоснованно - это выборка exam


Aleksey Vyazmikin:

Есть такая визуализация оценки статистики по активации листьев деревьев - одна из старых моделей.

По y - номер листа, а по x - строка выборки. Цвет показывает коэффициент веса листа по модулю.

Видно, что даже тут есть редкие активации листьев, а значит предположение обоснованно - это выборка exam


Редкая активация на Exam скорее означает, что рынок поменялся и то, что часто случалось на трейне, перестало случаться. И это не обязательно, что на трейне там тоже было мало активаций листа.
elibrarius:
Редкая активация на Exam скорее означает, что рынок поменялся и то, что часто случалось на трейне, перестало случаться. И это не обязательно, что на трейне там тоже было мало активаций листа.

Да, я согласен, что есть и эффект изменения рынка.

Давайте посмотрим на Train.

Ситуация чуть лучше, но так же есть листья с редким числом активаций.

Обратите внимание, как происходит обучение - строится дерево с большим весом - условно удачное, а потом множество с мелкими весами, а потом опять большое - такой пирог, и если убрать прожилки с мелкими весами, то и получается смещение вероятности.

Aleksey Vyazmikin:

Да, я согласен, что есть и эффект изменения рынка.

Давайте посмотрим на Train.

Ситуация чуть лучше, но так же есть листья с редким числом активаций.

Обратите внимание, как происходит обучение - строится дерево с большим весом - условно удачное, а потом множество с мелкими весами, а потом опять большое - такой пирог, и если убрать прожилки с мелкими весами, то и получается смещение вероятности.

Интересно что будет если обучить новую модель на этой диаграмме?

Вообще сама идея  -   обучить вторую модель на "внутренностях" первой

Maxim Dmitrievsky:

зачем вы ковыряете этот карбюратор? работает и ладно. Вы не улучшите ничего этим

Если понимаешь в чем проблема, то можешь искать решение. Очевидно, что у таких деревьев есть недостатки.

Но согласен, что с кодом CatBoost я не разберусь для внесения в него правок, увы.

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

Maxim Dmitrievsky:

возьмите простую нейросеть без листьев. Она будет работать на новых данных так же плохо как бустинг. О чем это говорит?

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

Maxim Dmitrievsky:

есть прекрасный инструмент SHAP для отбора и интерпретации признаков, но он на питоне. Все уже давно сделано за вас )

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

Конечно мне хочется покрутить готовые решения на питоне или R, но есть сомнения, что я осилю новый синтаксис.

mytarmailS:

Интересно что будет если обучить новую модель на этой диаграмме?

Вообще сама идея  -   обучить вторую модель на "внутренностях" первой

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

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