machine-learning - 多类分类的 AUC
问题描述
假设我们有一个包含 3 个类别的分类问题,并且我们有高度不平衡的数据。假设在第 1 类我们有 185 个数据点,在第 2 类 199 和在第 3 720 类。
为了计算多类问题的 AUC,有宏观平均(对每个标签的分类给予相等的权重)和微观平均方法(将标签指示矩阵的每个元素视为二元预测),如scikit-学习教程。
对于这种不平衡的数据集,应该使用 AUC 的微观平均还是宏观平均?
我不确定,因为当我们有一个如下所示的混淆矩阵时,我得到的微观平均 AUC 为 0.76,宏观平均 AUC 为 0.55。
解决方案
由于您的类具有大多数以更高精度分类的数据点,因此使用微平均计算的整体精度将高于使用宏观平均计算的相同精度。
这里,P1 = 12/185 = 0.06486486,P2 = 11/199 = 0.05527638,P3 = 670 / 720 = 0.9305556
宏观平均的整体精度 = (P1 + P2 + P3) / 3 = 0.3502323,远低于微观平均 = (12+11+670)/(185+199+720) = 0.6277174 的整体精度。
AUC 也是如此。
推荐阅读
- angular - Angular 使用基于移动或桌面的不同视图模板
- flutter - 如何将 Widget 放置在 SingleChildScrollView 的底部?
- mysql - 如何将 Prisma/GraphQL 连接到现有的 MySQL 数据库(特别是 WordPress)?
- amazon-web-services - kubectl aws集群中资源分配不足
- java - 比较两个列表时发生奇怪的事情(groovy)
- c# - 处置时 Xamarin Android 组件崩溃
- laravel - Laravel:构建我自己的对话系统
- types - 如何从联合类型中解开泛型类型别名,从而使类型别名更具体?
- javascript - 用于否定父元素中的特定 HTML 元素的 JQuery 选择器
- scala - 在 scala spark 数据框中提取时间间隔