机器学习模型 · 预测“发生的可能性”

逻辑回归

线性回归预测房价、油耗这类连续数值;逻辑回归预测“发生的概率”。它可以估计一封邮件是垃圾邮件、一个用户会流失、一次交易是欺诈的可能性。

25 分钟纯学习时间4 个连续小节无测试与互动练习
输入用户、邮件或交易特征
→
分数z = b + Σwᵢxᵢ
→
概率p = sigmoid(z)
→
训练最小化对数损失
学完后,你能够
  • 解释逻辑回归为何输出的是概率,而不是一个类别。
  • 手算线性分数 z 和 Sigmoid 概率 p。
  • 理解自信但错误的预测为何会产生很大的对数损失。
  • 区分参数、对数损失和 L2 正则化各自解决的问题。
01
预计 10 分钟

从线性分数得到概率

很多实际问题不能只回答“是”或“否”。先给出概率,会保留更多信息:0.51 和 0.99 都可能最终被判为垃圾邮件,但它们的把握程度完全不同。

线性回归

预测连续数值

“这套房大约多少钱?”

输出可以是 320 万、325 万等任意数
逻辑回归

预测正类概率

“这笔交易是欺诈的概率?”

输出始终介于 0 和 1 之间

1.1 概率可以直接使用,也可以后续转成类别

如果模型输出 0.932,含义是:根据它看到的特征,模型估计该样本属于正类的概率为 93.2%。风控系统可以拿这个分数排序,优先人工审核最高风险的交易;邮件系统也可以在后面按业务规则把它变成“垃圾邮件”或“正常邮件”。

逻辑回归名字里的“回归”是什么意思?

它仍然是在估计一个连续量:概率。分类是后续根据阈值做出的决定,这正是下一章“分类”会详细讲的内容。

1.2 先算一个没有边界的线性分数

z = b + w₁x₁ + w₂x₂ + ··· + wₙxₙ

这部分与线性回归很像:特征乘权重、再加偏置。不同的是,z 不是最终预测。它是一个可正可负、没有上下限的线性分数,常被称为对数几率。

特征(垃圾邮件示例)模型可能学到的信号分数 z 的影响
可疑链接数越多越像垃圾邮件权重通常为正
是否在联系人中在联系人中通常更可信权重可能为负
偏置 b不看任何特征时的基准整体平移分数
线性分数经过 Sigmoid 变成零到一之间的概率
逻辑回归的关键结构:先得到线性分数 z,再把 z 映射为概率 p。
02
预计 10 分钟

Sigmoid、概率与对数几率

Sigmoid 函数把任意实数平滑地压缩到 0 和 1 之间。输入越大,概率越接近 1;输入越小,概率越接近 0,但永远不会恰好等于两端。

σ(z) = 1 / (1 + e−z)
Sigmoid S 形曲线,零分数对应零点五概率
曲线中间最敏感:z 在 0 附近小幅变化会明显改变概率;远离 0 后会逐步饱和。

2.1 用几个固定值建立直觉

线性分数 zSigmoid 概率 p直觉
−3约 0.047很不相信是正类
−1约 0.269更偏向负类
00.500两类一样可能
1约 0.731更偏向正类
3约 0.953很相信是正类
为什么曲线两端变平?

z 每增加 1,概率并不会始终增加同样多:从 −1 变到 0,概率约增加 23.1 个百分点;从 3 变到 4,只增加约 2.9 个百分点。Sigmoid 只会无限逼近 0 和 1,永远不会恰好等于它们。

2.2 先算 z,再算概率

假设模型的偏置为 1,权重为 w₁=2、w₂=−1、w₃=5,一个样本的三个特征是 x₁=0、x₂=10、x₃=2:

线性分数z = 1 + 2×0 − 1×10 + 5×2 = 1
经过 Sigmoidp = 1 / (1 + e⁻¹) ≈ 0.731

最终的 0.731 代表正类概率约 73.1%,不是“73.1% 的标签”。标签仍然只能是 0 或 1;概率是模型对未知标签的估计。

2.3 z 为什么叫“对数几率”

若正类概率为 p,负类概率就是 1−p。两者的比 p/(1−p) 叫几率;对它取自然对数就得到 z:

