Как выбирали CatBoost
Что проверяют
Выбираете ли вы инструмент через эксперимент, а не по репутации. Интервьюер хочет услышать постановку сравнения: какие данные, какие кандидаты, какая валидация и метрика. Следом обычно спрашивают, чем обработка категориальных признаков в CatBoost отличается от LightGBM и XGBoost.
Как отвечать
Нужны ваша история и ваши цифры. Каркас:
- данные и ограничения: табличные данные, много категориальных признаков с высокой кардинальностью, требования к скорости инференса и интерпретируемости;
- кандидаты: логистическая регрессия как бейзлайн, LightGBM, XGBoost, CatBoost;
- честное сравнение: одинаковые разбиения, для данных со временем валидация по времени, подбор гиперпараметров для каждой библиотеки, ранняя остановка, метрика под задачу (ROC AUC, PR AUC при дисбалансе, logloss, если важны вероятности);
- итог: что выиграли и чем заплатили.
Что знать о CatBoost, чтобы объяснить выбор:
- категориальные признаки: передаются через
cat_featuresбез ручного кодирования. Внутри упорядоченные target statistics: признак кодируется только по предыдущим объектам в случайной перестановке, это снижает утечку таргета; - ordered boosting: борется со сдвигом предсказаний, когда модель учится и оценивается на одних данных;
- симметричные (oblivious) деревья: быстрый инференс, работа как регуляризация, хорошие параметры по умолчанию;
- интерпретация:
get_feature_importance, в том числе SHAP-значения.
Минусы тоже назовите: на CPU и больших выборках LightGBM часто обучается быстрее, а у LightGBM и XGBoost есть своя поддержка категорий. Если библиотеку выбрали до вас, так и скажите и объясните, как проверили бы этот выбор сейчас.
Где спотыкаются
Говорят «взяли CatBoost, потому что он хорошо работает с категориями» без сравнения. Это пересказ документации, а не выбор.
Сравнивают настроенный CatBoost с XGBoost на дефолтах и one-hot или делают target encoding до разбиения на фолды. Выигрыш тогда даёт утечка или условия сравнения, а не библиотека.
Приводят круглые проценты вроде «обучение ускорилось на 30%», хотя CatBoost на CPU обычно медленнее LightGBM. Такая цифра вызывает вопросы.