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

 
Maxim Dmitrievsky:

ну а ты просто олень добрый день по жизни, и статус не меняешь

девочка секретница

ОО, Учитель))) Вот так же и с "моделями". Где олень, а где девочка, где 0,
а где 1... никак не определяется, все в одной куче))) угараю...

 
Vizard_:

ОО, Учитель))) Вот так же и с моделями. Где олень, а где девочка, где 0,
а где 1... никак не определяется, все в одной куче))) угараю...

долго думал как ответить, больше 10 минут.. специально готовился еще поди, скрины подготавливал, переживал

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

ну что же, велком бэк )))

 
Maxim Dmitrievsky:

скорость обучения хорошая, отклик при использовании и время загрузки структуры плохие, т.к. файлы леса большие. У меня доходили до 300 мб.

с сериализацией что-то не так. Лес обучается и сохраняется быстрее, чем потом обратно загружается из файла.

Если там написано что лес теперь генерирует на порядки меньше файлы, то это очень большое ускорение

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


Все что написано про лес в описании обновления:
improved random forests construction algorithm, which is from 2x to 10x faster than previous version and produces orders of magnitude smaller forests.

В старой версии структура данных такая:

//---     node info:

//--- W[K+0]       -   variable number        (-1 for leaf mode)
//--- W[K+1]       -   threshold              (class/value for leaf node)
//--- W[K+2]       -   ">=" branch index      (absent for leaf node)

В новой те же 3 переменных сохраняется для узла и 2 для листа.
И дерево строится точно так же - до последнего примера с 0-й ошибкой. Прунинга не увидел.
Единственное что увидел в комментах к коду про ускорение
            SplitStrength-  split type:
                            * 0 = split at the random position, fastest one
                            * 1 = split at the middle of the range (разбивает посередине)
                            * 2 = strong split at the best point of the range (default) (разбивает по квартилям)

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

Можно просто дописать в ф-ю разбиения выбор случайной точки. Правка в 2-3 строки)))

 
elibrarius:

Я английский не очень хорошо знаю.
Все что написано про лес:
improved random forests construction algorithm, which is from 2x to 10x faster than previous version and produces orders of magnitude smaller forests.

В старой версии структура данных такая:

//---     node info:

//--- W[K+0]       -   variable number        (-1 for leaf mode)
//--- W[K+1]       -   threshold              (class/value for leaf node)
//--- W[K+2]       -   ">=" branch index      (absent for leaf node)

В новой те же 3 переменных сохраняется для узла и 2 для листа.
И дерево строится точно так же - до последнего примера с 0-й ошибкой. Прунинга не увидел.
Единственное что увидел в комментах к коду про ускорение
            SplitStrength-  split type:
                            * 0 = split at the random position, fastest one
                            * 1 = split at the middle of the range (разбивает посередине)
                            * 2 = strong split at the best point of the range (default) (разбивает по квартилям)

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

т.е. теперь способ разбиения можно настраивать? Но по дефолту все равно стоит самый медленный

о ну можно самостоятельно переделать тогда, да :)

 
Maxim Dmitrievsky:

т.е. теперь способ разбиения можно настраивать? Но по дефолту все равно стоит самый медленный

о ну можно самостоятельно переделать тогда, да :)

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

да, или архивчик сохранить

ну тогда поэксперементируем-с, спасибо что поковыряли, полезно

может, таим же макаром туда можно и байесовские деревья прикрутить, если разобраться
 
elibrarius:

Так понял, что здесь можно попробовать что-то изменить

//+------------------------------------------------------------------+
//| Makes split on attribute                                         |
//+------------------------------------------------------------------+
static void CDForest::DFSplitC(double &x[],int &c[],int &cntbuf[],const int n,
                               const int nc,const int flags,int &info,
                               double &threshold,double &e,double &sortrbuf[],
                               int &sortibuf[])
 
Maxim Dmitrievsky:

Так понял, что здесь можно попробовать что-то изменить

да. Ну и в DFSplitR продублировать, чтобы регрессионные леса тоже имели аналогичный функционал

 
Maxim Dmitrievsky:

Так понял, что здесь можно попробовать что-то изменить

Ну что уменьшился размер деревьев и леса в целом?
Что с ошибкой улучшилась/ухадшилась? По идее - не должна, т.к. до последней точки разделение идет.
 

Не надо на Макса бочку катить.

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

Убери щас эту ветку - и все, вообще читать на форуме будет нечего, только в чужих позорных программных кодах разбираться - где там "+" и "-" попутаны.

Причина обращения: