面试之-1.0数据集类别分布不平衡问题

数据分布不平衡解决方法(ML版)

加粗部分,有知识扩充

1.数据角度:

  • 扩大数据集:最主要是添加小类别数据
  • 采样: 上采样(增加小样本数)和下采样(减少大样本数)–> 上采样由于样本会重复出现,容易出现过拟合;下采样由于都是一部分数据导致模型只学习到一部分特征 —> 针对上采样问题:上采样,在每次新生成的数据点时加入随机扰动;下采样:①(Easy Ensemble)多次下采样(有放回),产生多个不同的数据集,训练多个分类器,②(Boosting)将一次下采样的产生的训练集,训练第二个分类器,以此类推,最终组合所有分类器结果,③(Near Miss)利用KNN挑选具有代表性的样本 随机采样/非随机采样 对数据集采用不同的采样比例同时使用上采样和下采样
  • 数据合成:SMOTE加粗样式

2.算法角度

  • 加权(对小类别错分进行惩罚):降低大类别的权值,如penalized-SVM和penalized-LDA
  • 采用不用分类算法 —> 决策树:ID3, C4.5, C5.0, CART,随机森林

3.模型评价角度

  • 混淆矩阵:TP,FN,FP,TN
  • 精确度
  • 召回率
  • F1 Score:精确度和召回率的加权平均
  • Kappa
  • ROC曲线

4.重构分类器角度

  • 将大类再分成小类
  • 将小类作为异常点处理(使用一分类)
  • 采用集成方式,训练多个分类器
  • 将二分类问题转化为多分类问题。

如何选择不同的解决方法

  • 正负样本都非常少:–> 数据合成
  • 负样本多,正样本少(且比例悬殊):—>一分类方法
  • 正负样本足够多且比例不悬殊:–>采样/加权

数据分布不平衡解决方法(DL版)

首先,上述方法均适用

1.图像处理角度

  • 类别均衡采样:把样本按照类别进行分组,每个类别生成一个列表,每次随机从列表中选择几类,然后从对应的类别中随机选出样本。
  • OHEM(online hard example mining)
  • Focal Loss

补充知识点

SMOTE(Synthetic Minority Oversampling Technique)合成少数类过采样技术

基于随机采样的改进算法,由于随机采样就是简单的复制样本,容易造成过拟合问题(使模型学到的特征过于特别不够泛化),流程如下:

  1. 对于少数类中每个样本xx,以欧氏距离为标准计算它到少数类样本集SminS_{min}中所有样本的距离,得到其kk近邻。
  2. 根据样本不平衡比例设置一个采样比例以确定采样倍率NN,对于每一个少数类样本xx,以其近邻中随机选择若干样本,假设选择的近邻为xnx_n
  3. 对于每一个随机选出的近邻x_n,分别与原样本按照如下公式构建样本:xnew=x+rand(0,1)xxnx_{new} = x + rand(0,1) * |x - x_n|
    面试之-1.0数据集类别分布不平衡问题

KNN

思路:如果一个样本在特征空间中的k个最相似的样本大多属于某一个类别,则该样本也属于该类别。该方法在决策树上只依据邻近的一个或者多个样本的类别来决定分类
步骤:

  1. 首先,前提是已经有分类好且标注的数据集
  2. 假设设定阈值K=3,则如图,靠近绿色圆点的是两个红三角,和一个蓝方形,最终绿色属于红三角这类
  3. 假设阈值K=5,则会有三个蓝方形,和两个红三角,绿色圆点属于蓝方形这类
    面试之-1.0数据集类别分布不平衡问题

KNN和K-Means的区别

面试之-1.0数据集类别分布不平衡问题

准确率

Accuracy=(TP+TN)/ALLAccuracy = (TP +TN)/ALL:预测正确的样本数(包括预测为正样本和负样本两种情况)与所有样本的比值

精确度、查准率

Precision=TP/(TP+FP)Precision = TP/(TP + FP):模型检索出来的有多少是正确的,即在左右标签是正样本的集合中找出预测正确的比例,大集合是标签中的正样本

召回率、查全率

recall=TP/(TP+FN)recall = TP/(TP + FN):模型预测为正确的所有样本中,真正标签为正样本的比例。

F1 Score

F1=2(precisionrecall)/(precision+recall)F1 = 2 * (precision * recall) / (precision + recall):2倍的准确率和召回率的乘积与准确率和召回率之和的比值

ROC曲线(二分类评估指标)

  • 横坐标为false positive rate(FPR),即假阳性率:FP/(FP+TN)FP /(FP + TN), 如在实际为0的样呢中预测为1的概率
  • 纵坐标为true positive rate(TPR),即真阳性率:TP/(FN+TP)TP / (FN + TP),也就是召回率
  • 定位四个点:
    • (0, 1)TPR = 0, FPR = 1,将所有的样本均预测出错,没有预测对的样本
    • (1, 0)TPR = 0, FPR = 0,将标签中标注为正样本的,全部预测正确
    • (0, 0)TPR = 0, FPR = 0,负样本全部预测正确(均预测为负样本),正样本也预测为了负样本。
    • (1, 1)TPR = 1, FPR = 1,正样本全部预测正确(均预测为正样本),负样本也预测为了正样本
  • 根据对四点的分析,发现将ROC曲线越靠近左上角越好
  • 比较好的特性:当测试集中的正负样本的分布发生变化时,ROC曲线保持不变,但是Precision-Recal曲线会发生剧烈变化

kappa系数(多分类评估指标)

  • 取值[-1, 1],实际应用是[0,1],系数越大,分类准确度越高
    • 0.0~0.20极低的一致性(slight)、
    • 0.21~0.40一般的一致性(fair)、
    • 0.41~0.60 中等的一致性(moderate)、
    • 0.61~0.80 高度的一致性(substantial)
    • 0.81~1几乎完全一致(almost perfect)
  • 用于一致性检验,也可以衡量分类精度
  • 计算基于混淆矩阵
    面试之-1.0数据集类别分布不平衡问题

参考链接

https://blog.****.net/jiede1/article/details/70215477
https://blog.****.net/u012559520/article/details/78249192
https://zhuanlan.zhihu.com/p/27777711
https://zhuanlan.zhihu.com/p/34079183
https://www.yuque.com/7125messi/rt18xv/sc2rvi
http://hardocs.com/d/datamining/chapter-5/chapter-5-5.html