样本不均衡问题及解决方法

背景

样本类别不均衡是分类问题中常常遇到的问题。在实际业务中,不同类别的样本量差异非常大,或者少数样本代表了业务的关键数据(少数样本更重要),例如,异常检测,恶意刷单,黄牛订单,信用卡欺诈等业务中,正类的样本比例往往只占很小的一部分。

方法

1.过采样
也叫上采样、重采样,通过增加少数类别的样本来改变不同类别的样本比例,达到类别比例均衡
方法1:复制多份少数样本, 容易发生过拟合
方法2:SMOTE算法, 领用邻近的样本生成新的样本, 新样本 = 原样本 + 噪声
x n = x i + λ ( x j − x i ) x_n = x_i + \lambda(x_j-x_i) xn=xi+λ(xjxi), 其中, x j , x i x_j, x_i xj,xi是相邻的样本的特征

2.欠采样
也叫下采样,通过减少多数类别的样本来改变不同类别的样本比例,达到类别比例均衡
方法:随机删除

注意:采样的方式会并且只能改变训练集的分布,测试集不能做采样!

3.模型
欠采样+集成学习
将多数类别的样本进行随机采样,与少数类别形成多个训练集 (A1, B), (A2,B), (A3,B)训练3个基模型,让这三个模型进行投票; 每个模型不能看到所有的数据,其训练数据的分布与总体样本的数据分布不一致

4.损失函数
对于深度学习,使用focal loss
l o s s = − ( 1 − p t ) α l o g ( p t ) loss = -(1-p_t)^{\alpha} log(p_t) loss=(1pt)αlog(pt)
权重 * NCE(负交叉熵损失)
pt为预测值∈[0,1], alpha为超参数, (1-pt)^alpha为权重, focal loss对loss进行加权,对于比较难预测的样本的loss,赋给较高的权重,在反向传播时,这部分样本的梯度更大,更新这部分参数。

参考:
【公开课】挑战样本不平衡算法及实战 (小象学院)
Focal Loss及其实现

你可能感兴趣的:(【机器学习】,机器学习,深度学习,人工智能)