多类不平衡分类

数据挖掘 分类 多类分类 f1score
2022-02-04 11:49:09

我有一个包含 3 个类的目标变量的数据集。Target变量的值计数如下:

Class A :26000
Class B: 5000
Class C: 500
Class C  prediction is most important from a business standpoint.

迄今为止,我主要完成了目标类的二元类(主要是 1:0.12)分布,其中最后,按照概率的递减顺序对预测概率进行十等分,从 D1 的最高概率开始,D2 的概率最低。

现在随着一个新班级的涌入,人口也很少,我在三个方面感到困惑。

什么算法最好?应该使用什么指标?如果适用,如何在这种情况下获得概率的十分位数?

任何潜在客户/内核/博客文章都会非常有帮助。

1个回答

您可以使用与班级规模成反比的合适值来加权每个班级的损失。一个例子是使用:(数据点总数)/(类的数据点数)。对于损失,您可以使用标准的二元交叉熵 (BCE) 损失。

至于指标,我建议您使用AUROC (Area Under the Receiver Operating Characteristics)您可以为每个类生成 AUROC,以查看模型在这些单独类上的性能,并对它们进行平均,以全面了解您的模型性能。

编辑:我注意到你已经在 f1 分数上加上了标签,所以我想指出 AUROC 应该被首选作为指标,因为与 f1 分数相比,它们对类不平衡更稳健。