А можно уточнить по поводу параметра class_weights?
Например у меня 0 класс 90% случаев, и 1 класс -10% случаев
model = CatBoostClassifier(
class_weights=[0.1, 0.9],
....
Таким образом я балансирую классы и получаю правильные метрики?
Метрики будут правильные и при использовании весов, и без. Но нужно понимать, что если использовать перевзвешивание, то метрики будут учитывать веса. В подразделах раздела
https://tech.yandex.com/catboost/doc/dg/concepts/loss-functions-docpage/ можно посмотреть, как веса участвуют в метрике. Если хочется смотреть на метрику без учета весов, то нужно использовать MetricName:use_weights=False.
Ну и если вопрос, правда ли, что моя метрика улучшится от перевзвешивания семплов в несбалансированном датасете, то тут ответ такой: нужно попробовать и проверить. Может быть так и так.