Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 1278
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну подставьте вместо предиктора, у которого макимум был 0,2 значение из др. предиктора со значением от 800 до 300000? И окажется он всегда будет уходить в правые ветви. А нам надо проверить и правую и левую ветви.
Нормировка поможет уложиться в диапазон, но распределение вероятностей может быть другим, в результате правые ветки будут срабатывать чаще, чем левые или наоборот.
Или я не понял вашу идею и мы говорим о разном.
Убирая предиктор мы выкидываем узлы разделяющие данные по нему (при чем тут отдельный лист?). При отбросе каждого узла нужно проверять 2 ветки. Если отбросим 10 узлов, то мы получим 11 вариантов с 11 листами в качестве ответа. Это надо усреднять, прогон всей выборки с перемешанным столбцом примерно это и покажет в изменении итоговой ошибки дерева/леса.
Почитайте статью про pemutation - там все подробно описывается.
Мой метод это не pemutation, поэтому я не могу его воспроизводить.
Я исхожу из другого, что лист - это уже завершенное правило - признак какого либо наблюдения, и оно вполне может уже существовать без структуры дерева. Дерево - инструмент для генерации правил из наблюдений.
Конечно, я согласен, что часть предикторов сделают измененное правило листа полностью не функциональным на той же части выборки, но это не проблема, так-как цель найти лучший аналог и сравнивать только с ним - нормально, что часть предикторов, разделяющих по сплиту выборку будет потеряна, но как правило это касается только ряда значения для отдельно взятого предиктора. К примеру у нас есть лист из трех предикторов A>3 && B<1 && C>=20, есть ещё не вошедшие в правила листа предикторы D и E, соответственно нам нужно убрать поочередно каждый предиктор, для начала A и заменять его на D и Е с шагом по сетке разбиения значений предиктора и с разными знаками неравенства, при этом проверять каждое новое правило на тех же участках выборки, где активировался оригинал и получать статистику точности классификации для каждого правила. И, соответственно лучший вариант сравнивать уже с оригиналом и давать этому сравнению оценку. Проделать данную процедуру по всем листьям. При этом исключить те листья, которые дублируются. Важно оценивать не результат дерева, как совокупности правил, а каждое правило, изложенное в листе отдельно от других.
Я пытаюсь определять не важность предиктора для построения дерева по принципу жадности, а важность предиктора для стабильности работы правила (листа), предложенного моделью.Мой метод это не pemutation, поэтому я не могу его воспроизводить.
Я исхожу из другого, что лист - это уже завершенное правило - признак какого либо наблюдения, и оно вполне может уже существовать без структуры дерева. Дерево - инструмент для генерации правил из наблюдений.
Конечно, я согласен, что часть предикторов сделают измененное правило листа полностью не функциональным на той же части выборки, но это не проблема, так-как цель найти лучший аналог и сравнивать только с ним - нормально, что часть предикторов, разделяющих по сплиту выборку будет потеряна, но как правило это касается только ряда значения для отдельно взятого предиктора. К примеру у нас есть лист из трех предикторов A>3 && B<1 && C>=20, есть ещё не вошедшие в правила листа предикторы D и E, соответственно нам нужно убрать поочередно каждый предиктор, для начала A и заменять его на D и Е с шагом по сетке разбиения значений предиктора и с разными знаками неравенства, при этом проверять каждое новое правило на тех же участках выборки, где активировался оригинал и получать статистику точности классификации для каждого правила. И, соответственно лучший вариант сравнивать уже с оригиналом и давать этому сравнению оценку. Проделать данную процедуру по всем листьям. При этом исключить те листья, которые дублируются. Важно оценивать не результат дерева, как совокупности правил, а каждое правило, изложенное в листе отдельно от других.
Я пытаюсь определять не важность предиктора для построения дерева по принципу жадности, а важность предиктора для стабильности работы правила (листа), предложенного моделью.Я пока что лесами занимаюсь. Так что в вашем направлении МО - вам виднее что делать)
Так и получается, что каждый тут о своем :)
Скажите, реально ли реализовать на той же Alglib возможность построения леса только с уникальными значениями предикторов, или хотя бы с уникальными сплитами? Деревьев будет меньше конечно, но зато они не будут дублировать свои ошибки/правильные ответы, что по идеи должно давать большую правдоподобность вне выборки обучения.
Скажите, реально ли реализовать на той же Alglib возможность построения леса только с уникальными значениями предикторов, или хотя бы с уникальными сплитами? Деревьев будет меньше конечно, но зато они не будут дублировать свои ошибки/правильные ответы, что по идеи должно давать большую правдоподобность вне выборки обучения.
Конечно. MQL - позволяет запрограммировать что угодно, как и любой др. язык. И Alglib можно перелопатить до неузнаваемости под свои идеи.
Конечно. MQL - позволяет запрограммировать что угодно, как и любой др. язык. И Alglib можно перелопатить до неузнаваемости под свои идеи.
В слово "реально" я заложил "на сколько просто"...
Но из ответа я понял настрой, спасибо, не буду беспокоить.
В слово "реально" я заложил "на сколько просто"...
Но из ответа я понял настрой, спасибо, не буду беспокоить.
Но база есть в виде функции построения дерева. Вот ее то и можно переделывать по своему усмотрению.
Сложно конечно.
Но база есть в виде функции построения дерева. Вот ее то и можно переделывать по своему усмотрению.
Спасибо за ответ. Вы хорошо разобрались в коде, не планируете публичного релиза с улучшениями алгоритма построения дерева? Даже такие вещи, как глубина дерева или встроенный прунинг до определяемого размера числа наблюдений правила, были бы очень там полезны. Сам я не стал пользоваться Alglib, но есть те, кому может быть это очень полезно.
Спасибо за ответ. Вы хорошо разобрались в коде, не планируете публичного релиза с улучшениями алгоритма построения дерева? Даже такие вещи, как глубина дерева или встроенный прунинг до определяемого размера числа наблюдений правила, были бы очень там полезны. Сам я не стал пользоваться Alglib, но есть те, кому может быть это очень полезно.
Разобраться и делать релизы - разные вещи. Я пока экспериментирую. Сейчас вот предикторы перемешиваю. Может и заброшу, как забросил НС из за неспособности бороться с шумом.
А разобраться просто. Надо несколько часов посмотреть на код и все станет ясно.Разобраться и делать релизы - разные вещи. Я пока экспериментирую. Сейчас вот предикторы перемешиваю. Может и заброшу, как забросил НС из за неспособности бороться с шумом.
А разобраться просто. Надо несколько часов посмотреть на код и все станет ясно.Да, конечно это разные вещи, но умелые руки на многое способны! Мне же сложно бывает понять чужой код, поэтому даже не лезу во внутрь.
А лес, так он по своей концепции шуметь всегда будет (по сути белый шум должен перекрываться шумом с более уверенными коллективными ответами), так-как работает не за счет качества, а количества, думаю, что нужно как то контролировать в большей мере и качество деревьев и их уникальность.
Не понимаю, почему не нравиться моя идея по сбору листьев с деревьев - а там уж хочешь голосование устраивай, или напротив старайся распределить листья так, что бы они не перекрывались на выборке... шума то явно меньше, но важно, что бы правило в листе имело реальный смысл, тогда оно и устойчиво будет во времени.
Не понимаю, почему не нравиться моя идея по сбору листьев с деревьев - а там уж хочешь голосование устраивай, или напротив старайся распределить листья так, что бы они не перекрывались на выборке... шума то явно меньше, но важно, что бы правило в листе имело реальный смысл, тогда оно и устойчиво будет во времени.