机器学习之——多类分类问题
在之前,我们讨论了逻辑回归模型(Logistic Regression)解决分类问题。但是我们发现,逻辑回归模型解决的是二分问题,即:模型的结果只有两个值,y=0 or y=1 。但是在现实情境下,我们的训练集往往包含多个类(>2),我们就无法用一个二元变量(y=0|y=1)来做判断依据了。举个例子,我们预测天气,天气的情况就分为:晴天、阴天、雨天、多云、雪天、雾天等等。
下面是一个多类分类问题(Multiclass Classification)可能的情况:
三个不同的形状,表示三种不同的分类。
一种解决这类问题的途径,是采用一对多(One-vs-All)方法。在一对多方法中,我们将多类分类问题转变成二元分类问题。为了能实现这样的转变,我们将多个类中的一个类标记为正向类(y=1),然后将其他所有的类都标记成负向类(y=0),这个模型记作:
接着,相同的,我们选择另外一个类标记为正向类(y=2),再将其他的类都标记为负向类,将这个模型记作:
以此类推。
最后,我们得到一系列的模型,简记为:
其中 i = 1,2,3,...,k
步骤可以记作下图:
最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对于每一个输入变量,都选择最高可能性的输出变量。
这便是解决多类分类问题的一对多方法。