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

 
mytarmailS:
Алексей, как же ты не понимаешь что все твои 5к бинарных признаков можно заменить 2-3 -умя главными компонннтами, тобишь 2-3 признака и все)) но это надо делать чтобы знать...

Откуда такие выводы о моем понимании или нет? Тема МГУА мной незатронута, так как нет реального опыта применения. Готовы мои признаки сжать до 2-3? Мне будет интересно на это посмотреть и сравнить с моим подходом. Раз у Вас всё уже на это заточено, то, думаю, это не составит труда?

mytarmailS:
Также ты не понимаешь что вся твоя крутая модель с 5к признаками, может быть всего одним признаком из сотен других для модели более выше рангом, а та в свою очередь будет признаком для еще более высшей модели...

Вот такими категориями я сейчас мыслю 

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

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

 
mytarmailS:
Почитай того же Ивахненко МГУА, на сколько проработаные и глубокие концепции,  когда я его читаю я ощущаю себя первокласником в МО...

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

 
mytarmailS:

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

Фанат фильма матрица?

 

Тут подумал, как можно улучшить метод отбора предикторов/признаков/фичей через анализ полученной модели.

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


Отбор предикторов по частоте их использования (Feature importance) при создании модели CatBoost

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

Однако, для оценки равномерности по шкале времени, будем использовать множество выборок и сводить их данные в единую таблицу. Такой подход позволит отсеять случайные события, оказавшие сильное влияние на выбор предиктора в одной из моделей. Закономерности, на которых построена модель, должны встречаться на протяжении всей выборки, что может способствовать правильной классификации на новых данных. Данная особенность применима к данным, получаемым с рынка, т.е. данным не имеющим завершенности, в том числе со скрытой цикличностью, т.е. не временной, а событийной. При этом желательно штрафовать предикторы, которые в одном из участков не вошли в 30%-50% лучших, что позволит отобрать предикторы, которые наиболее часто оказываются востребованы при создании моделей на разных временных участках.

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

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

Получить таблицу квантования можно:

  1. Установив гиперпараметры для CatBoost по типу и числу разбиений на кванты всей учебной выборки, и сохранить результаты в csv.
  2. Установив гиперпараметры для CatBoost по типу и числу разбиений на кванты выбрав один из участков выборки, допустим самый лучший, и сохранить результаты в csv.
  3. Получить таблицу с помощью отдельного скрипта, который выбирает лучшие варианты из множества таблиц.
Ранее полученные таблицы используются для каждой выборки через принудительную загрузку таблицы при обучении.
 
К бутсу можно подключить shap values и посмотреть взаимодействие фичей на выходе на любых данных, это для тех кто любит копаться в нижнем белье, вроде Алексея :) Есть ещё подобные библиотеки по типу Lime и не зависящие от конкретной модели. Конечно, если анализировать сотни бессмысленных признаков, то любая такая затея обречена. Это простая рутинная работа и за вас ее вряд ли кто-то сделает забесплатно, ибо невероятная убивалка времени с известным исходом.
 
Maxim Dmitrievsky:
К бутсу можно подключить shap values и посмотреть взаимодействие фичей на выходе на любых данных, это для тех кто любит копаться в нижнем белье, вроде Алексея :) 

Вопрос метрики открыт, есть разные варианты - надо пробовать, какой показатель будет лучше - влияние на модель, число разбиений, число правильных примеров после разбиения - метрики разные. Вопрос в корректности их использования для поставленной задачи. Кстати, на сколько я помню  shap values нельзя было в ранних билдах использовать для командной строки, а так можно скрипт для визуализации сделать.

 
Maxim Dmitrievsky:
Конечно, если анализировать сотни бессмысленных признаков, то любая такая затея обречена. Это простая рутинная работа и за вас ее вряд ли кто-то сделает забесплатно, ибо невероятная убивалка времени с известным исходом.

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

Сомневаетесь в приросте качества классификации после манипуляций?
 
Aleksey Vyazmikin:

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

Сомневаетесь в приросте качества классификации после манипуляций?
Не вижу полной картины почему это может работать. 
 
Maxim Dmitrievsky:
Не вижу полной картины почему это может работать. 

Допустим в выборке есть случайные предикторы, фактически шум, целью является чистка шума.

Считаете, что это не улучшит результат?

 
Aleksey Vyazmikin:

Допустим в выборке есть случайные предикторы, фактически шум, целью является чистка шума.

Считаете, что это не улучшит результат?

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