用于 class 不平衡的 catboost class 转换器?

catboost classifier for class imbalance?

我正在为我的二进制 class化模型使用 catboost classifier,其中我有一个高度不平衡的数据集 0 -> 115000 和 1 -> 10000。 有人可以指导我如何在 catboostclassifier:
中使用以下参数吗 1. class_weights
2. scale_pos_weight ?

根据文档,我的印象是我可以使用 负 class 之和与正 class 之和的比率,即 115000/10000=11.5 作为 scale_pos_weight 的输入,但我不确定。

请告诉我这两个参数使用什么确切值以及得出该值的方法?

谢谢

对于 scale_pos_weight,您将使用负数 class // 正数 class。在你的情况下是 11(我更喜欢使用整数)。

对于 class 权重,您将提供 class 不平衡的元组。在你的情况下它将是:class_weights = (1, 11)

class_weights 更灵活,因此您可以为多个 class 目标定义它。例如,如果您有 4 个 classes,您可以设置它:class_weights = (0.5,1,5,25)

并且您只需要使用其中一个参数。对于二进制 classification 问题,我会坚持使用 scale_pos_weight.