逻辑回归如何从分类因变量构建 Sigmoid 曲线?

时间:2021-01-03 03:50:59

标签: scikit-learn logistic-regression sigmoid

我正在探索 Scikit-learn 逻辑回归算法。我知道作为训练的一部分,该算法构建了一条回归曲线,其中 y 变量的范围从 0 到 1(sigmoid S 曲线)。 y 变量在这里是一个连续变量(尽管实际上它是一个离散变量)。 .

当训练数据集反映现实并将 y 变量作为离散变量包含在内时,算法如何能够学习 S 曲线?训练中没有概率估计,所以我想知道算法如何能够学习S曲线。

2 个答案:

答案 0 :(得分:0)

<块引用>

训练中没有概率估计

当然,但我们假装是为了建模。我们希望最大化您所说的“现实”的概率——如果观察到的响应(您所指的离散值)为 0,我们希望以概率 1 进行预测;同样,如果响应为 1,我们希望以概率 1 进行预测。

将模型拟合到一个数据点,以概率 1 得到正确答案,这很容易。当然,我们有不止一个数据点。我们必须平衡这些问题。我们希望所有数据点的预测值 sigmoid(weights * features) 接近真实响应(0 或 1),但可能没有设置模型参数的方法来实现这一点。 (也就是说,数据可能不是线性可分的。)

答案 1 :(得分:0)

好问题!逻辑回归中的拟合过程是一个搜索过程,它寻找使模型(连续值)和数据(离散值)预测的概率误差最小的 Beta 系数。

在逻辑回归中,您可以使用逻辑函数(也称为 sigmoid 函数)对概率进行建模:

XB = B0 + B1 * X1 + B2 * X2 + ... + BN * XN
p(X) = e^(XB) / (1 + e^(XB))

该算法尝试使用最大似然估计找到最小化误差的 beta 系数。要最小化的函数称为成本函数,它可以是任意数量的东西。最常见的有:

  1. sum (P(X_i) - y_i)^2
  2. sum |P(X_i) - y_i|

随机选择一组随机的 Beta,计算成本,然后算法将选择一组新的 Beta,从而降低成本。当成本降低小于给定阈值(由 sklearn 中的 tol 参数设置)时,算法停止搜索新的 beta。

模型收敛到最终系数集的方式取决于 solver 参数。每个求解器都有不同的收敛到最终 Beta 集的方式,但它们通常收敛到相同的结果。