机器学习速成·逻辑回归(1/2):简介与 S 型函数——让模型输出概率
本文参考 Google 机器学习速成课程 - 逻辑回归简介(Logistic Regression) 与 使用 S 型函数计算概率(Sigmoid Function) 两个模块撰写,是线性回归系列的”进阶版”,讲清逻辑回归如何输出概率、以及 S 型函数背后的数学。
一、逻辑回归解决什么问题?
线性回归做的是连续的数值预测——例如预测汽车燃油效率。但现实中还有很多”要不要/会不会/是不是”类的问题:
- 今天会下雨吗?
- 这封电子邮件是垃圾邮件吗?
这些问题的答案不是一个个具体数值,而是一个概率。逻辑回归(Logistic Regression) 就是专为”预测某个结果发生的概率”而设计的一类回归模型。
二、概率输出怎么用?
逻辑回归的输出是一个概率(介于 0~1 之间),你可以用两种方式使用它:
| 用法 | 说明 | 例子 |
|---|---|---|
| 按原样应用 | 直接把概率当置信度用 | 垃圾邮件模型输出 0.932 → 有 93.2% 概率是垃圾邮件 |
| 转换为二元类别 | 按阈值把概率切分成类别 | 输出 Spam / Not Spam、True / False |
本模块重点讲的是”如何得到概率”;至于怎么把概率转成二分类结果,属于后面的分类模块。
三、逻辑回归 vs 线性回归
| 维度 | 线性回归 | 逻辑回归 |
|---|---|---|
| 输出 | 连续数值(如油耗 15.6) | 概率(0~1 之间) |
| 决策面 | 一条直线(线性) | 一条 S 形曲线 |
| 典型任务 | 预测房价、预测油耗 | 判断是否下雨、是否垃圾邮件 |
| 损失函数 | 平方损失(L₂) | 对数损失(下一篇详讲) |
两者都先算一个线性方程 z,但逻辑回归额外通过一个S 型函数把 z 压到 0~1 之间,从而得到概率。
四、S 型函数(Sigmoid Function):把任意值压到 0~1
要保证输出是一个概率,就必须让输出始终在 0 到 1 之间。有一族函数有这个性质,其中最标准的就是 S 型函数(sigmoid 意为”S 形”):
$$f(x)=\frac{1}{1 + e^{-x}}$$
其中:
- f(x):S 型函数的输出;
- e:欧拉数,约等于 2.71828;
- x:S 型函数的输入。
4.1 关键特性
- 当 x → −∞ 时,f(x) 趋近 0;
- 当 x → +∞ 时,f(x) 趋近 1;
- 无论 x 多大或多小,输出始终大于 0 且小于 1(永不等于端点)。
4.2 输入与输出对照
| 输入 x | Sigmoid 输出 |
|---|---|
| -7 | 0.001 |
| -5 | 0.007 |
| -3 | 0.047 |
| -2 | 0.119 |
| -1 | 0.269 |
| 0 | 0.50 |
| 1 | 0.731 |
| 2 | 0.881 |
| 3 | 0.952 |
| 5 | 0.993 |
| 7 | 0.999 |
可以看到:负的输入让输出快速逼近 0,正的输入让输出快速逼近 1,且永不越界。
五、从线性输出到概率:z 与”对数几率”
逻辑回归对每个样本先算一个线性部分 z:
$$z = b + w_1x_1 + w_2x_2 + \dots + w_Nx_N$$
其中 b 是偏差、w 是权重、x 是特征值。这个 z 有个专门名字叫对数几率(log-odds):
从 $y=\frac{1}{1+e^{-z}}$ 反解出 $z=\ln\left(\frac{y}{1-y}\right)$ ——即”两种可能结果 y 与 (1−y) 的概率之比的自然对数”,所以叫”对数几率”。
然后把 z 喂进 S 型函数,就得到逻辑回归的预测概率:
$$y’=\frac{1}{1+e^{-z}}$$
其中 y′ 是模型的概率输出,z 是上一步算出的线性值。
直观理解:线性方程可以输出极大或极小的值(比如 z=−10),但 S 型函数会把这个巨大的 z 映射回 0~1 之间。 比如 z=−10 → y′≈0.00004。
六、完整算例(动手走一遍)
一个具有 3 个特征的逻辑回归模型,参数如下:
b = 1, w₁ = 2, w₂ = −1, w₃ = 5
输入值:x₁ = 0, x₂ = 10, x₃ = 2
第一步:算 z(对数几率)
$$z = 1 + (2)(0) − (1)(10) + (5)(2) = 1 + 0 − 10 + 10 = 1$$
第二步:把 z=1 代入 S 型函数求概率 y′
$$y’=\frac{1}{1+e^{-1}}=\frac{1}{1+0.367}=\frac{1}{1.367}\approx 0.731$$
所以这组输入下,模型预测某个结果发生的概率约为 73.1%。
回忆对照表:
输入=1 → 输出=0.731,与第 4.2 节表格完全一致。
七、关键术语速查
- 逻辑回归(Logistic Regression):输出概率的回归模型。
- 二元分类(Binary Classification):只有两个类别的分类(如是/否)。
- Sigmoid 函数:把任意输入压到 (0,1) 的 S 形函数。
- 对数几率(Log-odds):线性部分 z,即概率比的自然对数。
总结
| 核心要点 | 关键结论 |
|---|---|
| 逻辑回归做什么 | 输出”某结果发生的概率”,处理是否/会不会类问题 |
| 输出怎么用 | 按原样当置信度,或转换成二元类别 |
| vs 线性回归 | 线性回归出数值、逻辑回归出概率,损失函数也不同 |
| S 型函数 | $f(x)=\frac{1}{1+e^{-x}}$,把任意值压到 0~1 且永不越界 |
| 完整流程 | 线性算 z(对数几率)→ S 型函数 → 概率 y′ |
一句话:逻辑回归 = 线性回归的输出 z,再套一个 S 型函数压成 0~1 的概率——所以它既能当”置信度”用,也能按阈值变成”是/否”;下一篇我们就讲它回归训练时最核心的两个差异。