美文网首页
(五)分类算法之多分类问题

(五)分类算法之多分类问题

作者: 躺在稻田里的小白菜 | 来源:发表于2018-07-06 17:31 被阅读0次

一. 基本思想

在之前的博客中,我们讨论了逻辑回归模型(Logistic Regression)解决分类问题。但是我们发现,逻辑回归模型解决的是二分问题。但是在现实情境下,我们的训练集往往包含多个类,那我们可不可以把把多分类问题转化为二分类问题呢?答案是肯定的。多分类问题的基本思想就是,将多分类任务拆解为若干个二分类任务求解

二. 拆分策略

假设样本数据中有N个类别。

1. 一对一拆分(OvO)
  • 基本思想:
    将N个类别两两匹配,每次使用2个类别的数据训练分类器,从而产生N(N−1)/2个二分类器。使用时,将样本提交给所有的分类器,得到了N(N−1)/2个结果,最终属于哪个类别通过投票产生。
  • 分类器个数:
    N(N−1)/2个
  • 特点:
    分类器较多,且每个分类器在训练时只使用了2个类别的样本数据。
2. 一对多拆分(OvR)
  • 基本思想:
    每次将一个类作为样例的正例,其他所有均作为反例,得到N个分类器。也就是说,每个分类器能识别一个固定类别。使用时,若有一个分类器为正类,则就为该类别;若有多个分类器为正类,则选择置信度最高的分类器识别的类别。
  • 分类器个数:
    N个
  • 特点:
    相比OvO分类器较少,且每个分类器在训练时使用了所有样本数据。
3. 多对多拆分(MvM)
  • 基本思想:
    每次将若干个类作为正例、若干个类作为反例。显然OvO、OvR都是其特例。MvM的正、反类设计必须有特殊的设计,常用的一种技术:”纠错输出码”,简称ECOC。
    ECOC是将编码的思想引入类别的划分,并可能在解码过程中具有容错性。ECOC工作过程主要分为两步:
    1.对N个类做M次划分,每次划分将一部分作为正类,一部分划分反类,从而形成一个二分类训练集。一共产生M个训练集,训练出M个分类器。
    2.M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类各自的编码进行比较,返回其中距离最小的类别作为最终结果。
  • 分类器个数:
    M个
  • 特点:
    对同一个学习任务来说,ECOC编码越长,纠错能力越强。然而编码越长所需要的训练的分类器越多,计算存储开销都会增大;另一方面对于有限类别码长超过一定范围就没有意义了。对于同等长度的编码,理论上来说,任务两个类别之间的编码距离越远,则纠错能力越强。

三. 类别不平衡问题

我们在之前讨论的分类问题中,往往都是假设样本是平衡的,也就是正类与反类的样本个数相近。但实际中,很有可能正类与反类个数差别悬殊。我们假设有这种情况,训练数据有反例998个,正例2个,模型是一个永远将新样本预测为反例的学习器,就能达到99.8%的精度,这样显然是不合理的。
解决这个问题,主要有3种方法:(假设反类个数大于正类)

1.欠采样法

对训练集里的反例样本进行“欠采样”,即去除一些反例使得正反例数目接近,再进行学习。由于丢弃很多反例,会使得训练集远小于初始训练集,所以有可能导致欠拟合。所以提出以下策略

代表算法:EasyEnsemble

利用集成学习机制,每次从大多数类中抽取和少数类数目差不多的重新组合,总共构成n个新的训练集,基于每个训练集训练出一个AdaBoost分类器(带阈值),最后结合之前训练分类器结果加权求和减去阈值确定最终分类类别。

2. 过采样法

增加一些正例使得正反例数目接近,然后再学习。需要注意的是不能只是对初始正例样本重复采样,否则导致严重的过拟合。所以提出以下策略

代表算法:SMOTE

合成新的少数样本的策略是,对每个少类a样本,从最近邻中随机选一个样本b,在a、b之间连线上随机选一点作为合成新样本。

3. 再缩放思想

一般我们在训练模型时,正反样本数目是相近的,所以在逻辑回归中,φ(z)≥0.5判断为1类,反之为0类。

但如果训练集中正反例数目相差悬殊,令m+表示正例数目,m-表示反例数目,假设训练集是无偏采样,观测几率就代表了真实几率,只要分类器的预测几率高于观测几率就判定为正例,即

即判定为正例,实际上想想也很简单,本来是假设正负例各占一半,所以是0.5,现在类别样本数目不均衡,所以需要大于实际正例数目所占比
实际上,再缩放实际操作起来不现实,因为假设的前提训练集是真实的样本总体的无偏采样往往不成立,所以观测几率未必反映真实几率。

相关文章

  • (五)分类算法之多分类问题

    一. 基本思想 在之前的博客中,我们讨论了逻辑回归模型(Logistic Regression)解决分类问题。但是...

  • 机器学习实战——提升方法AdaBoost

    组合相似的分类器来提高分类性能 应用AdaBoost 处理非均衡分类问题 【提升算法】 提升算法需要解决两个问题:...

  • 逻辑回归

    逻辑回归是一种解决分类问题的机器学习算法。 逻辑回归可以视为回归算法也可以视为分类算法,但通常用于分类,#####...

  • Pandas优化OneRule算法

    《Python数据挖掘入门与实践》第一章第五节(1.5)中关于分类问题提到了一种简单实用的分类算法——OneR算法...

  • AI 搬运工 | 监督学习之分类算法

    在已标签的训练数据中构建分类模型,并在此基础上,对新数据进行分类。这就是分类算法要解决的问题。 分类算法的准确性,...

  • 机器学习-二分类转多分类

    之前研究的分类算法比如SVM,LR等,解决的都是二分类问题,那如果问题用有多个类别呢?二分类问题转多分类问题,常用...

  • 分类算法与数据挖掘

    ################分类算法与数据挖掘---也就是回归于分类算法--对应于Y的0/1算法 ####分类...

  • 机器学习系列(十)——更多关于knn的思考

    knn算法解决回归问题简介 在前面的系列中,knn算法主要用于解决分类问题,不只是二分类问题,knn算法可以天然地...

  • 决策树

    Profile Decision Tree,非参数的学习算法,可以解决分类问题,天然地解决多分类问题(类似KNN,...

  • 吴恩达-机器学习笔记(第三周)

    六、逻辑回归(Logistic Regression) 6.1 分类问题   本节介绍了分类问题最流行的一种算法—...

网友评论

      本文标题:(五)分类算法之多分类问题

      本文链接:https://www.haomeiwen.com/subject/nxcbuftx.html