codecamp

AI人工智能 类别不平衡问题

类别不平衡指数据集中某一类别的样本数量远少于其他类别的情况,该问题在罕见疾病诊断、银行欺诈交易识别等场景中尤为突出。

类别不平衡示例

以欺诈检测数据集为例:

Total observations = 5000
Fraudulent Observations = 50
Non-Fraudulent Observations = 4950
Event Rate = 1%

  • 总样本数:5000
  • 欺诈样本数:50
  • 非欺诈样本数:4950
  • 事件率(正类占比):1%

解决方法

解决类别不平衡问题的核心是平衡各类别的样本数量,具体可通过提升少数类样本数量或减少多数类样本数量实现,常用方法如下:

重采样

重采样是重构训练集和测试集的一系列方法,目的是提升模型的准确率,主要包括以下两种方式:

  1. 随机欠采样 随机剔除多数类的样本,直到多数类与少数类的样本数量趋于平衡。

    Total observations = 5000
    Fraudulent Observations = 50
    Non-Fraudulent Observations = 4950
    Event Rate = 1%

    以上述欺诈检测数据集为例:

    • 从4950个非欺诈样本中随机抽取10%(无放回),得到495个样本;
    • 合并50个欺诈样本,新数据集总样本数为545;
    • 新数据集的事件率提升至9%。 优点:减少计算时间,降低存储占用; 缺点:剔除样本可能导致有用信息丢失。

  1. 随机过采样 通过复制少数类样本,增加少数类的样本数量。
    Total observations = 5000
    Fraudulent Observations = 50
    Non-Fraudulent Observations = 4950
    Event Rate = 1%

    以上述欺诈检测数据集为例:

    • 将50个欺诈样本复制30次,得到1500个欺诈样本;
    • 合并4950个非欺诈样本,新数据集总样本数为6450;
    • 新数据集的事件率提升至23%。 优点:不会丢失任何有用信息; 缺点:复制少数类样本可能导致模型过拟合。
AI人工智能 分类器的性能评估
AI人工智能 集成技术
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

AI人工智能监督学习(回归)

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }