AiChallenger比赛记录之样本不均衡

如何处理样本不均衡

1.1 选择合适的评价指标:

  • 不要采用准确率(Accuracy);
  • 主流评估方法包括:ROC,Precision-Recall curve,F1;

1.2若样本极度不均衡,可作为异常检测问题处理;

数据挖掘中常见的『异常检测』算法有哪些?

1.3 欠采样/过采样:

一般操作就是,对于样本比较多的类别进行欠采样,对样本比较少的类别进行过采样。但是对于多分类问题,会比较麻烦,而且本赛题是细粒度多分类问题。

常见的过采样方法:

  • 随机打乱数据;
  • 加入噪声,或随机剔除部分词;
  • 裁剪掉某一句;
  • 复制;
  • 翻译成另一种语言,再翻译回来,eg.中文->英文->中文;

欠采样方法: 即对样本比较多的类别进行采样。

对于文本分类问题,过采样存在一定的问题,此处见[3],不赘述。

欠采样和过采样的缺点:

  • 过采样:过拟合风险;
  • 欠采样:样本缺失,偏差较大;

下采样缺失样本的解决办法:

  • 1.EasyEnsemble:多次下采样(放回采样),训练多个不同的分类器;
  • 2.BalanceCascade:首先一次下采样产生训练集,对于分类正确的多样本类别不放回,只放回分类错误的样本;
  • 3.利用KNN试图挑选那些最具代表性的大众样本,叫做NearMiss;

1.4 训练策略:

在训练过程中采取的一些方法,例如sklearn中的class_weight,lightgbm和xgboost中的class_weight,他们均给出了参数可以设置类别比例,但是性能要具体讨论。

加权Loss:
在nn中常用binary_entropy(二分类)、category_entropy(多分类),作为目标函数,对待不均衡样本,可以对不同类别进行加权。比如样本比较少的类别,可以给予较高的权重。

参考资料:

[1]严重数据倾斜文本分类,比如正反比1:20~100,适合什么model,查准一般要做到多少可以上线?
[2]如何处理数据中的「类别不平衡」?
[3]文本分类 - 样本不平衡的解决思路与交叉验证CV的有效性
[4]干货|如何解决机器学习中数据不平衡问题
[5]文本多分类踩过的坑

猜你喜欢

转载自blog.csdn.net/linxid/article/details/83820430