CatBoost — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «Статья посвящена работе с библиотекой CatBoost»)
 
Строка 1: Строка 1:
 
Статья посвящена работе с библиотекой CatBoost
 
Статья посвящена работе с библиотекой CatBoost
 +
 +
 +
 +
----
 +
 +
Режимы работы:
 +
1) Регрессия  (mse - функция потерь)
 +
2) Классификация (надо сделать вероятности, функция потерь - максимизируем вероятность того что все объекты в обучающей выборке классифицированы правильно, вероятность - это сигмоида над значением формулы) predict_proba - для вероятности (складывать нельзя)/ predict - просто рез (и тут можно складывать значени] нескольких моделей)
 +
3) Мультиклассификация
 +
4) Ранжирования - (объекты с попарной классификацией)
 +
Максимизируем вероятность что как можно больше пар будут в правильном порядке отранжировано
 +
Ранжирование - есть сет данных и есть таргет и есть группы (запросы, дс разбит по группам, нужно лучше отранжировать группу) из группы делаем набор пар и делаем как в пред пункте) Применение ( не важно абсолютное значение формулы)
 +
 +
----
 +
 +
 +
Оптимизируемые функции:
 +
Поддерживает много оптимизируетмых функций. Для конкретной модели выбирается одна оптимизируемая функция.
 +
 +
----
 +
 +
 +
Метрики:
 +
Поддерживает много метрик.
 +
 +
 +
----
 +
 +
Шаги обучения:
 +
 +
 +
1) Строим дерево
 +
2) Считаем значение в листьях
 +
 +
----
 +
 +
 +
1) Построение дерева:
 +
 +
Процесс построения происходит жадно. Выбираем первую вершину, далее выбираем лучшее дерево с одной вершиной. Далее смотрим скоры и выбираем лучшее дерево.
 +
Дерево строится по слоям. Гарантировано на каждом слое один и тот же сплит (условие, по которому мы делим)
 +
 +
Как выбрать лучшее дерево?
 +
Смотрим на сколько меняется функция ошибки, выбираем такое дерево, чтобы оно как можно лучше приближало вектор градиентов.
 +
 +
----
 +
 +
 +
В основе CatBoost лежит грдиентный бустинг.
 +
Как работает градиентный бустинг?
 +
 +
 +
'''Градиент функции ошибки - все производные по всем значениям функции'''
 +
 +
Отметим, что существует идеальный шаг по градиенту, однако листьев в дереве меньше, чем документов в датасете.
 +
Поэтому мы можем пытаться приближать тот самый идеальный шаг.
 +
Чтобы найти лучший сплит, проверяем похожесть после одного шага алгоритма по градиенту - это скор.
 +
 +
 +
----
 +
Работа с датасетом:
 +
 +
CatBoost поддерживает несколько режимов выборки данных:
 +
 +
1) Бутстрап Бернулли - выбираем документ с вероятностью ''p''. Регулируется параметром ''sample rate''
 +
2) Байесовский бутстрап - байесовское распределение. Регулируется параметром ''bagging temp''
 +
 +
 +
Отметим, что бутстрап используется только для выбора структуры дерева, для подсчета значения в листьях используем всю выборку. Это сделано так как выбор структуры дерева происходит долго, нужно несколько раз пересчитывать значения, поэтому использовать всю выборку - слишком дорого. Однако значения в листьях с уже готовой структурой дерева считаются один раз, и для большей точности можно позволить использовать весь датасет.
 +
 +
 +
----
 +
Рандомизация скора
 +
 +
Есть рандомизация скора. ''Score += random_strength *  Rand (0, lenofgrad * q)'', где ''q'' - множитель, уменьшающийся при увеличении итерации. Таким образом, рандом уменьшается ближе к концу.рандома

Версия 23:37, 7 ноября 2018

Статья посвящена работе с библиотекой CatBoost



Режимы работы: 1) Регрессия (mse - функция потерь) 2) Классификация (надо сделать вероятности, функция потерь - максимизируем вероятность того что все объекты в обучающей выборке классифицированы правильно, вероятность - это сигмоида над значением формулы) predict_proba - для вероятности (складывать нельзя)/ predict - просто рез (и тут можно складывать значени] нескольких моделей) 3) Мультиклассификация 4) Ранжирования - (объекты с попарной классификацией) Максимизируем вероятность что как можно больше пар будут в правильном порядке отранжировано Ранжирование - есть сет данных и есть таргет и есть группы (запросы, дс разбит по группам, нужно лучше отранжировать группу) из группы делаем набор пар и делаем как в пред пункте) Применение ( не важно абсолютное значение формулы)



Оптимизируемые функции: Поддерживает много оптимизируетмых функций. Для конкретной модели выбирается одна оптимизируемая функция.



Метрики: Поддерживает много метрик.



Шаги обучения:


1) Строим дерево 2) Считаем значение в листьях



1) Построение дерева:

Процесс построения происходит жадно. Выбираем первую вершину, далее выбираем лучшее дерево с одной вершиной. Далее смотрим скоры и выбираем лучшее дерево. Дерево строится по слоям. Гарантировано на каждом слое один и тот же сплит (условие, по которому мы делим)

Как выбрать лучшее дерево? Смотрим на сколько меняется функция ошибки, выбираем такое дерево, чтобы оно как можно лучше приближало вектор градиентов.



В основе CatBoost лежит грдиентный бустинг. Как работает градиентный бустинг?


Градиент функции ошибки - все производные по всем значениям функции

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



Работа с датасетом:

CatBoost поддерживает несколько режимов выборки данных:

1) Бутстрап Бернулли - выбираем документ с вероятностью p. Регулируется параметром sample rate 2) Байесовский бутстрап - байесовское распределение. Регулируется параметром bagging temp


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



Рандомизация скора

Есть рандомизация скора. Score += random_strength * Rand (0, lenofgrad * q), где q - множитель, уменьшающийся при увеличении итерации. Таким образом, рандом уменьшается ближе к концу.рандома