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

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


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

Абсолютно нежадный алгоритм построит все возможные варианты деревьев. Например расчет с глубиной 6 и с 1000 фич даст  1000 * 1000 * 1000 * 1000 * 1000 * 1000 = 10^18 вариантов деревьев. Такое разве что для 10-20 фич можно посчитать в разумные сроки.
 
Aleksey Nikolayev #:
В качестве эпиграфа, из Фауста Гёте: "Студент: Да, но словам ведь соответствуют понятья."

Акцентирую внимание на соответствии из эпиграфа. Интересуют вопросы: (1) считаете ли что ваш алгоритм даёт гарантированный (или хотя бы с бОльшей вероятностью) глобальный максимум ваших кастомных метрик? (2) Если ответ на первый вопрос "да", то за счёт чего это удаётся?

Если ответ на первый вопрос "нет", то вы просто смываете в унитаз возможность адекватного общения из-за произвольной подмены понятий.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 
mytarmailS #:
Те что вся суть этого хитрого алгоритма это обучаться не на обычных данных, а на центроидах кластеров этих данных?

И потом просто отбор лучшых правил из модели по какой то метрике

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

 
СанСаныч Фоменко #:

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

Просмотрел последние страницы, очень похоже на специфический толлинг.

Приведите и Вы примеры несоответствия терминов и содержания в моих словах.

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

Для снижения влияния терминологии, я уже неоднократно расписал суть развёрнутыми словами.

 
Aleksey Vyazmikin #:

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

Что тогда изображено на каринеах по оси х и у
 
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 будет для вас наиболее полезным. Если вы 
предпочитаете другой язык программирования, пожалуйста, дайте мне знать, и я буду рад помочь! 😊


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