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

 
Aleksey Vyazmikin:

Это способы квантования выборки для CatBoost - именно по этим границам потом идет перебор/обучение.

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

1) Так и происходит. Берется отдельный столбец сортируется и разделяется на кванты.

2) Именно так он и делает, - с чего вы взяли?

 
elibrarius:

Uniform - просто диапазон значений делим, например значения в столбце от 0 до 100, шаг кванта = 100/255 = 0,39 только не в строках, а в значениях. Т.е. 0,0.39,0,78 .... 99.61

Потом можно найти по этим значения реально присутствующие в столбце и удалить дубликаты.


UniformAndQuantiles - просто ищем половину 255/2 = 127 квантов по 1 методу и 128 по второму, и объединяем в один массив.

Остальные 3 метода сложные - я не стал смотреть.

Вот эти сложные и интересуют :)

А по  UniformAndQuantiles теорию я знаю, а вот как это в реале не понимаю - как определить область где так квантуем, а где сяк. Тут не понимаю - или до середины одним методом, а после другим - но это бредово.

 
Aleksey Vyazmikin:

Выбор правильного разбиения существенно влияет на результат.

Вот пример по Recall - до 50% разброс - для меня это существенно.

Увеличение границ с 8 до 512 с шагом 512 - правда на гистограмме не по порядку - у меня названия немного этому препятствуют.


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

Берите 65535 квантов и не парьтесь. Вычисления будут максимально точными.

 
Aleksey Vyazmikin:

Вот эти сложные и интересуют :)

А по  UniformAndQuantiles теорию я знаю, а вот как это в реале не понимаю - как определить область где так квантуем, а где сяк. Тут не понимаю - или до середины одним методом, а после другим - но это бредово.

Да

 
elibrarius:

1) Так и происходит. Берется отдельный столбец сортируется и разделяется на кванты.

2) Именно так он и делает, - с чего вы взяли?

Он не умеет оценивать связь целевой и набора значений при квантовании. Разбиение сетки происходит на заданное число отрезков, если это возможно, для всех предикторов, а это не всегда нужно. Зато CatBoost умеет работать с подаваемой (отдельно  подготовленной) сеткой квантования, чем я и пользуюсь.

 
elibrarius:

Берите 65535 квантов и не парьтесь. Вычисления будут максимально точными.

Нет же, это будет подгонка просто, а не модель со смыслом!

 
elibrarius:

Да

Весьма странно.

 
Aleksey Vyazmikin:

Он не умеет оценивать связь целевой и набора значений при квантовании. Разбиение сетки происходит на заданное число отрезков, если это возможно, для всех предикторов, а это не всегда нужно. Зато CatBoost умеет работать с подаваемой (отдельно  подготовленной) сеткой квантования, чем я и пользуюсь.

А вы умеете?

 
Aleksey Vyazmikin:

Нет же, это будет подгонка просто, а не модель со смыслом!

Не согласен. Квантованием вы уменьшаете количество информации. Максимальное число квантования оставит максимум информации.

Но квантовать на 65535 дольше чем на 255.

 
elibrarius:

А вы умеете?

Да, я работаю над этим - изначально это делалось для генетических деревьев.

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