16.2 训练多元分类器
问题描述
数据集中不止两个分类,需要训练出一个合适的分类器模型。
解决方案
在scikit-learn中,通过LogisticRegression使用一对多或者多项式方法来训练逻辑回归模型:

讨论
独立地看,逻辑回归只是二元分类器,这意味着它不能处理多于两个分类的目标向量。但是,逻辑回归有两个巧妙的扩展可以解决这个问题。
第一种扩展是一对多(One-vs-Rest, OVR)的逻辑回归,在这种逻辑回归中,对于每一个分类我们都会训练一个单独的模型来判断观察值是不是属于这个分类(这样就又变成二元分类问题了)。它有一个假设,即每一个分类问题(比如,观察值是否为分类0)是相互独立的。
第二种扩展是多元逻辑回归(Multinomial Logistic Regression,MLR)。
在MLR中,我们在15.1节中看到的那个逻辑函数被一个softmax函数替换:

这里 P(yi= k | X) 是第i个观察值的目标值yi为类别k的概率,K是分类的数量。MLR有一个很实用的优点:它使用predict_proba方法预测概率,更可靠(即这个概率值被更好地校准过)。
使用LogisticRegression时,可以在这两种技术中选择,默认的选择是OVR(multi_class="ovr")。我们也可以把multi_class参数设置为multinomial,改为使用MLR。



本书评论