• 机器学习西瓜书笔记---3.6、类别不平衡问题


    机器学习西瓜书笔记---3.6、类别不平衡问题

    一、总结

    一句话总结:

    【类别不平衡(class-imbalance)】就是指【分类任务中不同类别的训练样例数目差别很大】的情况.
    我们经常会遇到类别不平衡,【例如在通过拆分法解决多分类】问题时,即使原始问题中不同类别的训练样例数目相当,在使用OⅴR、MvM策略后产生的二分类任务仍可能出现类别不平衡现象,因此有必要了解类别不平衡性处理的基本方法

    1、为什么有类别不平衡问题讨论?

    前面介绍的分类学习方法都有一个共同的基本假设,即不同类别的训练样例数目相当.如果不同类别的训练样例数目稍有差别,通常影响不大,【但若差别很大,则会对学习过程造成困扰】.
    【例如有998个反例,但正例只有2个】,那么学习方法只需返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度;然而这样的学习器往往没有价值,因为它不能预测出任何正例

    2、类别不平衡学习的一个基本策略—【“再缩放”(rescaling)】?

    $$frac { y ^ { prime } } { 1 - y ^ { prime } } = frac { y } { 1 - y } imes frac { m ^ { - } } { m ^ { + } }$$
    再缩放的思想虽简单,但实际操作却并不平凡,【主要因为“训练集是真实样本总体的无偏采样”这个假设往往并不成立】,也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率.
    “再缩放”也是【“代价敏感学习”(cost-sensitive learning)】的基础.在代价敏感学习中将式$$frac { y ^ { prime } } { 1 - y ^ { prime } } = frac { y } { 1 - y } imes frac { m ^ { - } } { m ^ { + } }$$中的m-/m+用 cost+/cost-代替即可,其中【cost+是将正例误分为反例的代价,cost-是将反例误分为正例的代价】

    3、解决类别不平衡学习现在三类做法?

    【欠采样】:第一类是直接对训练集里的反类样例进行【“欠采样”(undersampling)】,即【去除】一些反例使得正、反例数目接近,然后再进行学习;
    【过采样】:第二类是对训练集里的正类样例进行【“过采样”(oversampling)】,即【增加】一些正例使得正、反例数目接近,然后再进行学习;
    【阙值移动】:第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式$$frac { y ^ { prime } } { 1 - y ^ { prime } } = frac { y } { 1 - y } imes frac { m ^ { - } } { m ^ { + } }$$嵌入到其决策过程中,称为【“阙值移动”(threshold-moving)】

    4、采样注意?

    过采样法【不能简单】地对初始正例样本进行【重复采样】,否则会招致【严重的过拟合】
    欠采样法【若随机丢弃反例】,可能丢失一些重要信息
    欠采样法的代表性算法【EasyEnsemble】 [Liu et al,2009]则是利用集成学习机制,将反例划分为【若干个集合供不同学习器使用】,这样对每个学习器来看都进行了【欠采样】,但在【全局来看却不会丢失重要信息】

    5、“多标记学习”(multi-label learning)?

    多分类学习中虽然有多个类别,但每个样本仅属于一个类别.如果希望为个样本同时预测出多个类别标记,例如【一幅图像可同时标注为“蓝天”、“白云”、“羊群”、“自然场景”】,这样的任务就不再是多分类学习,而是【“多标记学习”(multi-label learning)】

    二、内容在总结中

    博客对应课程的视频位置:

     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    C#开发代码的小技巧1
    17. 装箱、拆箱的最小化
    Google Map开发(一) ASP.NET中调用Google Map API实现简单的地图显示
    C#可空类型
    C#如何扩展类型的内置方法
    Linq合并两个DataTable
    <br style="clear:both" /><br />
    GridView内容<br />换行
    数据库连接字符串大全
    JS将Table导出到Excel
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/14056367.html
Copyright © 2020-2023  润新知