样本分布不均衡的处理方法

建模过程中,经常会遇到样本分布不均衡的问题。比如,问题商户判断,消费预测,信用卡逾期预测等等模型。

想办法获取更多的数据

碰到数据分布不均匀,首先要关注的,应当是如何获得更多的数据。

当然,这条是最简单,也是最难的。如果出现了样本分布不均衡问题,也不太可能有机会让你获取更多的数据。

重组数据

简单粗暴:

  1. 复制少数数据的样本,减少其与多数数据样本数量之间的差距
  2. 砍掉部分多数数据,目的和上面一样

 

使用其他模型

不同的模型,对数据不均衡问题,容忍度是不一致的。决策树,GBDT等树模型,受数据不均衡的影响较小,可以选择合适的模型。

更改模型评价指标

通常情况下,我们会使用准确率(Accuracy)和误差(Cost)两种方式来判断机器学习的成果.但是在不均衡的数据面前,高的准确率和低的误差就显得没有那么有用和重要了。

假如你的数据里,99%的用户是良好用户,1%的用户信用卡逾期。你的模型预测所有人都是良好用户,也可以获得不错的准确率,但这个模型显然没有做到预测信用卡逾期的目的。

因此,我们需要更换模型的评价标准。通常是使用混淆矩阵,来计算精准率P和召回率R,然后再通过P,R来计算F1 Score。

使用smot(Synthetic Minority Over-Sampling Technique)方法,合成人工数据

SMOTE的全称是Synthetic Minority Over-Sampling Technique,译为“人工少数类过采样法”。SMOTE没有直接对少数类进行重采样,而是设计了算法来人工合成一些新的少数类的样本。

下面举一个例子,来描述smot方法的实现过程,数据分为红色样本与蓝色样本,可以看出,两种颜色样本分布及其不均衡。

第1步:找到红色样本

第2步:找到距离红色样本最近的K个蓝色样本,距离的计算方式有多重,常见的有欧氏距离,余弦距离,曼哈顿距离等

下图中5个最近的蓝色样本被圈起来了

第3步:随机从这K个最近点选择一个样本

第4步:在红色样本与被选择出的最近蓝色样本中连线,并在连线上找一点(这个点可以随机找)。找出来的点就是人工合成的新样本,图中用绿色标识。

重复上面的步骤,就可以生成多个样本。

在实际的数据挖掘任务中,可以同时使用上面的多种方法,但最关键的,还是要理解业务,熟悉数据意义。

The End


已发布

分类

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注