Компания Яндекс объявила об открытии исходных текстов библиотеки машинного обучения CatBoost, которая реализует механизм градиентного бустинга на деревьях решений и позиционируется в качестве преемника алгоритма MatrixNet, применяемого в сервисах Яндекса для ранжирования, прогнозирования и формирования рекомендаций. Код библиотеки написан на языке C++ и распространяется под лицензией Apache 2.0. Для библиотеки подготовлены биндинги для языков Python и R, а также инструментарий командной строки и интерфейс визуализации процесса обучения.

В отличие от MatrixNet в CatBoost реализован более универсальный алгоритм, который не ограничивается числовыми данными при обучении модели, выдаёт более точные результаты при ранжировании данных и подходит для решения более широкого спектра задач, вплоть до промышленности и банковской сферы (например, прогнозирование расхода купюр в банкоматах). В настоящее время CatBoost уже внедрён для ранжирования ленты рекомендаций в zen.yandex.ru и применяется для расчёта прогноза погоды в Яндекс Погода. Кроме Яндекса CatBoost применяется в Европейском центре ядерных исследований (ЦЕРН) для обработки данных эксперимента LHCb на Большом адронном коллайдере.

Предлагаемый в CatBoost метод машинного обучения позволяет учитывать категориальные признаки и эффективно обучать модели на разнородных данных, таких как местонахождение пользователя, история операций и тип устройства. При этом, CatBoost демонстрирует очень хорошую производительность, обгоняя при решении различных задач классификации данных такие библиотеки, как LightGBM, XGBoost и H2O. Предоставляемый библиотекой API достаточно прост и требует написания около 10 строк кода для выполнения задач по классификации данных. Создание и тренировка модели может производиться из командной строки.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46877