z = ln(p / (1 − p))
z = −2p ≈ 0.119
z = 0p = 0.5
z = 1p ≈ 0.731
z = 2p ≈ 0.881
常见误解

概率 0.8 并不自动保证八成样本都正确。它表示模型的置信程度。概率是否可信还涉及校准、数据分布和验证集评估。

03
预计 8 分钟

为什么使用对数损失

线性回归的平方误差适合连续、线性变化的预测。逻辑回归输出经过了 S 形函数,训练时通常使用对数损失(也叫交叉熵),它更符合概率预测的目标。

LogLoss = −[y log(p) + (1−y) log(1−p)]

当真实标签 y=1 时,公式只剩下 −log(p):预测 p 越接近 1,损失越小;若模型坚信 p 接近 0,损失会急剧变大。真实标签 y=0 时情况完全镜像。

对数损失对自信而错误的预测施加很大惩罚
对数损失真正关心的是:模型给真实类别分配了多少概率,而不是只看最终是否跨过阈值。
真实 y = 1,预测 p = 0.9

正确且有把握

−log(0.9) ≈ 0.105

损失很小
真实 y = 1,预测 p = 0.01

自信却犯错

−log(0.01) ≈ 4.605

模型需要受到强烈纠正
为什么不继续使用平方误差 MSE?

Sigmoid 的变化速度并不恒定:中间陡、两端平。把它和 MSE 直接组合,训练时的优化形状不如对数损失自然;对数损失直接要求模型把更高的概率分给真实类别,并会严厉惩罚“极有把握却预测错”的结果。

训练时对一批样本的对数损失取平均,这样批次从 32 条变成 256 条时,损失的数值尺度不会机械地放大八倍,学习率也更容易保持可比。梯度下降仍然会更新 w 与 b,只是它下降的目标从 MSE 换成了平均 LogLoss。

04
预计 7 分钟

正则化如何防止过拟合

特征很多、数据有限时,逻辑回归可能把某些偶然模式学成巨大权重。训练集损失很低,换一批新数据却表现很差,这就是过拟合。

总目标 = 对数损失 + λ Σw²

右边额外的一项是常见的 L2 正则化。它会惩罚过大的权重,让模型偏好更平滑、更保守的解释。λ 控制惩罚强度,通常不惩罚偏置 b。

它在阻止什么?

当特征很多,训练数据甚至能被完全分开时,模型可能不断增大某些权重,让训练集上的对数损失继续接近 0。这样的“极端自信”常常只是记住了训练集的偶然细节。L2 给大权重加成本,提醒模型不要只为训练集的一点点改善而变得过于激进。

λ 太小

约束不足

权重可变得很大

容易追随训练集噪声,泛化变差
λ 太大

约束过强

权重被压得太小

模型过于简单,连真实信号也学不到

4.1 正则化不是万能修复

  • 01
    先检查数据切分

    训练、验证、测试数据要分开,避免泄漏。

  • 02
    看训练与验证损失

    训练很好而验证很差时,才优先怀疑过拟合。

  • 03
    调正则强度与早停

    以验证集表现选择 λ;也可在验证损失不再改善时停止训练。

  • 一句话串起来

    逻辑回归先用线性模型计算分数 z,再用 Sigmoid 变成概率 p,以对数损失学习参数,并用正则化限制模型不要把训练数据记死。

    本模块术语速查

    正类
    建模时重点检测的结果,例如“是垃圾邮件”。
    概率 p
    模型估计样本属于正类的可能性。
    线性分数 z
    进入 Sigmoid 前、没有边界的加权和。
    Sigmoid
    把任意实数映射到 0 和 1 之间的函数。
    对数几率
    ln(p/(1−p)),也就是 z 的另一种解释。
    对数损失
    对自信但错误的概率预测惩罚很大。
    正则化
    在训练目标中加入复杂度代价以改善泛化。
    早停
    验证表现不再改善时停止训练。
    参考资料与素材说明

    课程内容参考 Google Machine Learning Crash Course 的逻辑回归、Sigmoid 概率计算与损失和正则化小节。文字重新组织并扩写;本页 3 张图均为项目原创 SVG。