作者abc2090614 (casperxdd)
看板DataScience
标题Re: [问题] 类别不平衡
时间Tue Mar 20 10:22:57 2018
※ 引述《DennismithJR (DSJ)》之铭言:
: 想请问大家在处理分类问题时遇到标签分布很不平衡时会怎麽处理呢
: 翻过Kaggle上一些相关问题,几乎没看到有人因此做特别的抽样或其他处理
: 好像只要评估指标是logloss或ROC的AUC就当没事了...
: 不知道是不是因为样本少的类别仍有一定数量就能如此?
: 若好比说我有一组样本
: 标签有五个类别,数量分别如下面所示,其比例与母体相符
: A: 10000
: B: 5000
: C: 200
: D: 15
: E: 8
: 显然这样本在D、E甚至C的分类上可能会出现些问题
: 想请问遇到这样的分布,有什麽建议的抽样方式呢?
如果要从抽样下手
以你的为例 如果只看A跟D+E 10000:23 差不多0.2%
这种比例的imbalance class还算正常
我目前用过最有效的方法是把 A 拆成100块 A1, A2, A3, ... A100
然後每块去跟所有的D+E拼起来 训练100个小模型
这样每块变成100个A去对15个D跟8个E, 比例变成100:23
再把100个小模型的结果统整起来变成一个 这步看你怎作都可
缺点是从output要算probability不太容易 只能说是分数
然後大概看不太到很高分数(>0.95)的D或E (类似random forest的缺点)
不过个人经验是满有效的,而且几乎对什麽问题都适用
如果要upsample minority class
就是下面说的SMOTE 或bootstrapping模拟一些样本出来之类
我觉得类别不平衡最大的难题是在hold-out validation/cross validation时要很小心
实验时模型跑出来的结果可能会实际上线时差很大
你如果只有8个E 我真的想不到怎麽作validation才能说服自己这模型不是垃圾....
补一篇文给你参考
他最後提到的box method我还没试过就是
https://svds.com/learning-imbalanced-classes/
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 68.71.180.136
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1521512580.A.6ED.html
※ 编辑: abc2090614 (68.71.180.136), 03/20/2018 10:29:31
※ 编辑: abc2090614 (68.71.180.136), 03/20/2018 10:31:48
※ 编辑: abc2090614 (68.71.180.136), 03/20/2018 10:34:21
1F:→ DennismithJR: 感谢! 我会试着将类别多者切割来做看看 03/21 00:14