欢迎光临散文网 会员登陆 & 注册

imbalanced data机器学习非平衡数据处理

2021-06-15 11:01 作者:python风控模型  | 我要投稿


理想数据集正负样本是均等的,这有利于机器学习模型训练。

现实中正负样本常常不均等,而且正负样本比例相差甚大,如下图橘红色样本仅占10%左右。

什么是非平衡数据集?当正负样本占比相差过大时,就是非平衡数据集。如下图负面样本仅占0.001,属于典型非平衡数据集。

汇总对比一下理想数据分布情况和正负样本不均情况。

下面是非平衡数据点状图分布

非平衡数据集在现实生活中有非常多应用。常见下述情况:反欺诈探测,医疗诊断,石油泄漏侦查,面部识别,异常值检测。

非平衡数据例子1:从海面卫星雷达图像检测漏油

如下图,石油泄漏面积仅占海洋区域非常小比例,难以发现,属于经典非平衡数据例子

非平衡数据例子2:癌细胞诊断和预测

癌细胞仅占正常细胞非常小比例,也属于经典非平衡数据处理例子。

非平衡数据例子3:反欺诈

1.交易支付诈骗

2.电信诈骗

3.职工诈骗,欺诈群体一般占总人群2%

在银行,消费金融,金融科技公司做过反欺诈的朋友都知道,真实场景中欺诈客户常常在

2%左右,甚至更低。风控模型对于捕捉欺诈客户非常吃力,因为模型训练数据时就会遇到坏客户占比太低的难题。

机器学习领域有的很多解决非平衡数据的方法,我罗列了一些常用的方法,包括

Under sampling欠采样

Over sampling过采样

SMOTE(synthetic minority over0sampling technique)非直接对少数类进行重采样,而是设计算法来人工合成一些新的少数样本。实际测试中,此方法效果较好

class_weight参数调整

其它算法解决方案

数据分析中的过采样和欠采样是用于调整数据集的类分布(即所表示的不同类/类别之间的比率)的技术。这些术语用于统计抽样、调查设计方法和机器学习。过采样和欠采样是相反且大致等效的技术。过采样和欠采样原理如下图:


SMOTE

有多种方法可用于对典型分类问题中使用的数据集进行过采样(使用分类算法对一组图像进行分类,给定一组带标签的训练图像)。最常见的技术被称为 SMOTE:合成少数过采样技术。[4]为了说明这种技术是如何工作的,考虑一些训练数据,其中有s 个样本,以及数据特征空间中的f 个特征。请注意,为简单起见,这些特征是连续的。例如,考虑用于分类的鸟类数据集。我们想要对其进行过采样的少数类的特征空间可以是喙长、翼展和重量(都是连续的)。为了过采样,从数据集中取一个样本,并考虑它的k 个最近邻(在特征空间中)。要创建合成数据点,请获取这k 个邻居之一与当前数据点之间的向量。将此向量乘以介于 0 和 1 之间的随机数x。将其添加到当前数据点以创建新的合成数据点。

如果看不懂smote术语解释没关系,我用可视化图解smote原理。

如下图,红色数据是minority class,即占比较小的数据集,一共只有4个。

绿色数据是majority class,即占比较大的数据集,一共13个。

为了训练模型时解决非平衡数据问题,我们使用smote方法。

我们通过向量方法链接四个红色点,新的数据(创造的伪数据)就会出现在红色点链接的线上。

大家看,新创造的8个点出现在红色点链接的线上。这样红色数据集就有12个,蓝色数据集有13个,基本是5:5平衡了。

通过上述smote方法,我们解决了非平衡数据问题。


ADASYN

ADASYN是smote方法升级版。自适应合成采样方法或 ADASYN 算法建立在SMOTE方法的基础上,通过将分类边界的重要性转移到那些困难的少数类。ADASYN 根据学习难度对不同的少数类示例使用加权分布,其中为更难学习的少数类示例生成更多合成数据。


增强技术

数据分析中的数据增强是用于通过添加对现有数据或从现有数据新创建的合成数据稍加修改的副本来增加数据量的技术。它充当正则化器,有助于在训练机器学习模型时减少过度拟合。


非平衡数据处理副作用

非平衡数据处理方法不是万能的,使用要非常小心,最好是机器学习经验丰富的朋友来处理较好。过采样,欠采样或smote方法都可能引起过拟合问题,这会导致模型过于具体。训练集的准确性很可能是很高的情况,但是新数据集的性能实际上却很差。

如果想了解真实非平衡数据处理案例和python脚本解决方案,欢迎学习《python金融风控评分卡模型和数据分析》课程:https://ke.qq.com/course/package/35588?tuin=dcbf0ba

此课程包含如何应用算法处理非平衡数据问题,并且显著提升模型性能,包括ks,auc,可谓一石二鸟。

生成smote的python脚本如下


imbalanced data机器学习非平衡数据处理的评论 (共 条)

分享到微博请遵守国家法律