更新于 2026年10月15日 全文 1614 字未阅读

用 S 型函数计算概率#

很多现实问题的答案并不是一个具体的数值,而是一个概率:例如一封邮件是垃圾邮件的概率有多大?用户点击广告的概率有多高?肿瘤是恶性的概率有多少?

逻辑回归(Logistic Regression) 正是一种非常高效的概率计算机制。拿到模型输出的概率之后,通常有两种使用方式:

  • 直接使用概率值。 比如,一个垃圾邮件识别模型对某封邮件的输出是 0.932,就表示这封邮件有 93.2% 的概率是垃圾邮件。

  • 转换为二元类别。 例如,把概率与某个阈值(如 0.5)比较,输出 是 / 否、垃圾 / 非垃圾 这种二分类结果。

本节将聚焦于直接使用逻辑回归的原始输出——也就是那个介于 0 到 1 之间的概率值。至于如何把概率进一步转换为二元类别,将在分类(Classification)模块中介绍。


S 型函数#

你也许会好奇:逻辑回归模型是如何保证它的输出一定是一个概率,也就是始终落在 0 到 1 之间?

事实上,存在一类特殊的函数——逻辑斯蒂函数(Logistic Function)——天然就具备这种性质。其中最标准的一支,又被称为 S 型函数(Sigmoid Function)(其中 sigmoid 是 “S 形” 的意思),它的数学公式为:

$$f(x) = \frac{1}{1 + e^{-x}}$$

其中:

图 1 展示了 S 型函数对应的曲线。

以原点为中心、画在笛卡尔坐标系中的 S 形曲线
图 1. S 型函数图像:当 x 趋向负无穷时,曲线趋近于 0;当 x 趋向正无穷时,曲线趋近于 1

随着输入 $x$ 不断增大,S 型函数的输出会越来越接近 1,但永远不会等于 1;同理,当输入不断减小时,输出会越来越接近 0,但永远不会等于 0。

点击进一步了解 S 型函数背后的数学

下表列出了当输入在 -7 到 7 之间时,S 型函数对应的输出值。可以观察到:当输入为越来越小的负数时,S 型函数的输出会非常迅速地逼近 0;而当输入为越来越大的正数时,输出则会非常迅速地逼近 1。

不过无论输入有多大或多小,输出始终严格介于 0 和 1 之间。

输入 S 型函数输出
-7 0.001
-6 0.002
-5 0.007
-4 0.018
-3 0.047
-2 0.119
-1 0.269
0 0.50
1 0.731
2 0.881
3 0.952
4 0.982
5 0.993
6 0.997
7 0.999

用 S 型函数把线性输出转换为概率#

下面这个公式描述的是逻辑回归模型中的线性部分:

$$z = b + w_1 x_1 + w_2 x_2 + \ldots + w_n x_n$$

其中:

  • $z$ 是线性方程的输出,也被称作对数几率(Log Odds)。

  • $b$ 是偏置项(bias)。

  • 各个 $w$ 是模型学到的权重(weight)。

  • 各个 $x$ 是某个样本的特征值。

要把线性输出变成逻辑回归的预测值,只需把 $z$ 再送进 S 型函数,最终得到一个介于 0 到 1 之间的概率值:

$$y' = \frac{1}{1 + e^{-z}}$$

其中:

点击进一步了解"对数几率"这个概念

在公式 $z = b + w_1 x_1 + w_2 x_2 + \ldots + w_n x_n$ 中,$z$ 之所以被称作 对数几率,可以这样理解:从 S 型函数

$$y = \frac{1}{1 + e^{-z}}$$

出发(其中 $y$ 是逻辑回归模型的输出,表示一个概率),我们对 $z$ 反向求解,可得:

$$z = \ln\left(\frac{y}{1-y}\right)$$

也就是说,$z$ 等于两种可能结果——$y$ 与 $1 - y$——所对应概率之比的自然对数,这就是 “对数几率” 名称的由来。

图 2 直观展示了线性输出是如何被转换成逻辑回归输出的。

左侧是直线 z=2x+5,标注了三个点;右侧是 S 型曲线,标注了同一组点经过 S 型函数转换后的位置
图 2. 左:线性函数 z = 2x + 5 的图像,其中标注了三个点;右:经过 S 型函数转换后,这三个点对应的输出位置。

在图 2 中,原本是一条直线的线性方程被送入 S 型函数之后,被"弯"成了 S 形。值得注意的是:左边那条线性方程可以输出非常大或非常小的 $z$ 值,但右边的 S 型函数输出 $y'$ 始终严格介于 0 和 1 之间。例如,左图中那个黄色的方块对应的 $z$ 值是 -10,经过 S 型函数转换后,在右图中的 $y'$ 值变成了 0.00004。


练习:检验你的理解#

假设有一个包含 3 个特征的逻辑回归模型,它的偏置项和权重如下:

$$\begin{align} b &= 1 \\ w_1 &= 2 \\ w_2 &= -1 \\ w_3 &= 5 \end{align}$$

给定下面这组输入值:

$$\begin{align} x_1 &= 0 \\ x_2 &= 10 \\ x_3 &= 2 \end{align}$$

请回答下面两个问题。

第 1 题:在上述输入下,$z$ 的值是多少?#

  • A. -1

  • B. 0

  • C. 0.731

  • D. 1

第 2 题:在上述输入下,逻辑回归模型的预测值是多少?#

  • A. 0.268

  • B. 0.5

  • C. 0.731

  • D. 1


关键术语:


小结

  • 逻辑回归是一种高效的概率预测机制:模型输出严格落在 0 到 1 之间,可以直接当作概率使用,也可以再转换成二元类别。

  • 逻辑回归在结构上可以拆成两步:先用一个线性方程得到 $z$(也就是对数几率),再把 $z$ 送进 S 型函数 $y' = \frac{1}{1 + e^{-z}}$,得到 0 到 1 之间的概率。

  • S 型函数有一个非常关键的性质:无论输入有多大或多小,输出都始终严格大于 0 且小于 1,这就是它能把任意实数转换为合法概率的根本原因。

阅读 --