逻辑回归详细计算步骤

为了详细说明逻辑回归的数学原理,让我们使用一个简单的二元分类问题。假设我们要根据一个人的考试成绩(特征x)预测他们是否能被大学录取(目标变量y,1表示被录取,0表示未被录取)。我们有以下训练数据:

考试成绩是否录取
300
500
701
901

逻辑回归模型的数学表示形式如下:

h(x) = sigmoid(w * x + b)

其中,h(x)表示给定输入x(考试成绩)时被录取的概率,sigmoid是Sigmoid函数,w是权重,b是偏置项。

步骤1:初始化权重和偏置项

我们可以用任意较小的随机数初始化权重和偏置项。例如:

w = 0.1

b = 0.1

步骤2:计算线性组合和概率值

对于每个训练样本,我们先计算线性组合,然后将其输入Sigmoid函数得到概率值。

样本1(考试成绩=30):

线性组合 = w * x + b = 0.1 * 30 + 0.1 = 3.1

概率值 = sigmoid(3.1) = 1 / (1 + e^(-3.1)) ≈ 0.957

样本2(考试成绩=50):

线性组合 = w * x + b = 0.1 * 50 + 0.1 = 5.1

概率值 = sigmoid(5.1) = 1 / (1 + e^(-5.1)) ≈ 0.994

类似地,我们可以计算其他样本的概率值。

步骤3:计算损失函数

损失函数(Loss Function)衡量模型预测与实际标签之间的误差。逻辑回归通常使用交叉熵损失(Cross-Entropy Loss):

L(y, h(x)) = -[y * log(h(x)) + (1 – y) * log(1 – h(x))]

我们需要计算所有训练样本的损失函数值并求和,得到总损失。

步骤4:优化权重和偏置项

我们的目标是找到一组最佳权重和偏置项,使得损失函数值最小。我们可以使用梯度下降法来实现这一目标。首先,计算权重和偏置项的梯度,即损失函数对权重和偏置项的偏导数:

∂L/∂w = (h(x) – y) * x

∂L/∂b = (h(x) – y)

然后,使用学习率(α)更新权重和偏置项:

w = w – α * ∂L/∂w

b = b – α * ∂L/∂b

学习率(α)是一个超参数,用于控制参数更新的幅度。较大的学习率意味着更新幅度较大,可能导致参数在最佳值附近震荡;较小的学习率意味着收敛速度较慢。

步骤5:迭代优化

我们需要多次迭代训练样本,更新权重和偏置项,以最小化损失函数。每次迭代都需要完成步骤2到步骤4。迭代次数可以事先设定,或者当损失函数值的变化小于某个阈值时停止。

步骤6:模型评估和预测

在训练完成后,我们可以使用验证数据或测试数据评估模型的性能,例如计算准确率、精确率、召回率等指标。同时,我们可以使用训练好的模型对新的数据进行预测。预测过程如下:

  1. 对新数据(考试成绩)进行线性组合:Linear Combination = w * x + b
  2. 将线性组合值输入Sigmoid函数以获得概率值:h(x) = sigmoid(Linear Combination)
  3. 使用0.5作为阈值进行分类:如果 h(x) > 0.5,则预测为录取(1);如果 h(x) ≤ 0.5,则预测为未录取(0)。

这就是逻辑回归的数学原理和每一步运算过程。请注意,这个例子非常简化,实际应用中可能需要更多的数据和特征来提高预测准确性。

Python代码实现见:MLearnPractice/logicRegr.py

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注