逻辑回归:使用 S 型函数计算概率

许多问题都需要将概率估计值作为输出。 逻辑回归是一种用于计算概率的极其高效的机制。实际上,您可以通过以下两种方式之一使用返回的概率:

  • 按原样应用。例如,如果某个垃圾邮件预测模型将电子邮件作为输入,并输出值 0.932,则表示该电子邮件是垃圾邮件的概率为 93.2%

  • 转换为二元类别,例如 TrueFalseSpamNot Spam

本模块重点介绍如何直接使用逻辑回归模型输出。在分类模块中,您将学习如何将此输出转换为二元类别。

S 型函数

您可能想知道,逻辑回归模型如何确保其输出表示概率,始终输出介于 0 到 1 之间的值。实际上,有一系列函数(称为逻辑函数)的输出具有相同的特征。标准逻辑函数(也称为 S 型函数sigmoid 的意思是“S 形”)的公式如下:

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

其中:

  • f(x) 是 sigmoid 函数的输出。
  • e欧拉数:一个数学常数,约为 2.71828。
  • x 是 S 型函数的输入。

图 1 显示了 sigmoid 函数的相应图表。

绘制在笛卡尔坐标平面上、以原点为中心的 S 形曲线。
图 1. S 型函数的图。当 x 值减小到负无穷大时,曲线接近 0;当 x 值增大到正无穷大时,曲线接近 1。

随着输入 x 的增加,sigmoid 函数的输出会接近 1,但永远不会达到 1。同样,随着输入减小,sigmoid 函数的输出会接近但永远不会达到 0

点击此处可深入了解 sigmoid 函数背后的数学原理

下表显示了输入值在 -7 到 7 范围内的 S 型函数输出值。请注意,对于递减的负输入值,S 型函数值会快速接近 0;对于递增的正输入值,S 型函数值会快速接近 1。

不过,无论输入值有多大或多小,输出值始终大于 0 且小于 1。

输入 Sigmoid 输出
-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

使用 sigmoid 函数转换线性输出

以下等式表示的是逻辑回归模型的线性组成部分:

\[z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N\]

其中:

  • z 是线性方程的输出,也称为对数几率
  • b 是偏差。
  • w 的值是该模型学习的权重。
  • x 的值是特定样本的特征值。x

为了获得逻辑回归预测结果,接下来将 z 值传递给 sigmoid 函数,从而得到一个介于 0 和 1 之间的值(概率):

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

其中:

  • y' 是逻辑回归模型的输出。
  • e欧拉数:一个数学常数,约为 2.71828。
  • z 是线性输出(如上一个等式中计算的那样)。

点击此处详细了解对数几率

在等式 $z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N$ 中,z 被称为对数几率,因为如果您从以下 S 型函数(其中 $y$ 是逻辑回归模型的输出,表示概率)开始:

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

然后求解 z

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

然后,z 定义为两种可能结果(y1 – y)的概率之比的对数。

图 2 说明了如何使用这些计算将线性输出转换为逻辑回归输出。

左图:突出显示了点 (-7.5, -10)、(-2.5, 0) 和 (0, 5) 的直线。右图:突出显示了具有相应转换点 (-10, 0.00004)、(0, 0.5) 和 (5, 0.9933) 的 Sigmoid 曲线。
图 2. 左图:线性函数 z = 2x + 5 的图,其中突出显示了三个点。右图:经过 sigmoid 函数转换后,突出显示了相同的三个点的 sigmoid 曲线。

在图 2 中,线性方程成为 S 型函数的输入,该函数将直线弯曲成 S 形。请注意,线性方程可以输出非常大或非常小的 z 值,但 sigmoid 函数的输出 y' 始终介于 0 和 1 之间(不含 0 和 1)。例如,左侧图表中的黄色正方形的 z 值为 -10,但右侧图表中的 S 型函数将该 -10 映射为 y' 值 0.00004。

练习:检查您的理解情况

一个具有三个特征的逻辑回归模型具有以下偏差和权重:

\[\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 的值是多少?
-1
0
0.731
1
正确!由权重和偏差定义的线性方程为 z = 1 + 2x1 – x2 + 5 x3。将输入值代入方程式,得出 z = 1 + (2)(0) - (10) + (5)(2) = 1
2. 这些输入值的逻辑回归预测结果是什么?
0.268
0.5
0.731

如上文第 1 步中所计算,输入值的对数几率为 1。 将 z 的该值代入 S 型函数:

\(y = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-1}} = \frac{1}{1 + 0.367} = \frac{1}{1.367} = 0.731\)

1
请注意,sigmoid 函数的输出始终大于 0 且小于 1。