在机器学习任务中,我们经常会遇到这种困扰:数据不平衡问题。
数据不平衡问题主要存在于有监督机器学习任务中。当遇到不平衡数据时,以总体分类准确率为学习目标的传统分类算法会过多地关注多数类,从而使得少数类样本的分类性能下降。绝大多数常见的机器学习算法对于不平衡数据集都不能很好地工作。
本文介绍几种有效的解决数据不平衡情况下有效训练有监督算法的思路:
1、重新采样训练集
可以使用不同的数据集。有两种方法使不平衡的数据集来建立一个平衡的数据集——欠采样和过采样。
1.1. 欠采样
欠采样是通过减少丰富类的大小来平衡数据集,当数据量足够时就该使用此方法。通过保存所有稀有类样本,并在丰富类别中随机选择与稀有类别样本相等数量的样本,可以检索平衡的新数据集以进一步建模。
1.2. 过采样
相反,当数据量不足时就应该使用过采样,它尝试通过增加稀有样本的数量来平衡数据集,而不是去除丰富类别的样本的数量。通过使用重复、自举或合成少数类过采样等方法(SMOTE)来生成新的稀有样品。
注意到欠采样和过采样这两种方法相比而言,都没有绝对的优势。这两种方法的应用取决于它适用的用例和数据集本身。另外将过采样和欠采样结合起来使用也是成功的。
2、使用K-fold交叉验证
值得注意的是,