机器学习中的多分类任务入门

摘要:

这篇文章主要是关于机器学习中多分类任务的一些基本知识。


1.我先抛出一个问题,在LR(逻辑回归)中,如何进行多分类?

一般下,我们所认识的lr模型是一个二分类的模型,但是,能否用lr进行多分类任务呢?答案当然是可以的。
不过,我们需要注意的是,我们有许多种思路利用lr来进行多分类。



2.训练多个二分类器的思想

既然天然的lr是用来做二分类,那么我们很自然地想到把多分类划分多个二分类的任务。
具体来说,有以下三种策略:

2.1 一对一 (OvO)

假如某个分类中有N个类别,我们将这N个类别进行两两配对(两两配对后转化为二分类问题)。那么我们可以得到 个二分类器。(简单解释一下,相当于在N个类别里面抽2个)
之后,在测试阶段,我们把新样本交给这 个二分类器。于是我们可以得到 个分类结果。把预测的最多的类别作为预测的结果。
下面,我给一个具体的例子来理解一下。


上图的意思其实很明显,首先把类别两两组合(6种组合)。组合完之后,其中一个类别作为正类,另一个作为负类(这个正负只是相对而言,目的是转化为二分类)。然后对每个二分类器进行训练。可以得到6个二分类器。然后把测试样本在6个二分类器上面进行预测。从结果上可以看到,类别1被预测的最多,故测试样本属于类别1。


2.2 一对其余 (OvR)

一对其余其实更加好理解,每次将一个类别作为正类,其余类别作为负类。此时共有(N个分类器)。在测试的时候若仅有一个分类器预测为正类,则对应的类别标记为最终的分类结果。例如下面这个例子。

大概解释一下,就是有当有4个类别的时候,每次把其中一个类别作为正类别,其余作为负类别,共有4种组合,对于这4中组合进行分类器的训练,我们可以得到4个分类器。对于测试样本,放进4个分类器进行预测,仅有一个分类器预测为正类,于是取这个分类器的结果作为预测结果,分类器2预测的结果是类别2,于是这个样本便属于类别2。
其实,有人会有疑问,那么预测为负类的分类器就不用管了吗?是的,因为预测为负类的时候有多种可能,无法确定,只有预测为正类的时候才能唯一确定属于哪一类。比如对于分类器3,分类结果是负类,但是负类有类别1,类别2,类别4三种,到底属于哪一种?


2.3多对多(MvM)

所谓多对多其实就是把多个类别作为正类,多个类别作为负类。本文不介绍这个方法,详细可以参考周志华西瓜书P64-P65。



3.对于上面的方法其实都是训练多个二分类器,那么有没有更加直接的方法对LR来进行多分类呢?

我们知道,对于二分类的LR时,正类和负类的概率分别如下:



对于多分类,其实我只需要做简单的修改就可以了。
假设某分类任务有K个类别,那么对于每一个类别的概率有:
对于第K类来说
对于其余类而言


猜你喜欢

转载自blog.csdn.net/anshuai_aw1/article/details/82902853