建模过程中,经常会遇到样本分布不均衡的问题。比如,问题商户判断,消费预测,信用卡逾期预测等等模型。 想办法获取更多的数据 碰到数据分布不均匀,首先要关注的,应当是如何获得更多的数据。当然,这条是最简单,也是最难的。如果出现了样本分布不均衡问题,也不太可能有机会让你获取更多的数据。 重组数据 简单粗暴:复制少数数据的样本,减少其与多数数据样本数量之间的差距砍掉部分多数数据,目的和上面一样 使用其他模型 不同的模型,对数据不均衡问题,容忍度是不一致的。决策树,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步:在红色样本与被选择出的最近蓝色样本中连线,并在连线上找一点(这个点可以随机找)。找出来的点就是人工合成的新样本,图中用绿色标识。 重复上面的步骤,就可以生成多个样本。 在实际的数据挖掘任务中,可以同时使用上面的多种方法,但最关键的,还是要理解业务,熟悉数据意义。