问题分析:
二分类问题遇到样本数量分布不平衡时,可以想象把日常生活中的样本放进炼丹炉,我们的目标是区分地球人和外星人。此时,地球人和外星人分布比例是及其不平衡的。由于样本不平衡,我们很容易或者说随手抓取一个机器学习的分类模型都可以实现很高的精确率。 然而这样做是有问题的,当我们来到B612星球,就会发现周围都是外星人,而只有我是地球人,此时,机器学习模型很可能把外星人识别为地球人,造成大面积的失误。
通过学习:
解决此问题,我们有两个角度。一种是把样本数量分布变得平衡,一种是更换准确率这种评价指标,使其对外星人预测的更加灵敏,增加模型的泛化能力。
一/上下采样
-
SMOTE(Synthetic Minority Over-sampling Technique)过采样小样本(扩充小类,产生新数据)
-
欠采样大样本 使用聚类方法生成样本数量大的簇质心,减少了大样本类别的样本数量
-
添加罚函数来提高对小样本类别的敏感度
如penalized-SVM和penalized-LDA算法
-
分治法Ensemble,构建多个分类器,使用投票法对分类器做整合。 类似数据结构的排序分治法思想,先对大样本类别进行聚类,对每一个聚类的一个簇和小样本数据一起训练,最后对每一个簇得到的结果进行投票。
-
使用异常检测算法,获取数据的离群点,outlier对其分析。(参考泰坦尼克kaggke中outlier算法的处理)
-
调节样本均衡的参数: 不同模型有不同的设置,SVC类中的class_weight和接口fit中可以设定的sample_weight
二/选取更加直观贴合的评价指标:
- Focal loss: 在entropy loss的基础上增加了惩罚因子,可以对弱势群体也就是小样本类别根加敏感。学习入门