欢迎光临
我们一直在努力

【机器学习】(8)—— 分类简介

分类入门:从概率到类别预测

文章目录

  • 分类入门:从概率到类别预测
    • 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}

yR

类别名或类别编号
典型损失 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=1x)。转为硬分类的规则:

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 pTif 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

w4.28

b

14.98

b \\approx 14.98

b14.98,7 辆车的预测概率:

重量真实标签

p

p

p

2.37 1(高效) 0.992
3.50 1 0.500
3.43 0 0.574
4.42 0 0.019

不同阈值下的判定:

阈值

T

T

T准确率现象

0.3 71% 过多判为高效(

p

0.3

p \\geq 0.3

p0.3 的样本太多)

0.5 86% 对本玩具数据较合适
0.6 71% 过多判为非高效

请添加图片描述

边界样本(

p

0.5

p \\approx 0.5

p0.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)—— 逻辑回归:损失与正则化
    • 下一篇(预告):阈值与混淆矩阵——分类预测如何评估

    如果本篇对你有帮助,欢迎点赞、收藏、关注博主,机器学习专栏持续更新中,下次更新不迷路。

    赞(0)
    未经允许不得转载:171主机测评 » 【机器学习】(8)—— 分类简介
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址