作者 | Will Badr
译者 | 张玲
编辑 | 吴金迪
出品 | 数据派THU(ID:DatapiTHU)
本文用python代码示例解释了3种处理不平衡数据集的可选方法,包括数据层面上的2种重采样数据集方法和算法层面上的1个集成分类器方法。
分类是机器学习最常见的问题之一,处理它的最佳方法是从分析和探索数据集开始,即从探索式数据分析(Exploratory Data Analysis, EDA)开始。除了生成尽可能多的数据见解和信息,它还用于查找数据集中可能存在的任何问题。在分析用于分类的数据集时,类别不平衡是常见问题之一。
什么是数据不平衡(类别不平衡)?
数据不平衡通常反映了数据集中类别的不均匀分布。例如,在信用卡欺诈检测数据集中,大多数信用卡交易类型都不是欺诈,仅有很少一部分类型是欺诈交易,如此以来,非欺诈交易和欺诈交易之间的比率达到50:1。本文中,我将使用来自Kaggle的信用卡欺诈交易数据数据集,你可以从这里下载。
这里
https://www.kaggle.com/mlg-ulb/creditcardfraud
首先,我们先绘制类分布图,查看不平衡情况。
如你所见,非欺诈交易类型数据数量远远超过欺诈交易类型。如果我们在不解决这个类别不平衡问题的情况下训练了一个二分类模型,那么这个模型完全是有偏差的,稍后我还会向你演示它影响特征相关性的过程并解释其中的原因。
现在,我们来介绍一些解决类别不平衡问题的技巧,你可以在这里找到完整代码的notebook。
这里
https://github.com/wmlba/innovate2019/blob/master/Credit_Card_Fraud_Detection.ipynb
一、 重采样(过采样和欠采样)