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

 
Forester #:
Думаю суть метода Алексея в том, что найдя кванты в которых очень плохие данные, он удаляет эти данные из общего набора.
Использует он видимо Катбуст, в котором алгоритм жадный, но благодаря чистке данных сплиты выбираются другие, чем до очистки данных. Возможно они лучше. Думаю это скорее иллюзия "не жадного" алгоритма полученная предобработкой данных. Разными предобработками/чистками данных можно получать разные варианты деревьев.


Реально нежадный алгоритм видимо можно получить только своим кодом дерева, любо готовым с такой функцией. Вроде бы есть пакеты с выбором сплита не по одному (текущему) сплиту, а с проверкой всех сплитов на 1 уровень глубже. (но возможно это экспериментальные коды, вроде в книге с основами МО про это читал). Если у вас 1000 фич, то скорость вычислений примерно в 1000 раз замедлится при этом. Это получится жадный на 2 уровня алгоритм.

Абсолютно нежадный алгоритм построит все возможные варианты деревьев. Например расчет с глубиной 6 и с 1000 фич даст  1000 * 1000 * 1000 * 1000 * 1000 * 1000 = 10^18 вариантов деревьев. Такое разве что для 10-20 фич можно посчитать в разумные сроки.
Вот тоже сомневаюсь в реальности нежадных деревьев на практике.
 
Aleksey Vyazmikin #:

Да - нормальный базовый сценарий.

+- 1 минута - время получения таких моделей, на автомате. Не учитывая время на разработку алго :)

особенно хорошо отрабатывают mean reversion кластеры на флэтовых парах

Есть особенности такой кухни, например по каким фичам делать кластеризацию.

 
Aleksey Vyazmikin #:

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

Вытаскиваете "эффективные" отрезки или сплиты в виде отдельных правил потом на финальном этапе, или как выделяете их из общей массы? чтобы финальная модель только их торговала.

То есть объяснить нужно как для дебилов: обучил модель, определил отрезки, потом что? Есть простая логика, чтобы воспроизвести?
 
Aleksey Vyazmikin #:

Я вижу Вы эрудированный человек - стереотипное мышление моё так и рисует картину человека, любимым делом которого в общественном транспорте является запись слов в кроссворде. Правда, стереотип, вероятно, устарел лет на 20 уже.

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

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

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

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

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

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

Поэтому, я акцентирую своё внимание на метрике вероятности выбора эффективного двойного сплита (квантового отрезка) на каждой итерации. Итоговая метрика выбора квантового отрезка из отобранной совокупности для сплитов и перехода на следующую итерацию может быть разной, этот вопрос для меня пока открыт.

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

Следующий график с более высокой планкой отбора - 50 итераций (быстрей идёт обучение).

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

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

Напомню, что мой алгоритм изначально создавался (у меня он просто называется "Drop", но "Дистилляция" - ближе по смыслу) не для построения конечного эффективного дерева решений, некой рыночной модели, а как способ разведки данных, с помощью которого можно отобрать более удачные сплиты для квантовых таблиц. Больший эффект от алгоритма, предположительно, можно получить при бинаризации отобранных квантовых отрезков. Несмотря на однобокость построения дерева решений в этом алгоритме, можно с уверенностью утверждать, что повышение числа эффективных на новых данных квантовых отрезков, в совокупности с совершенствованием метода отбора квантовых отрезков из полученного набора, приведёт к лучшему итоговому результату модели, но Recall будет небольшим.

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

Я смог ответить на Ваш вопрос?

То что вы представляете себе меня как нищеброда-формалиста никак не влияет на необходимость общения только в рамках единого понятийного пространства.

Вы хотите говорить о сложных понятиях не договорившись о простых, но это так не работает.

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

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

 

мicrosoft  Copilot  которым я +- часто пользуюсь уже начал учитывать прошлые сесии разговоров со мной.

Сегодня задал вопрос , а он мне в ответ код на R, я его спрашиваю

а почему ты предложыл мне пример кода именно на R

а он мне

Copilot
Я предложил пример кода на R, потому что в контексте наших предыдущих бесед вы выразили интерес к языку программирования R,
 анализу данных, машинному обучению и статистическим тестам. Вы задавали вопросы, связанные с линейной регрессией, PCA, FFT и 
другими статистическими концепциями на R. Поэтому я предположил, что пример на R будет для вас наиболее полезным. Если вы 
предпочитаете другой язык программирования, пожалуйста, дайте мне знать, и я буду рад помочь! 😊


мне страшно))

 
mytarmailS #:

мicrosoft  Copilot  которым я +- часто пользуюсь уже начал учитывать прошлые сесии разговоров со мной.

Сегодня задал вопрос , а он мне в ответ код на R, я его спрашиваю

а он мне


мне страшно))

Держитесь!

Цвет трусов на Вас ему, пока, не известен. 

 
mytarmailS #:
Что тогда изображено на каринеах по оси х и у

x - номер итерации алгоритма построения модели

y - процент отобранных квантовых отрезков, чьё смещение вероятности на новых данных такое же, как и на данных обучения. Иными словами - вероятность выбрать верный сплит при случайном выборе из отобранных вариантов.

 
Maxim Dmitrievsky #:

+- 1 минута - время получения таких моделей, на автомате. Не учитывая время на разработку алго :)

особенно хорошо отрабатывают mean reversion кластеры на флэтовых парах

Есть особенности такой кухни, например по каким фичам делать кластеризацию.

Да, направление перспективное. Но опять же стоит вопрос умного перебора комбинаций предикторов для проведения кластеризации.

Maxim Dmitrievsky #:

Вытаскиваете "эффективные" отрезки или сплиты в виде отдельных правил потом на финальном этапе, или как выделяете их из общей массы? чтобы финальная модель только их торговала.

То есть объяснить нужно как для дебилов: обучил модель, определил отрезки, потом что? Есть простая логика, чтобы воспроизвести?

Есть сейчас три варианта дальнейших действий:

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

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

3. Бинаризация, т.е. создание отдельной выборки по отобранным квантовым отрезкам и обучение на этих данных.

 
Aleksey Nikolayev #:
То что вы представляете себе меня как нищеброда-формалиста никак не влияет на необходимость общения только в рамках единого понятийного пространства.

Почему у Вас такое представление об эрудированном человеке? Я вообще ничего не писал о финансовом достатке...

Скорей это я нищеброд тут.

Aleksey Nikolayev #:

Вы хотите говорить о сложных понятиях не договорившись о простых, но это так не работает.

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

Aleksey Nikolayev #:
Могу тоже поделиться своим представлением о вас. Вы просто хотите признания за ту огромную работу, что делаете. Но этот форум - совершенно непригодное место для этого.

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

 
Aleksey Vyazmikin #:

То есть квантование это нарезка признака на более мелкие отрезки данных?

В левом верхнем углу оригинал пусть это будет условно индикатор стохастик, а все остальное это квантованые его версии.

Так ?