【漫话机器学习系列】194.“一对其余”逻辑回归(One-Vs-Rest Logistic Regression)

原图作者:Chris Albon
适用场景:机器学习 / 数据挖掘 / 多分类建模


一、背景介绍

1.1 什么是逻辑回归?

逻辑回归(Logistic Regression)是机器学习中一种非常经典的二分类算法。它的核心思想是:

  • 输入特征(X)

  • 输出一个概率(0 到 1 之间)

  • 用阈值(通常是0.5)决定分类结果

适用于解决「是 / 否」这类二分类问题。


1.2 但实际问题往往不止两个类别

现实世界的数据,经常是多类别(Multi-class)的,比如:

场景 类别
邮件分类 正常 / 垃圾 / 广告 / 诈骗
图像识别 狗 / 猫 / 鸟 / 其他
客户状态 活跃 / 流失 / 潜在

那么,逻辑回归能不能处理这种多分类问题呢?

答案是:可以,但需要扩展。 其中一种常用的扩展方式就是 —— 一对其余(One-Vs-Rest,简称 OvR 或 OVR)


二、什么是一对其余(One-Vs-Rest)逻辑回归?

一对其余(One-Vs-Rest Logistic Regression):是二元逻辑回归的扩展版,用于解决多分类问题。

核心思想非常直观:

  • 针对每个类别,单独构建一个二分类器。

  • 让模型学会区分:

    • 这个类别(1)

    • 其他所有类别(0)


三、工作机制与流程

假设现在有 3 个类别:

  • 类别A

  • 类别B

  • 类别C

步骤如下:

类别 模型构建方式 训练目标
A vs Rest A 为正类(1),其他为负类(0) 判断是否属于A
B vs Rest B 为正类(1),其他为负类(0) 判断是否属于B
C vs Rest C 为正类(1),其他为负类(0) 判断是否属于C

也就是说,原本是一个多分类问题,现在被拆解为 3 个独立的二分类问题。


四、预测流程

  1. 输入一个样本

  2. 让这 3 个模型分别打分(预测为各自类别的概率)

  3. 选择概率最大的类别,作为最终预测结果

这种思路的好处在于:

  • 简单直接

  • 每个模型专注判断“自己 vs 其他”

  • 可以复用原有的二分类工具(逻辑回归、支持向量机、朴素贝叶斯等)


五、总结

优点 缺点
简单易实现,容易理解 类别不均衡时效果不佳
模型独立训练,便于并行 类别数太多时,模型数量膨胀
兼容所有二分类器 类别之间没有直接关系建模

六、适用场景

One-Vs-Rest 通常适合:

  • 类别数量不多

  • 各类别之间独立、差异较大

  • 希望复用现有二分类模型


七、在 Python 中如何实现 OvR 逻辑回归?

sklearn 已经帮我们封装好了:

from sklearn.linear_model import LogisticRegression

# OvR 是 sklearn 中多分类的默认方式
model = LogisticRegression(multi_class='ovr')
model.fit(X_train, y_train)


八、与其他多分类方法对比

方法 说明
One-Vs-Rest 一对其余,每个类别单独建模
One-Vs-One 一对一,每两个类别都建一个模型
Softmax Regression 直接学习多类别之间的概率分布(常用于深度学习)

九、一句话总结

One-Vs-Rest 逻辑回归 = 把多分类问题转化为多个二分类问题,简单、直观,适用于小类别场景,是机器学习入门多分类的首选思路之一。