zoukankan      html  css  js  c++  java
  • 类别不均衡

    类别不均衡问题就是不同类别的样本数差别很大,很容易理解,不再赘述。

    这种情况会导致模型的误判,比如2分类,正例998,反例2,那么即使我们所有的样本都识别为正例,正确率高达99.8%,然而并没有什么卵用。

    针对该问题本文汇总了几种解决方法

    想办法搞到更多数据

    换个模型评价方式

    在类别均衡时,accuracy是比较能说明问题的,但是类别不均衡时,就会出现上文描述的问题,此时可借助其他评价指标,如精度precision和召回率recall,F1_score,详见我的其他博客。

    换树模型

    基于参数迭代的模型容易受到类别不均衡问题的影响,如神经网络,树模型不太受这种情况的影响

    数据重组

    1. 欠采样

    随机删掉一些样本

    这样训练速度快,但是模型准确率降低,一般不建议采用

    2. 过采样

    复制样本

    这样做很容易过拟合

    实际操作时可以慢慢增加样本数,然后观察效果,不一定非得1:1

    也可以采用SMOTE算法来避免过拟合,即通过对训练集里的正例进行插值产生额外的正例

    阈值移动

    这个方法不如过采样、欠采样那么流行,但是在二分类问题上表现的相当成功。

    我们在做分类模型时,总是把样本的分布当做总体的分布,也就是说总体上正负样本概率相同,比如男女,样本概率也相同,都是0.5,

    那么在分类时,0.5一边是一类,另一边是另一类,

    但是当总体正负样本概率不同时,比如正常人和病人,样本概率也不同,是病人的概率明显小的多,那是病人的概率是多少呢?  病人数/总人数,肯定不是0.5,我们记为x,

    那么在分类时,x一边是一类,另一边是另一类,

    此时的x相对于0.5发生了移动。

    我们y代表正例的概率,则1-y代表反例的概率,y/1-y=正样本数/负样本数,

    当样本数相同时 y=0.5,

    当样本数不同时 y!=0.5,可以根据上式求出,相对于0.5肯定发生了位移,这就是阈值移动。

    也可以这么理解,x=0为分界线,x小于0为梨,x大于0为苹果,但是梨比较多。

    那么可以将阈值x=0向右平移

     使得绝大多数预测结果为梨,只有一些特殊的情况,及其确定的时候预测为苹果。

    实际上训练数据很难代表总体特征,所以我们拿样本来估计总体会有一定偏差。

    参考资料:

    周志华《机器学习》

    https://www.cnblogs.com/Determined22/p/5772538.html

    https://www.jianshu.com/p/ecbc924860af  smote算法

  • 相关阅读:
    团队总结-文艺复兴
    文艺复兴-冲刺总结
    文艺复习-测试博客
    文艺复习-冲刺集合
    冲刺第一天
    凡事预则立
    2020软件工程作业05
    2020软件工程作业04
    前端怎么去学
    十、Kernel_3.0.35版本和Kernel_4.1.15版本在SPI驱动实现机制的差异
  • 原文地址:https://www.cnblogs.com/yanshw/p/10689548.html
Copyright © 2011-2022 走看看