Постов с тегом "градиентный бустинг": 5

градиентный бустинг


Градиентный бустинг с годовой перспективой ч.2

Неделю назад, я рассказал о своих попытках применить градиентный бустинг к выбору акций на годовую перспективу.
Тогда, в комментариях мне рассказали много всего полезного, но основные замечания над которыми я работал в течении недели были:
1. Бэктест был проведен всего на 3-х годах (что было обусловлено небольшим обучающим набором)
2. Граница принятия решения 1.01 обеспечивала «заглядывание в будущее» из-за того что использовала прошлогоднюю отчетность.
Я сместил границу принятия решения на апрель и расширил тренировочный датасет (и ещё провел кучу мелких улучшений, например вместо RMSE перешел на квантильную функцию потерь, что оказалось очень уместно). К сожалению, расширение тренировочного датасета ни на грамм не снизило ошибку при обучении на 20 годах, но теперь при уменьшении количества лет, качество страдает значительно меньше, что в свою очередь позволило мне провести бэктест на 7 годах (хотя в качестве 2014-го я сильно сомневаюсь).
С выборкой в 7 наблюдений, уже можно (зажмурившись) попытаться оценить статистическую доствоерность гипотезы о том что моя модель дает лучшие результаты чем S&P500 по итогам года. У меня получилось p-value ~ 0.03 (парный стьюдент-тест), что вроде-бы хорошо, но я что-то в этом сильно сомневаюсь и буду ещё перепроверять.

( Читать дальше )

Градиентный бустинг с годовой перспективой

Я весьма далек от инвестирования, но в свободное от всего остального время, люблю поиграться с машинным обучением. Недавно попробовал научить модель предсказывать цены на год вперед (на фундаментальных фичах без анализа временных рядов). Получилось не так чтобы супер, но и не совсем позор (MAPE ~ 18%). Потом я решил промоделировать: что будет если в начале года покупать акции с самым большим потенциалом роста. На 3 годах, модель один раз немного слила, а в остальные разы неплохо заработала. Графики ниже. Для каждого года переучивал модель на более ранних данных. Мне 42 года и большую часть из них я в сказки не верю, поэтому думаю что это выглядит слишком хорошо чтобы быть правдой. Если бы в природе существовали такие фичи, которые давали бы прибыль больше чем рандом, то наверное человечество бы их заметило и учло раньше меня. С другой стороны, обидно будет через некоторое время понять, что на этом можно было заработать, а я не воспользовался шансом. Соответственно сижу и думаю — что мне теперь с этим делать дальше. Поиграться на реальные деньги? Как-то боязно…

( Читать дальше )

100 акций и сетки

Продолжаю потихоньку добавлять новые акции для анализа в портфель и наконец добрался до 100 штук. Собираюсь включить все акции с дневным оборотом более 1% от величины портфеля (осталось примерно 25 штук), после чего заняться ETF. Чем больше акций, тем больше обучающих примеров для тренировки градиентного бустинга и сетей — сейчас около 180 тысяч, а в перспективе их количество увеличится до 250-300 тысяч.

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

Плюсом сетей является возможность реализации множества выходов — на данный момент экспериментирую с прогнозированием доходности одновременно с СКО по аналогии с GluonTS.

Для поиска гиперпараметров для градиентного бустинга использую байесовскую оптимизацию с помощью hyperopt. Для сетей решил попробовать



( Читать дальше )

MVP на нейронных сетях

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

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


От градиентного бустинга к нейронным сетям

В последние время причесал некоторые блоки своей программки по управлению портфелем. Из последнего добавил в качестве фичи оборот и получил известную зависимость, что малоликвидные бумаги в среднем имеют большую доходность (по горизонтали натуральный логарифм дневного оборота, по вертикали ожидаемая доходность).

От градиентного бустинга к нейронным сетям


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

В основном раньше имел дело с TF/Keras, но по ощущениям в последнее время подавляющая часть статей по сетям сопровождается кодом на PyTorch, поэтому решил изучить его и использовать в своей программе. В качестве обучения собираюсь принять участие в соревновании Кто поставит лайк без использования градиентного бустинга только с помощью PyTorch. Ну о потом приступить уже к использованию сеточек для прогнозирования доходности.


....все тэги
UPDONW
Новый дизайн