分类入门:从概率到类别预测
文章目录
- 分类入门:从概率到类别预测
-
- 1. 从概率到类别:新的问题
- 2. 什么是分类
- 3. 阈值:概率变类别的开关
- 4. 汽车示例:阈值如何改变预测
- 5. 如何评价分类模型
- 6. 端到端分类流程
- 7. 可运行代码:阈值与准确率
- 8. 能力边界与常见误区
-
- 8.1 适用边界
- 8.2 常见误区
- 9. 关键术语速查
- 10. 小结
摘要:逻辑回归输出的是概率,但业务往往需要的是类别——「垃圾邮件 / 正常」「高效 / 非高效」。本文介绍分类(Classification)任务的核心概念:如何把概率通过阈值转为 0/1 判定,二分类与多分类有何区别,以及后续将学习的评估指标全景。延续汽车高效分类示例,演示不同阈值对预测结果的影响,并附可运行代码。适合已学完逻辑回归三部曲的读者。
1. 从概率到类别:新的问题
逻辑回归三部曲解决了三件事:模型是什么、怎么算概率、怎么训练参数。模型输出
p
=
0.73
p=0.73
p=0.73 时,含义是「有 73% 可能属于正类」——这在风控排序、推荐打分等场景已经足够。
但许多场景要的是明确类别:
- 邮件客户端:直接标「垃圾」或「正常」,而不是显示 73%
- 质检流水线:判定零件「合格 / 不合格」
- 汽车示例:判定车辆「高效 / 非高效」
分类(Classification)的任务:预测样本属于哪一个类别(Class)。对逻辑回归而言,关键一步是:用阈值把连续概率切成离散标签。

逻辑回归模块:训练模型 -> 输出概率 p
分类模块: 选择阈值 T -> 输出类别 -> 评估好坏
2. 什么是分类
监督学习中,分类指根据特征
x
x
x,预测离散标签
y
y
y,
y
y
y 取自有限集合。
| 二分类 | 2 | spam / not spam,高效 / 非高效 |
| 多分类 |
K > 2 K>2 K>2 |
手写数字 0–9,动物 cat / dog / bird |
与回归对比:
| 标签 | 连续数值(MPG) | 离散类别(0/1 或更多) |
| 输出 |
y ′ ∈ R y' \\in \\mathbb{R} y′∈R |
类别名或类别编号 |
| 典型损失 | MSE | Log Loss |
| 典型指标 | RMSE、
R 2 R^2 R2 |
准确率、精确率、召回率、AUC |

