Изменения
CatBoost
,Нет описания правки
Статья посвящена работе с библиотекой CatBoost
----
== Режимы работы ==
----
== Оптимизируемые функции ==
----
== Метрики ==
Поддерживает много метрик.
----
== Шаги обучения ==
----
== Построение дерева ==
Процесс построения происходит жадно. Выбираем первую вершину, далее выбираем лучшее дерево с одной вершиной. Далее смотрим скоры и выбираем лучшее дерево.
----
== Как работает градиентный бустинг? ==
Отметим, что бутстрап используется только для выбора структуры дерева, для подсчета значения в листьях используем всю выборку. Это сделано так как выбор структуры дерева происходит долго, нужно несколько раз пересчитывать значения, поэтому использовать всю выборку - слишком дорого. Однако значения в листьях с уже готовой структурой дерева считаются один раз, и для большей точности можно позволить использовать весь датасет.
----
== Рандомизация скора ==
Есть рандомизация скора. ''Score += random_strength * Rand (0, lenofgrad * q)'', где ''q'' - множитель, уменьшающийся при увеличении итерации. Таким образом, рандом уменьшается ближе к концу.рандома
----
== Бинаризация фичей ==
* Uniform. Равномерно разбиваем отрезок от минимума значения для данной фичи до максимума.
* Медианная сетка. Задаем количество разбиений над множеством значений, далее идем по объектам в порядке сортировки и разбиваем на группы по k объектов, где k - количество объектов в одном слоте разбиения.
* UniformAndQuantiles. Комбинация 1 и 2 пунктов.
----
== Работа с категориальными фичами ==
Лучше не делать препроцессинг самим, из-за проблем, описанных выше. В CatBoost можно задать параметр cat_features, передав туда индексы категориальных фичей. Также можно отрегулировать параметр ''one_hot_max_size'' - максимальное количество различных значений у категориальной фичи, чтобы она могла в последствии быть подвержена one-hot encoding.
----
== Подбор параметров ==