林轩田机器学习基石——多类别分类问题(multi-class classification)


对于一个k类别分类问题,我们要做的是判断一个样本是k类别中的哪一类,实际上是二分类问题的拓展,解决方法也是二分类分类方法的延伸。
问题描述为:现有N个训练样本这里写图片描述,每个样本的输出是k类类标的一种,我们需要训练出一个能够判别出样本类标的训练器。

简单,常用的多分类方法可分为两种:一对多方法(One-Versus-All)和一对一方法(One-Versus-One)

One-Versus-All:(K分类)
①用逻辑回归或其他相应的分类方法训练k个分类器这里写图片描述,分类器Dk的训练过程为:把属于第k个类别的样本归为一类,把剩下k-1个类的样本归为另一类,以此作为二分类训练样本训练出一个二分类器;
②决策时,输入一个测试样本的x,分别代入k个分类器,取其中输出最大的那一类(即最大可能性)作为自己的类标。

样本不平衡问题:一对多方法在训练每个分类器时,其训练样本是1类对k-1类,正负样本的规模相差较大,如1个正样本和99个负样本,则在训练此分类器时很有可能最终的分类器是D(x)=-1,即不论输入什么都输出-1,这样他的错误率也很小只有0.01,达不到训练的效果。解决这个问题可以用一对一方法。

One-Versus-One:(K分类)
①训练这里写图片描述个分类器,每个分类器只拿其中两类样本作为正负样本来训练;
②决策时使用投票原则,即将测试样本的x输入这里写图片描述 个分类器,每个分类器输出一个判别结果,得票最多的那一类作为他的类标。

一对一方法没有样本不平衡问题,但是相对于一对多方法较慢。

你可能感兴趣的:(林轩田机器学习基石——多类别分类问题(multi-class classification))