逻辑回归
线性回归预测房价、油耗这类连续数值;逻辑回归预测“发生的概率”。它可以估计一封邮件是垃圾邮件、一个用户会流失、一次交易是欺诈的可能性。
- 解释逻辑回归为何输出的是概率,而不是一个类别。
- 手算线性分数 z 和 Sigmoid 概率 p。
- 理解自信但错误的预测为何会产生很大的对数损失。
- 区分参数、对数损失和 L2 正则化各自解决的问题。
从线性分数得到概率
很多实际问题不能只回答“是”或“否”。先给出概率,会保留更多信息:0.51 和 0.99 都可能最终被判为垃圾邮件,但它们的把握程度完全不同。
预测连续数值
“这套房大约多少钱?”
输出可以是 320 万、325 万等任意数预测正类概率
“这笔交易是欺诈的概率?”
输出始终介于 0 和 1 之间1.1 概率可以直接使用,也可以后续转成类别
如果模型输出 0.932,含义是:根据它看到的特征,模型估计该样本属于正类的概率为 93.2%。风控系统可以拿这个分数排序,优先人工审核最高风险的交易;邮件系统也可以在后面按业务规则把它变成“垃圾邮件”或“正常邮件”。
它仍然是在估计一个连续量:概率。分类是后续根据阈值做出的决定,这正是下一章“分类”会详细讲的内容。
1.2 先算一个没有边界的线性分数
这部分与线性回归很像:特征乘权重、再加偏置。不同的是,z 不是最终预测。它是一个可正可负、没有上下限的线性分数,常被称为对数几率。
| 特征(垃圾邮件示例) | 模型可能学到的信号 | 分数 z 的影响 |
|---|---|---|
| 可疑链接数 | 越多越像垃圾邮件 | 权重通常为正 |
| 是否在联系人中 | 在联系人中通常更可信 | 权重可能为负 |
| 偏置 b | 不看任何特征时的基准 | 整体平移分数 |
Sigmoid、概率与对数几率
Sigmoid 函数把任意实数平滑地压缩到 0 和 1 之间。输入越大,概率越接近 1;输入越小,概率越接近 0,但永远不会恰好等于两端。
2.1 用几个固定值建立直觉
| 线性分数 z | Sigmoid 概率 p | 直觉 |
|---|---|---|
| −3 | 约 0.047 | 很不相信是正类 |
| −1 | 约 0.269 | 更偏向负类 |
| 0 | 0.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:
最终的 0.731 代表正类概率约 73.1%,不是“73.1% 的标签”。标签仍然只能是 0 或 1;概率是模型对未知标签的估计。
2.3 z 为什么叫“对数几率”
若正类概率为 p,负类概率就是 1−p。两者的比 p/(1−p) 叫几率;对它取自然对数就得到 z:
概率 0.8 并不自动保证八成样本都正确。它表示模型的置信程度。概率是否可信还涉及校准、数据分布和验证集评估。
为什么使用对数损失
线性回归的平方误差适合连续、线性变化的预测。逻辑回归输出经过了 S 形函数,训练时通常使用对数损失(也叫交叉熵),它更符合概率预测的目标。
当真实标签 y=1 时,公式只剩下 −log(p):预测 p 越接近 1,损失越小;若模型坚信 p 接近 0,损失会急剧变大。真实标签 y=0 时情况完全镜像。
正确且有把握
−log(0.9) ≈ 0.105
损失很小自信却犯错
−log(0.01) ≈ 4.605
模型需要受到强烈纠正Sigmoid 的变化速度并不恒定:中间陡、两端平。把它和 MSE 直接组合,训练时的优化形状不如对数损失自然;对数损失直接要求模型把更高的概率分给真实类别,并会严厉惩罚“极有把握却预测错”的结果。
训练时对一批样本的对数损失取平均,这样批次从 32 条变成 256 条时,损失的数值尺度不会机械地放大八倍,学习率也更容易保持可比。梯度下降仍然会更新 w 与 b,只是它下降的目标从 MSE 换成了平均 LogLoss。
正则化如何防止过拟合
特征很多、数据有限时,逻辑回归可能把某些偶然模式学成巨大权重。训练集损失很低,换一批新数据却表现很差,这就是过拟合。
右边额外的一项是常见的 L2 正则化。它会惩罚过大的权重,让模型偏好更平滑、更保守的解释。λ 控制惩罚强度,通常不惩罚偏置 b。
当特征很多,训练数据甚至能被完全分开时,模型可能不断增大某些权重,让训练集上的对数损失继续接近 0。这样的“极端自信”常常只是记住了训练集的偶然细节。L2 给大权重加成本,提醒模型不要只为训练集的一点点改善而变得过于激进。
约束不足
权重可变得很大
容易追随训练集噪声,泛化变差约束过强
权重被压得太小
模型过于简单,连真实信号也学不到4.1 正则化不是万能修复
训练、验证、测试数据要分开,避免泄漏。
训练很好而验证很差时,才优先怀疑过拟合。
以验证集表现选择 λ;也可在验证损失不再改善时停止训练。
逻辑回归先用线性模型计算分数 z,再用 Sigmoid 变成概率 p,以对数损失学习参数,并用正则化限制模型不要把训练数据记死。
本模块术语速查
- 正类
- 建模时重点检测的结果,例如“是垃圾邮件”。
- 概率 p
- 模型估计样本属于正类的可能性。
- 线性分数 z
- 进入 Sigmoid 前、没有边界的加权和。
- Sigmoid
- 把任意实数映射到 0 和 1 之间的函数。
- 对数几率
- ln(p/(1−p)),也就是 z 的另一种解释。
- 对数损失
- 对自信但错误的概率预测惩罚很大。
- 正则化
- 在训练目标中加入复杂度代价以改善泛化。
- 早停
- 验证表现不再改善时停止训练。
课程内容参考 Google Machine Learning Crash Course 的逻辑回归、Sigmoid 概率计算与损失和正则化小节。文字重新组织并扩写;本页 3 张图均为项目原创 SVG。