不平衡数据集:数据集各个类别的样本数目差距过大
不平衡数据的学习即需要在分布不均匀的数据集中学习到有用的信息
1)扩充数据集
看能否获得更多数据,尤其是小样的数据
2)对数据集进行重采样
(通过改变数据集中每个类别样本的数据来平衡类别分类,从而提高模型性能)
① 过采样:过采样是指增加数据集中少数类的样本数量,使其与多数类的样本数量接近,可以通过一下方式来实现:
1、随机过采样:从少数类中随机抽取样本进行复制
2、Synthetic Minority Over-sampling Technique(SMOTE):生成新的样本,其特征值在少数类样本之间的特征空间插值。SMOTE 的主要思想是为少数类别生成合成的样本,而不是简单地复制现有的少数类样本。
②欠采样:欠采样是指减少数据集中多数类的样本数量,使其与少数类的样本数量接近
1、随机欠采样:从多数类中随机抽取样本进行删除。
2、Tomek Links:删除多数类中与少数类样本靠近并可能导致分类错误的样本。
3、Neighborhood Cleaning Rule(NCR):删除多数类中可能被误分类为少数类的样本。
③混合采样:结合过采样和欠采样
3)评估指标的转换
不同指标反映了模型在不同方面的性能,在类别(在分类问题中对事物进行划分的组别,是数据的离散标签,表示各组的不同属性)不平衡场景时,尤其关注少数类的性能,如:
①精确度:正确预测为正类的样本数与所有被预测为正类的样本数之比
②召回率/敏感度:正确预测为正类的样本数与实际正类的样本数之比
③特异性:正确预测为负类的样本数与实际负类的样本数之比
④F1分数:精确度和召回率的调和平均(调和平均是一种平均数计算方法,用于计算数据集中数值的逆数的算术平均数的逆值)(当数据之间存在差异较大时更为适用,因为调和平均数更能体现数据中的小值,对较小值具有更高的敏感性,相比算术和几何平均数,调和平均数在小值处的权重更大,因此当数据集需要更充分地表示较小数值的影响时,调和平均数特别适用)
⑤Matthews Correlation Coefficient(MCC):基于混淆矩阵衡量二分类模型的性能。MCC 具有高度平衡敏感性,能在正负类样本不平衡的情况下保持稳定。MCC 值在 -1 到 1 之间,越接近 1 表示性能越好。
在二分类问题中,混淆矩阵(Confusion Matrix)是一种评估模型性能的有效工具。混淆矩阵是一个 2x2 矩阵,矩阵的每个元素表示分类器对某个类别的预测结果与真实结果之间的关系。
混淆矩阵的一般形式如下:
预测为正类 预测为负类 实际上是正类 真阳性(TP) 假阴性(FN) 实际上是负类 假阳性(FP) 真阴性(TN)
这里的四个要素含义如下:
- 真阳性(TP, True Positives):正确预测为正类的样本数。
- 假阴性(FN, False Negatives):错误地预测为负类的正类样本数。
- 假阳性(FP, False Positives):错误地预测为正类的负类样本数。
- 真阴性(TN, True Negatives):正确预测为负类的样本数。
基于混淆矩阵,可以计算出一系列评估指标,以下是一些常用指标:
精确度(Precision):正确预测为正类的样本数与所有被预测为正类的样本数之比。
Precision = TP / (TP + FP)
召回率(Recall)/敏感度(Sensitivity):正确预测为正类的样本数与实际正类的样本数之比。召回率衡量模型在实际正类样本中识别出多少。
Recall = TP / (TP + FN)
特异性(Specificity):正确预测为负类的样本数与实际负类的样本数之比。特异性关注模型在实际负类样本中识别出多少。
Specificity = TN / (TN + FP)
准确率(Accuracy):正确分类样本数与所有样本数之比。准确率评估模型在整个数据集上的性能。但对于不平衡数据,准确率往往不是一个好的指标,因为它可能难以反映模型在少数类上的性能。
Accuracy = (TP + TN) / (TP + FN + FP + TN)
F1 分数(F1 Score):精确度和召回率的调和平均。为了平衡精确度和召回率的影响,F1 分数计算它们之间的调和平均。
F1 = 2 * Precision * Recall / (Precision + Recall)
Matthews Correlation Coefficient(MCC):MCC 是一个基于混淆矩阵的衡量二分类模型性能的指标,其值在 -1 到 1 之间,越接近 1,表示模型性能越好。
MCC = (TP * TN - FP * FN) / sqrt((TP + FP) * (TP + FN) * (TN + FP) * (TN + FN))
⑥ AUC-ROC(Area Under the Receiver Operating Characteristic Curve):描述模型在不同阈值下真阳性率(召回率或敏感度)与假阳性率(1 - 特异性)之间的权衡。AUC-ROC 的取值范围为 0 到 1,越接近 1,表示模型性能越好。
4)代价敏感学习
代价敏感学习通过为每个类别分配不同的代价权重(我们将多数类的代价设定的相对小,将少数类的代价设定的相对大,因为在处理不平衡分类问题时,我们通常需要提高模型对少数类的关注,将少数类的代价设定的较大,分类错误时产生的损失成本较高),使模型在训练过程中更关注具有较高错分代价的类别。通常情况下,这意味着模型会更加关注少数类的识别和分类。
5)特征选择
在处理不平衡数据时,特征选择的主要目标是挑选与少数类别关联性更强的特征,从而提高分类模型对少数类别的识别和预测能力
①与分类器无关: 这类方法不依赖于特定分类模型,并且通常基于数据的统计或信息论度量来评估特征的重要性。这些方法被称为过滤方法(Filter methods),在处理不平衡数据时,过滤方法可以帮助找出与目标类别(尤其是少数类别)密切相关的特征
②与分类器独立:这种方法使用预先指定的分类器,将特征选择与分类器的性能关联起来。这些方法被称为包装方法(Wrapper methods),包装方法在处理不平衡数据时,可以根据当前分类器的实际性能进行特征选择,可以更准确地捕捉特征之间的依赖性,并引入优化政策
③与分类器结合:这类方法在特定分类器的学习过程中进行特征选择,被称为嵌入方法(Embedded methods),在处理不平衡数据时,嵌入方法与特定的分类器共同作用,从而充分考虑特征间关系。嵌入方法可以在模型训练过程中根据数据分布特点(如少数类样本)自动调整特征权重,从而提高对少数类的识别能力
6)单类学习
①异常检测:识别与正常数据模式显著不同的异常数据
②新颖性检测:当系统遇到新的、未知的输入类型时,检测其是否属于原先模型学习到的知识范围
7)集成学习
集成学习通过组合多个基分类器(或基模型)的预测结果,以获得更高的准确性
①Bagging: 使用自助采样法(Bootstrap Sampling,有放回采样)从原始训练数据中生成多个大小相同的子训练集,并使用这些子训练集训练多个基分类器。在预测阶段,对于分类任务,Bagging 对基分类器的预测结果进行多数投票;对于回归任务,取基分类器的预测结果平均值。例如:随机森林
②Boosting: 通过迭代地训练一系列基分类器。在每次迭代时,根据之前分类器的预测错误调整训练数据的权重,使后续分类器更关注错误分类的样本。最终预测结果是将加权后的基分类器进行组合。降低基分类器的偏差,减小拟合误差,提高模型准确性
③Stacking:首先训练多个基分类器(第一层),然后将这些基分类器的预测结果作为输入特征,训练一个元分类器(Meta-classifier,或称为次级分类器、第二层分类器)。元分类器负责对基分类器的预测结果进行融合,得到最终预测结果。