西瓜书+实战+吴恩达机器学习(三)机器学习基础(多分类、类别不平衡)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/87603717

如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

0. 前言

本篇介绍机器学习中的多分类类别不平衡问题

1. 多分类学习

一些算法可以直接进行多分类,而另一些算法则不行,基本思路是:将多分类任务拆为若干个二分类任务求解

  1. 一对一(One vs. One, OvO):给定数据集,将 N N 个类别两两配对,产生 N ( N 1 ) / 2 N(N-1)/2 个二分类任务,最终结果通过投票产生
  2. 一对其余(One vs. Rest, OvR):给定数据集,每次将一个类作为正类,其余类作为反类,训练 N N 个分类器,最终结果通过投票产生
  3. 多对多(Many vs. Many, MvM):给定数据集,每次将若干个类作为正类,若干个其他类作为反类,使用纠错输出码ECOC,对 N N 个类别作 M M 次划分,产生 M M 个分类器, M M 个分类器对测试样例进行预测,预测结果组成一个编码,与 N N 个类别的编码对比,距离最短的类别就是结果

在类别较少时,OvO的存储开销和测试时间开销通常比OvR更大。

在类别较多时,OvO的训练时间开销通常比OvR更小。

ECOC编码越长,纠错能力越强,计算、存储开销越大。对于同等长度的编码,任意两个类别之间的距离越远,纠错能力越强。

2. 类别不平衡

类别不平衡(class-imbalance)是指分类任务中不同类别的训练样例数目差别很大

现有技术大体上有三类做法:

  1. 对数目多的类别欠采样:去除一些样例,使得正例、反例数目接近
  2. 对数目少的类别过采样:增加一些样例,使得正例、反例数目接近
  3. 阈值移动:直接对原始数据集进行学习,在决策时使用再缩放, y 1 y = y 1 y × m m + > 1 \frac{y'}{1-y'}=\frac{y}{1-y}\times\frac{m^-}{m^+}>1 ,则判断为正例, m + m^+ 表示正例数目, m m^- 表示反例数目

如果欠采样随机丢失样例,可能丢失一些重要信息。

如果过采样不能简单的进行重采样,可能会导致过拟合。


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

猜你喜欢

转载自blog.csdn.net/zhq9695/article/details/87603717
今日推荐