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

 
elibrarius:

Ну подставьте вместо предиктора, у которого макимум был 0,2 значение из др. предиктора со значением от 800 до 300000? И окажется он  всегда будет уходить в правые ветви. А нам надо проверить и правую и левую ветви.
Нормировка поможет уложиться в диапазон, но распределение вероятностей может быть другим, в результате правые ветки будут срабатывать чаще, чем левые или наоборот.
Или я не понял вашу идею и мы говорим о разном.

Убирая предиктор мы выкидываем узлы разделяющие данные по нему (при чем тут отдельный лист?). При отбросе каждого узла нужно проверять 2 ветки. Если отбросим 10 узлов, то мы получим 11 вариантов с 11 листами в качестве ответа. Это надо усреднять, прогон всей выборки с перемешанным столбцом примерно это и покажет в изменении итоговой ошибки дерева/леса.
Почитайте статью про pemutation  - там все подробно описывается.

Мой метод это не pemutation, поэтому я не могу его воспроизводить.

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

Конечно, я согласен, что часть предикторов сделают измененное правило листа полностью не функциональным на той же части выборки, но это не проблема, так-как цель найти лучший аналог и сравнивать только с ним - нормально, что часть предикторов, разделяющих по сплиту выборку будет потеряна, но как правило это касается только ряда значения для отдельно взятого предиктора. К примеру у нас есть лист из трех предикторов A>3 && B<1 && C>=20, есть ещё не вошедшие в правила листа предикторы D и E, соответственно нам нужно убрать поочередно каждый предиктор, для начала A и заменять его на D и Е с шагом по сетке разбиения значений предиктора и с разными знаками неравенства, при этом проверять каждое новое правило на тех же участках выборки, где активировался оригинал и получать статистику точности классификации для каждого правила. И, соответственно лучший вариант сравнивать уже с оригиналом и давать этому сравнению оценку. Проделать данную процедуру по всем листьям. При этом исключить те листья, которые дублируются. Важно оценивать не результат дерева, как совокупности правил, а каждое правило, изложенное в листе отдельно от других.

Я пытаюсь определять не важность предиктора для построения дерева по принципу жадности, а важность предиктора для стабильности работы правила (листа), предложенного моделью.
 
Aleksey Vyazmikin:

Мой метод это не pemutation, поэтому я не могу его воспроизводить.

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

Конечно, я согласен, что часть предикторов сделают измененное правило листа полностью не функциональным на той же части выборки, но это не проблема, так-как цель найти лучший аналог и сравнивать только с ним - нормально, что часть предикторов, разделяющих по сплиту выборку будет потеряна, но как правило это касается только ряда значения для отдельно взятого предиктора. К примеру у нас есть лист из трех предикторов A>3 && B<1 && C>=20, есть ещё не вошедшие в правила листа предикторы D и E, соответственно нам нужно убрать поочередно каждый предиктор, для начала A и заменять его на D и Е с шагом по сетке разбиения значений предиктора и с разными знаками неравенства, при этом проверять каждое новое правило на тех же участках выборки, где активировался оригинал и получать статистику точности классификации для каждого правила. И, соответственно лучший вариант сравнивать уже с оригиналом и давать этому сравнению оценку. Проделать данную процедуру по всем листьям. При этом исключить те листья, которые дублируются. Важно оценивать не результат дерева, как совокупности правил, а каждое правило, изложенное в листе отдельно от других.

Я пытаюсь определять не важность предиктора для построения дерева по принципу жадности, а важность предиктора для стабильности работы правила (листа), предложенного моделью.
Я пока что лесами занимаюсь. Так что в вашем направлении МО  - вам виднее что делать)
 
elibrarius:
Я пока что лесами занимаюсь. Так что в вашем направлении МО  - вам виднее что делать)

Так и получается, что каждый тут о своем :)

Скажите, реально ли реализовать на той же Alglib возможность построения леса только с уникальными значениями предикторов, или хотя бы с уникальными сплитами? Деревьев будет меньше конечно, но зато они не будут дублировать свои ошибки/правильные ответы, что по идеи должно давать большую правдоподобность вне выборки обучения.

 
Aleksey Vyazmikin:

Скажите, реально ли реализовать на той же Alglib возможность построения леса только с уникальными значениями предикторов, или хотя бы с уникальными сплитами? Деревьев будет меньше конечно, но зато они не будут дублировать свои ошибки/правильные ответы, что по идеи должно давать большую правдоподобность вне выборки обучения.

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

 
elibrarius:

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

В слово "реально" я заложил "на сколько просто"...

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

 
Aleksey Vyazmikin:

В слово "реально" я заложил "на сколько просто"...

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

Сложно конечно.
Но база есть в виде функции построения дерева. Вот ее то и можно переделывать по своему усмотрению.
 
elibrarius:
Сложно конечно.
Но база есть в виде функции построения дерева. Вот ее то и можно переделывать по своему усмотрению.

Спасибо за ответ. Вы хорошо разобрались в коде, не планируете публичного релиза с улучшениями алгоритма построения дерева? Даже такие вещи, как глубина дерева или встроенный прунинг до определяемого размера числа наблюдений правила, были бы очень там полезны. Сам я не стал пользоваться Alglib, но есть те, кому может быть это очень полезно.

 
Aleksey Vyazmikin:

Спасибо за ответ. Вы хорошо разобрались в коде, не планируете публичного релиза с улучшениями алгоритма построения дерева? Даже такие вещи, как глубина дерева или встроенный прунинг до определяемого размера числа наблюдений правила, были бы очень там полезны. Сам я не стал пользоваться Alglib, но есть те, кому может быть это очень полезно.

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

А разобраться просто. Надо несколько часов посмотреть на код и все станет ясно.
 
elibrarius:

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

А разобраться просто. Надо несколько часов посмотреть на код и все станет ясно.

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

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

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

 
Aleksey Vyazmikin:

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

Я еще леса не до конца исследовал. Поэтому на что-то другое отвлекаться нет времени.
Причина обращения: