机器学习面试题:逻辑回归Logistic Regression(LR)

发布于:2025-09-15 ⋅ 阅读:(23) ⋅ 点赞:(0)

题目

(1)简述一下什么是逻辑回归Logistic Regression(LR);

(2)推导逻辑回归Logistic Regression(LR)的梯度表达式;

(3)在Logistic Regression(LR)里有两个特征,分别是x_1,x_2x_1,x_2前的权重参数分别是w_1,w_2,而且x_1 = a\cdot x_2。现在对LR加入L2正则,则模型优化后,推导参数w_1,w_2的关系;

解答

(1)

逻辑回归虽然名字里带有“回归”,但它实际上是一种解决分类问题(尤其是二分类)的经典机器学习算法。它的核心思想是:通过一个逻辑函数(Sigmoid函数),将线性回归的预测结果映射到0和1之间,从而得到某个样本属于特定类别的概率。

1.核心思想与工作原理
  1. 从线性回归出发

    • 线性回归的公式是:y = w_0 + w_1x_1 + w_2x_2 + ... + w_nx_n,它输出一个连续的数值,范围是 (-\infty, +\infty),适合预测价格、销量等。

    • 但分类问题需要输出一个概率,其值必须在 [0, 1] 之间。

  2. 引入Sigmoid函数(逻辑函数)

    • 为了解决这个矛盾,逻辑回归将线性回归的输出 z(z = w_0 + w_1x_1 + ... + w_nx_n)作为Sigmoid函数的输入。

    • Sigmoid函数的公式为:\sigma(z) = \frac{1}{1 + e^{-z}}

    • 它的功能是将任何实数 z “挤压”到 (0, 1) 区间内。当 z 很大时,\sigma(z) 无限接近1;当 z 很小时,\sigma(z) 无限接近0。

  3. 得到概率输出

    • 最终,逻辑回归模型的输出是一个概率值:
      P(y=1 | x) = \frac{1}{1 + e^{-(w_0 + w_1x_1 + ... + w_nx_n)}}

    • 这个 P(y=1 | x) 表示在给定输入特征 x 的情况下,样本属于类别1的概率。

    • 通常,我们会设定一个阈值(默认为0.5)来做最终分类:

      • 如果 P(y=1 | x) >= 0.5,则预测为类别1。

      • 如果 P(y=1 | x) < 0.5,则预测为类别0。

2.主要特点
  • 输出是概率:这不仅给出了分类结果,还给出了预测的“把握程度”,这比单纯的硬分类更具解释性。

  • 本质是线性分类器:它的决策边界是一条直线(在二维空间中)或一个超平面(在高维空间中)。这意味着它擅长处理线性可分近似线性可分的数据。

  • 训练过程:通过极大似然估计法来寻找最优的参数 (w_0, w_1, ..., w_n),使得预测出的概率分布最接近真实数据的分布。优化过程通常使用梯度下降等算法。

3.优点与缺点

优点:

  1. 简单高效:实现简单,计算成本低,易于理解和部署。

  2. 可解释性强:不仅可以预测类别,还可以得到概率值。并且模型的权重参数可以直观地反映特征对结果的影响程度(例如,权重越大,该特征对预测为正类的贡献越大)。

  3. 不易过拟合:尤其是当数据集线性可分或特征数量不多时。也可以通过L1、L2正则化来防止过拟合。

缺点:

  1. 非线性决策边界的数据集表现较差。虽然可以通过引入特征交叉项或多项式特征来提升能力,但这并非其天然优势。

  2. 当特征空间很大或数据特征之间存在高度相关性时,性能可能会下降。

(2)

在逻辑回归(Logistic Regression, LR)中,梯度是优化算法(如梯度下降)的关键部分。

1. 逻辑回归模型和损失函数

逻辑回归的假设函数为:

h_{\theta}(x) = \sigma(\theta^T x) = \frac{1}{1 + e^{-\theta^T x}}

其中,\theta 是参数向量,x 是特征向量。

对于单个样本 (x, y),其中 y \in \{0, 1\},交叉熵损失函数为:

L(\theta) = - \left[ y \log(h_{\theta}(x)) + (1 - y) \log(1 - h_{\theta}(x)) \right]

对于整个训练集(有 m 个样本),代价函数为:

J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_{\theta}(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_{\theta}(x^{(i)})) \right]

2. 梯度推导

为了计算梯度 \nabla_{\theta} J(\theta),我们需要求偏导数 \frac{\partial J(\theta)}{\partial \theta_j}​。这里使用链式法则。

z = \theta^T x,则 h = \sigma(z) = \frac{1}{1 + e^{-z}}。Sigmoid函数的导数为:

\frac{\partial h}{\partial z} = h(1 - h)

对于单个样本,损失函数对 \theta_j 的偏导数为:

\frac{\partial L}{\partial \theta_j} = \frac{\partial L}{\partial h} \cdot \frac{\partial h}{\partial z} \cdot \frac{\partial z}{\partial \theta_j}

其中:

  • \frac{\partial L}{\partial h} = \frac{h - y}{h(1 - h)}(通过求导得到)

  • \frac{\partial h}{\partial z} = h(1 - h)

  • \frac{\partial z}{\partial \theta_j} = x_j

代入后:

\frac{\partial L}{\partial \theta_j} = \left( \frac{h - y}{h(1 - h)} \right) \cdot (h(1 - h)) \cdot x_j = (h - y) x_j

因此,对于单个样本,梯度向量为:

\nabla_{\theta} L(\theta) = (h_{\theta}(x) - y) x

对于整个训练集,代价函数 J(θ) 的梯度是所有样本梯度的平均值:

\nabla_{\theta} J(\theta) = \frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) x^{(i)}

3. 向量化形式

在实现中,通常使用向量化计算以提高效率。设:

  • X 为设计矩阵,维度 m×n(m 个样本,n 个特征),其中每一行是一个样本 x^{(i)}

  • y 为标签向量,维度 m×1。

  • h = \sigma(X \theta) 为预测向量,维度 m×1。

则梯度的向量化形式为:

\nabla_{\theta} J(\theta) = \frac{1}{m} X^T (h - y)

4. 总结

逻辑回归的梯度表达式为:

\nabla_{\theta} J(\theta) = \frac{1}{m} X^T (\sigma(X \theta) - y)

这个梯度用于梯度下降更新参数:

\theta_{\text{new}} = \theta_{\text{old}} - \alpha \nabla_{\theta} J(\theta)

其中 α 是学习率。

(3)

  1. 模型预测值:逻辑回归的线性部分为 z = w_1 x_1 + w_2 x_2 + b(b为偏置项)。由于 x_1 = a x_2,代入得z = w_1 (a x_2) + w_2 x_2 + b = (a w_1 + w_2) x_2 + b。因此,交叉熵损失函数仅依赖于组合 c = a w_1 + w_2​ 和 b。

  2. 总损失函数:加入L2正则化后,总损失函数为 J(w_1, w_2, b) = L(c, b) + \frac{\lambda}{2} (w_1^2 + w_2^2),其中 L(c, b) 是交叉熵损失,λ 是正则化参数。

  3. 优化条件:在最优解处,梯度为零。计算偏导数:

    • \frac{\partial J}{\partial w_1} = \frac{\partial L}{\partial c} \cdot a + \lambda w_1 = 0

    • \frac{\partial J}{\partial w_2} = \frac{\partial L}{\partial c} \cdot 1 + \lambda w_2 = 0

  4. 求解关系:从第二个方程得 \frac{\partial L}{\partial c} = -\lambda w_2,代入第一个方程:a \cdot (-\lambda w_2) + \lambda w_1 = 0。 简化得w_1 - a w_2 = 0,即 w_1 = a w_2​。

结论:模型优化后,权重 w_1​ 和 w_2 的关系为 w_1 = a w_2​。这意味着权重与特征之间的线性关系一致:特征 x_1​ 是 x_2​ 的 a 倍,权重 w_1 也是 w_2 的 a 倍。这种关系确保了在L2正则化下,模型对相关特征的处理是平衡的,避免了过拟合。