本专栏分类系列先聚焦二分类——概念最清晰,也是工业界最常见。多分类可视为「从
K
K
K 个类别中选一个」:例如手写数字识别输出 0–9 之一,常用 Softmax 回归(逻辑回归的多类推广)或神经网络。多分类的评估与混淆矩阵扩展将在后续篇章简要触及。
3. 阈值:概率变类别的开关
逻辑回归给出
p
=
P
(
y
=
1
∣
x
)
p = P(y=1 \\mid x)
p=P(y=1∣x)。转为硬分类的规则:
y
^
=
{
1
if
p
≥
T
0
if
p
<
T
\\hat{y} = \\begin{cases} 1 & \\text{if } p \\geq T \\\\ 0 & \\text{if } p < T \\end{cases}
y^={10if p≥Tif p<T
T
T
T 是阈值(Threshold),默认常取 0.5——概率过半判正类。但 0.5 并非唯一正确答案,业务可以调整:
| 垃圾邮件过滤 | 偏低(如 0.3) | 宁可误判,不可漏掉垃圾 |
| 医疗确诊 | 偏高(如 0.8) | 宁可漏诊复查,不可误报 |
| 平衡场景 | 0.5 | 无特殊偏好时的起点 |

要点:同一模型、同一组概率,换阈值就会得到不同分类结果——因此评价模型不能只看「用了哪个阈值下的准确率」,还要理解指标如何随阈值变化(ROC 曲线将在后续篇章讲解)。
以垃圾邮件为例:模型输出
p
=
0.75
p=0.75
p=0.75。若
T
=
0.5
T=0.5
T=0.5,判为垃圾;产品可展示「75% 置信度」供用户参考。若安全策略要求更严格,可把
T
T
T 提至 0.9——只有极高置信度才自动拦截,其余进入人工审核。概率与类别可以并存,不必二选一。
4. 汽车示例:阈值如何改变预测
沿用第七篇训练参数
w
≈
−
4.28
w \\approx -4.28
w≈−4.28,
b
≈
14.98
b \\approx 14.98
b≈14.98,7 辆车的预测概率:
| 2.37 | 1(高效) | 0.992 |
| 3.50 | 1 | 0.500 |
| 3.43 | 0 | 0.574 |
| 4.42 | 0 | 0.019 |
不同阈值下的判定:
| 0.3 | 71% | 过多判为高效(
p ≥ 0.3 p \\geq 0.3 p≥0.3 的样本太多) |
| 0.5 | 86% | 对本玩具数据较合适 |
| 0.6 | 71% | 过多判为非高效 |

边界样本(
p
≈
0.5
p \\approx 0.5
p≈0.5)对阈值最敏感:3.50 千磅的车
p
=
0.500
p=0.500
p=0.500,
T
=
0.5
T=0.5
T=0.5 判高效,
T
=
0.51
T=0.51
T=0.51 就判非高效。这提醒我们:概率接近阈值的样本,分类不确定性最高。
5. 如何评价分类模型
概率阶段用 Log Loss;转为类别后,需要新的分类指标。后续篇章将逐一深入,此处给出全景:

| 准确率 Accuracy | 整体判对的比例 |
| 混淆矩阵 | TP、FP、FN、TN 各多少 |
| 精确率 Precision | 判为正类里,有多少真是正类 |
| 召回率 Recall | 真实正类里,有多少被找出来 |
| ROC / AUC | 遍历所有阈值,整体区分能力如何 |
为什么不能只看准确率? 若 99% 邮件是正常邮件,模型「全判正常」准确率 99%,却漏掉所有垃圾邮件——在极端不平衡数据上,准确率会误导。
选阈值的实用起点:
T
=
0.5
T=0.5
T=0.5 开始,观察混淆矩阵
T
T
T 提高召回
T
T
T 提高精确率
T
T
T,结合业务成本做最终决定
6. 端到端分类流程
把逻辑回归与分类模块串起来:

1. 准备带标签数据
2. 训练逻辑回归(Log Loss + 正则化) <- 第 5-7 篇
3. 对新样本输出概率 p <- 第 6 篇
4. 选择阈值 T,输出类别 y_hat <- 本篇
5. 用混淆矩阵、精确率、召回率等评估 <- 第 9-11 篇
6. 按业务调整 T,部署上线
训练与推理分离是工程常态:模型文件存
w
,
b
w,b
w,b;阈值
T
T
T 可按产品线、地区、时段单独配置,无需重新训练。
7. 可运行代码:阈值与准确率
import numpy as np
X = np.array([3.5, 3.69, 3.44, 3.43, 4.34, 4.42, 2.37])
Y = np.array([1, 0, 1, 0, 0, 0, 1], dtype=int)
w, b = –4.28, 14.98
def sigmoid(z):
return 1.0 / (1.0 + np.exp(–np.clip(z, –30, 30)))
def predict_class(probs, threshold):
return (probs >= threshold).astype(int)
probs = sigmoid(w * X + b)
print(f"{'Weight':>8} {'Label':>6} {'Prob':>8}")
for x, y, p in zip(X, Y, probs):
print(f"{x:8.2f} {y:6d} {p:8.3f}")
print(f"\\n{'Threshold':>10} {'Accuracy':>10} {'Predictions'}")
for t in [0.3, 0.5, 0.6]:
pred = predict_class(probs, t)
acc = (pred == Y).mean()
print(f"{t:10.1f} {acc:10.0%} {pred.tolist()}")
运行环境:Python 3.8+,安装 NumPy(pip install numpy)。
预期输出(约):
Weight Label Prob
3.50 1 0.500
3.69 0 0.307
3.44 1 0.564
3.43 0 0.574
4.34 0 0.027
4.42 0 0.019
2.37 1 0.992
Threshold Accuracy Predictions
0.3 71% [1, 1, 1, 1, 0, 0, 1]
0.5 86% [1, 0, 1, 1, 0, 0, 1]
0.6 71% [0, 0, 0, 0, 0, 0, 1]
8. 能力边界与常见误区
8.1 适用边界
- 本篇讨论二分类 + 逻辑回归概率转类别;多分类、非概率模型(如决策树直接输出类)路径不同。
- 阈值选择应结合验证集与业务成本,不宜只在训练集上挑「准确率最高」的
T
T
T。 - 类别极不平衡时,优先关注召回率、精确率等,而非准确率。
8.2 常见误区
| 「分类 = 逻辑回归」 | 逻辑回归是常用二分类模型之一,还有树模型、SVM 等 |
| 「阈值固定 0.5 永远最优」 | 0.5 是起点;业务成本不同,最优
T T T 不同 |
| 「概率 0.51 和 0.99 判同一类就没区别」 | 类别相同,但置信度不同;排序与人工复核仍可利用
p p p |
| 「准确率高 = 好模型」 | 不平衡数据上准确率会骗人 |
| 「重新训练才能改阈值」 | 阈值是后处理参数,与
w , b w,b w,b 独立可调 |
9. 关键术语速查
| 分类 | 预测样本属于哪个离散类别 |
| 类别 Class | 标签的取值,如 spam / not spam |
| 二分类 | 只有两个类别 |
| 多分类 | 三个及以上类别 |
| 阈值 | 把概率
p p p 切成 0/1 的分界线 |
| 正类 / 负类 | 通常记
y = 1 y=1 y=1 为正类, y = 0 y=0 y=0 为负类 |
| 硬分类 | 输出 0/1;与保留概率的「软分类」相对 |
| 准确率 | 判对样本占总样本比例 |
10. 小结
逻辑回归告诉你「有多大概率」;分类告诉你「到底是哪一类」。二者通过阈值衔接——这是从建模走向业务决策的第一步。
本篇搭建了分类系列的主线:阈值
→
\\to
→ 混淆矩阵
→
\\to
→ 精确率 / 召回率
→
\\to
→ ROC / AUC。下一篇将深入混淆矩阵,把 TP、FP、FN、TN 算清楚、用明白。
系列导航:
- 上一篇:【机器学习】(7)—— 逻辑回归:损失与正则化
- 下一篇(预告):阈值与混淆矩阵——分类预测如何评估
如果本篇对你有帮助,欢迎点赞、收藏、关注博主,机器学习专栏持续更新中,下次更新不迷路。



