机器学习-不平衡数据集

什么是不平衡数据集

不平衡数据集是指在解决分类问题时每个类别的样本量不均衡的数据集。
比如,在二分类中你有100个样本其中80个样本被标记为class 1, 其余20个被标记为class 2. 这个数据集就是一个不平衡数据集,class 1和class 2的样本数量之比为4:1.
不平衡数据集不仅存在于二分类问题而且存在于多分类问题中。

8种对抗不平衡数据集的策略

(1)是否能收集更多数据

我们首先想到的应该是如何能够收集到更多的数据,往往更多的数据能够战胜更好的算法。

(2)尝试改变评价指标

当我的数据集是不平衡数据集时,准确率作为衡量指标往往会产生误导作用。当处理不平衡数据集时,这里有几种指标可以采用。http://machinelearningmastery.com/classification-accuracy-is-not-enough-more-performance-measures-you-can-use/

(3)对数据集进行重采样

主要有两种方法:

  • 对小类样本进行采样来增加小类样本的数量—过采样(增加部分样本的副本)
  • 对大类样本进行采样来增加小类样本的数量—欠采样(删除部分样本)
    要同时考虑欠采样和过采样。

(4)产生人工数据样本

SMOTE是一种过采样算法,它构造新的小类样本而不是产生小类中已有的样本的副本,即该算法构造的数据是新样本,原数据集中不存在的。该基于距离度量选择小类别下两个或者更多的相似样本,然后选择其中其中一个样本,并随机选择一定数量的邻居样本对选择的那个样本的一个属性增加噪声。这样就构造了更多的新生数据。

(5)尝试不同的分类算法

对待不同的问题不要总是使用自己喜欢和熟悉的算法,应该使用不同算法进行比较。决策树在不平衡数据集处理上有较好的表现。

(6)尝试对模型进行惩罚

你可以使用相同的分类算法但是使用一个不同的角度,比如说你的任务是识别小类,那么可以对分类器的小类样本数据增加权重,降低大类样本的权值(这张方法实际产生了新的数据分布)。如penalized-SVM、penalized LAD

(7)尝试新的角度

把小样本看成异常点检测。

(8)创新思维

  • 把大类化成小类
  • 小类当做异常点

猜你喜欢

转载自blog.csdn.net/qq_38904904/article/details/84259366