不均衡数据处理
一、前言
类别数据不均衡是分类任务中存在的经典问题,一般在数据清洗环节进行处理。不均衡简单来说,在数据集中,一类样本的数据量明显远大于其他样本类别数据量。
一般而言,若数据类别比例超过4:1,即认为数据集中存在不均衡数据的现象。
因分类器会受不均衡数据的影响,所以对部分数据建模任务来说,数据集中若存在不均衡数据会影响最终的模型分类效果,从而无法满足分类要求。
对部分数据建模任务来说,数据集中存在不均衡数据是符合研究人员期望的。例如,银行收集客户欺诈行为数据,对于大部分客户来说,其在银行交易中不存在欺诈行为,只有少部分客户数据存在异常,针对此类现象,可以用异常检测模型理念分析数据。
二、采样
2.1 概念
采样本质上是对随机现象的模拟,根据给定的概率分布,来模拟产生一个对应的随机事件。
另一方面,采样得到的样本集也可以看作是一种非参数模型,即用较少量的样本点(经验分布)来近似总体分布,并刻画总体分布中的不确定性。从这个角度来说,采样其实也是一种信息降维,可以起到简化问题的作用。
2.2 重采样
重采样是不均衡数据处理的常用方法之一,其分为欠采样和过采样两种方法。以下将数据量大的数据类别定义为丰富类,数据量小的类别定义为稀有类。
2.2.1 欠采样
适用于大数据集,从丰富类中选取少量样本,再合并原有稀有类作为新的训练数据集。
2.2.2 过采样
适用于小数据集,从稀有类中随机选择样本,再合并原有丰富类作为新的训练数据集。
2.2.3 问题
直接的随机采样虽然可以使样本集变得均衡,但会带来一些问题,比如,过采样对少数类样本进行了多次复制,扩大了数据规模,增加了模型训练的复杂度,同时也容易造成过拟合;欠采样会随机丢弃一些样本,可能会损失部分有用信息,造成模型只学到了整体模式的一部分。
为了解决上述问题,通常在过采样时并不是简单的复制样本,而是采用一些方法形成新的样本。例如,SMOTE
算法对稀有类中每个样本
x
x
x,从他在稀有类中的
K
K
K 近邻中随机选一个样本
y
y
y,然后在
x
,
y
x,y
x,y 连线上随机选取一点作为新合成样本(根据需要的过采样倍率重复上述过程若干次),这种合成新样本的过采样方法可以降低过拟合的风险。
三、交叉验证
交叉验证经常用于数据的验证,原理是将数据分为 k k k 组,每组数据都要作为一次验证集进行一次验证,而其他 k − 1 k-1 k−1 组数据作为训练集,这样一共要循环 k k k 次,验证 k k k 次,得到 k k k 个模型,这 k k k 个模型得到的 k k k 个误差计算均值,得到 交叉验证误差。
四、一分类
4.1 概念
在大多数分类问题中,训练数据提供所有在预测时能够出现的类,学习算法利用这些分别属于不同类的数据来确定用以区分他们的决策边界,但是,有些问题在训练时,实例只具有单一的类,则在预测时,新的不知道类标的实例可能属于目标类,也可能属于一个在训练时不知道的新类。因此就有可能存在两种不同的预测,目标类(target),指实例属于训练时用到的类;未知类(unknow),指实例不属于目标类。这种类型的学习问题被称为 一分类问题(one-class classification)。
在很多情况下,一分类问题可以被重新表示为二分类问题,因为属于其他类的数据可以用于训练模型。但是,有些真实的一分类应用在训练时不能或者不适合用于负例数据。例如,考虑密码硬化——一个生物识别系统加强计算机的登陆过程,不仅要求输入正确的密码,还要求输入匹配正确的打字节奏。这是一种一分类问题,单一用户必须通过验证,且在训练时只有来自此用户的数据是可用的,不能要求其他任何一个没有通过验证的用户提供数据。
4.2 应用
适用于数据集样本分布及其不平衡的现象,遇到此类情况时,可转化为异常检测或一分类问题,例如 one-class SVM。