不平衡的多类分类数据集:欠采样还是过采样?

问题描述

Dataset 大约有 150k 条记录,有四个标签:['A','B','C','D'],分布如下:
答:60000
乙:50000
C: 36000
D: 4000

我注意到使用包分类报告来获取精度、召回率和 f1 分数,f1 分数导致 UndefinedMetricWarning,因为 D 类由于记录数量少而未被预测。

我知道我需要执行过采样/欠采样来修复不平衡的数据。

问题:修复不平衡数据但从每个类中随机抽取 4000 条记录以使其平衡是个好主意吗?

解决方法

我认为您想从 D 类中进行过采样。该技术称为合成少数过采样技术,或 SMOTE。

解决此问题的一种方法是对少数类中的示例进行过采样。这可以通过在拟合模型之前简单地从训练数据集中的少数类中复制示例来实现。这可以平衡类分布,但不会为模型提供任何额外信息。

复制来自少数类的例子的一个改进是合成来自少数类的新例子。这是表格数据的一种数据增强,非常有效。

来源:https://machinelearningmastery.com/smote-oversampling-for-imbalanced-classification/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...