Ответ
CatBoost поддерживает широкий спектр функций потерь, которые выбираются в зависимости от типа задачи.
Для задач классификации:
Logloss— логистическая функция потерь по умолчанию для бинарной классификации.CrossEntropy— используется для многоклассовой классификации.MultiClass/MultiClassOneVsAll— альтернативные варианты для многоклассовых задач.
Для задач регрессии:
RMSE(Root Mean Squared Error) — функция по умолчанию, чувствительна к выбросам.MAE(Mean Absolute Error) — более робастная к выбросам.Quantile— для квантильной регрессии (например, чтобы предсказать 90-й перцентиль).Poisson— для регрессии с данными, распределёнными по закону Пуассона (например, количество событий).
Для задач ранжирования (Learning to Rank):
YetiRankиYetiRankPairwise— эффективные функции для ранжирования.PairLogit— для попарного ранжирования.
Пример настройки для регрессии с MAE:
from catboost import CatBoostRegressor
model = CatBoostRegressor(
loss_function='MAE', # Используем Mean Absolute Error
iterations=500,
depth=6,
learning_rate=0.03,
verbose=100
)
model.fit(
X_train, y_train,
eval_set=(X_eval, y_eval),
cat_features=categorical_features_indices # CatBoost сам обработает категории
)
Выбор функции потерь напрямую влияет на то, какую ошибку модель минимизирует, что критично для достижения бизнес-метрик.