二分类-样本数量分布不平衡

313 阅读3分钟

问题分析:

二分类问题遇到样本数量分布不平衡时,可以想象把日常生活中的样本放进炼丹炉,我们的目标是区分地球人和外星人。此时,地球人和外星人分布比例是及其不平衡的。由于样本不平衡,我们很容易或者说随手抓取一个机器学习的分类模型都可以实现很高的精确率tp/(fp+tp)tp/(fp+tp)。 然而这样做是有问题的,当我们来到B612星球,就会发现周围都是外星人,而只有我是地球人,此时,机器学习模型很可能把外星人识别为地球人,造成大面积的失误。

通过学习:

解决此问题,我们有两个角度。一种是把样本数量分布变得平衡,一种是更换准确率这种评价指标,使其对外星人预测的更加灵敏,增加模型的泛化能力。

一/上下采样

  1. SMOTE(Synthetic Minority Over-sampling Technique)过采样小样本(扩充小类,产生新数据)

    1. 看到海康威视的一个方法,在原有模型的基础上,我们找到分布最多的类别的样本数量,通过随机数生成,把其他分布较少的类别的样本数量提升至相同的数量,这里随机生成以后要保持原有样本的特性,所以使用了取余操作,可能会复制很多原有的样本从而加大该类别样本的数据规模。 好比,我们复制很多外星人直到外星人和地球人数量一样多。这样的样本用来训练,直觉上增加了很多公平性,当模型面对一个待处理的模型时,也不会带有惯性或者歧视的眼光来分类该问题。只是直觉,缺少理论支撑。图像二分类, 算法传送门
  2. 欠采样大样本 使用聚类方法生成样本数量大的簇质心,减少了大样本类别的样本数量

  3. 添加罚函数来提高对小样本类别的敏感度

    如penalized-SVM和penalized-LDA算法

  4. 分治法Ensemble,构建多个分类器,使用投票法对分类器做整合。 类似数据结构的排序分治法思想,先对大样本类别进行聚类,对每一个聚类的一个簇和小样本数据一起训练,最后对每一个簇得到的结果进行投票。

  5. 使用异常检测算法,获取数据的离群点,outlier对其分析。(参考泰坦尼克kaggke中outlier算法的处理)

  6. 调节样本均衡的参数: 不同模型有不同的设置,SVC类中的class_weight和接口fit中可以设定的sample_weight

二/选取更加直观贴合的评价指标:

  • Focal loss: 在entropy loss的基础上增加了惩罚因子,可以对弱势群体也就是小样本类别根加敏感。学习入门

二分类问题和聚类问题的连结

聚类方法和二分类方法的高效总结2019-