新手村:逻辑回归-01.什么是逻辑回归-初识速学

新手村:逻辑回归-01.什么是逻辑回归-初识速学

假设你是一个刚接触逻辑回归的学生,如何能够快速理解并构建逻辑回归的理论体系,帮助进行后续机器学习课程?如果直接使用Python sklearn工具进行代码例子学习,会遇到什么困难?

学生思考方向:

  • 问题痛点
    如果仅依赖sklearnLogisticRegression类直接调用模型,你可能无法理解以下关键问题:
    • 模型如何将输入特征映射到分类结果?
    • 参数(如权重w和偏置b)是如何确定的?
    • 为什么不能直接用线性回归解决分类问题?
      这些疑问会导致你无法灵活调整模型(如处理非线性数据或解释结果),甚至可能误用算法。

需求引入

我们需要一种方法,能从概率分布损失函数优化算法的底层逻辑出发,理解逻辑回归如何通过数学推导实现二分类任务,从而为后续学习更复杂的模型(如神经网络、支持向量机)打下基础。

问题背景
假设你是一名学生,想根据考试成绩(比如数学和语文分数)预测是否能考上重点高中(二分类问题:考上/没考上)。

  • 线性回归的局限性
    如果直接用线性回归(如 y = w x + b y = wx + b y=wx+b),预测结果可能是连续值(如 1.2 或 -0.5),但实际我们需要的是概率(0到1之间)类别(0或1)

因此
逻辑回归诞生了——它将线性回归的结果通过一个“概率转换器”(Sigmoid函数)映射到0到1之间,从而解决分类问题

流程图

新手村:逻辑回归-01.什么是逻辑回归-初识速学_第1张图片


分解学习文章

  • 新手村:逻辑回归-理解01:目标变量、伯努利分布的概率概率、特征X之间的关系
  • 新手村:逻辑回归-理解02:逻辑回归中的伯努利分布

待了解知识点补充:

  • 逻辑回归为什么需要服从伯努利分布?新手村:逻辑回归-理解02:逻辑回归中的伯努利分布
  • 为什么输出概率与输入特征的线性组合z = w·x + b呈对数关系 新手村:逻辑回归-理解01:目标变量、伯努利分布的概率概率、特征X之间的关系
  • Sigmoid函数为什么可以转换为概率?
  • 为什么使用对数损失函数(交叉熵损失)衡量预测与真实标签的差异?而不是其他损失函数,比如均方误差?
  • 信息熵理论?
  • 通过最大化对数似然(等价于最小化对数损失函数),逻辑回归找到最优参数w,使得模型输出的概率与真实标签尽可能一致。如何理解?我是一个刚接触的学生,请通俗易懂或者举例讲解

什么是逻辑回归?

逻辑回归(Logistic Regression)是机器学习中一种基础且重要的分类算法,常用于二分类问题(如垃圾邮件检测、疾病诊断等),而非预测连续数值。它是机器学习和统计学中应用最广泛的模型之一,尽管名字中包含“回归”,但它本质上是一个分类模型.

为什么需要逻辑回归?

  1. 分类任务的需求
    假设你是一名学生,想根据数学和语文成绩预测是否能考上重点高中(二分类问题:考上/没考上)。这类问题的核心是:

    • 输出类型:需要预测的是类别(0或1),而非连续值(如分数)。
    • 概率需求:希望知道“考上”的概率(如80%),而非直接得到0或1的硬分类结果。
  2. 线性回归的局限性
    线性回归(如 y = w x + b y = wx + b y=wx+b)的输出是连续值(如1.2或-0.5),无法直接表示概率或类别。例如:

    • 若预测结果为1.2,无法解释为“考上”的概率;
    • 若结果为负数(如-0.5),则逻辑上无法表示“不可能考上”。
  3. 逻辑回归的解决方案
    逻辑回归通过以下步骤解决分类问题:

    1. 线性组合:将特征与权重结合,得到线性输出 z = w T x + b z = w^T x + b z=wTx+b
    2. 概率转换:用Sigmoid函数将线性输出映射到0到1的概率;
    3. 优化参数:通过最大化数据的似然函数找到最佳权重和偏置。

核心概念:概率与分类

⭐️⭐️⭐️ 伯努利分布
逻辑回归假设目标变量 Y Y Y 服从伯努利分布,即:
P ( Y = 1 ∣ X ) = p , P ( Y = 0 ∣ X ) = 1 − p P(Y=1 | X) = p, \quad P(Y=0 | X) = 1 - p P(Y=1∣X)=p,P(Y=0∣X)=1p
例如,考上重点高中的概率 p p p 和没考上的概率 1 − p 1-p 1p 构成了伯努利分布。

⭐️⭐️⭐️对数几率(Log Odds)
对数几率是“成功概率”与“失败概率”比值的对数:
对数几率 = ln ⁡ ( p 1 − p ) \text{对数几率} = \ln\left( \frac{p}{1-p} \right) 对数几率=ln(1pp)
例如,若考上概率 p = 0.8 p=0.8 p=0.8,则几率为 4 : 1 4:1 4:1,对数几率为 ln ⁡ ( 4 ) ≈ 1.386 \ln(4) \approx 1.386 ln(4)1.386

⭐️⭐️⭐️Sigmoid函数
Sigmoid函数将对数几率(或线性组合 z z z)映射到0到1的概率:
p = σ ( z ) = 1 1 + e − z p = \sigma(z) = \frac{1}{1 + e^{-z}} p=σ(z)=1+ez1
其S形曲线的特性:

  • z > 0 z > 0 z>0 时, σ ( z ) > 0.5 \sigma(z) > 0.5 σ(z)>0.5,预测为正类(如“考上”);
  • z = 0 z = 0 z=0 时,概率为0.5,表示两类概率相等;
  • z < 0 z < 0 z<0 时,预测为负类(如“没考上”)。

数学推导:参数优化

⭐️⭐️⭐️ 极大似然估计(MLE)
逻辑回归的目标是找到使数据出现概率最大的参数 w w w b b b。似然函数为所有样本概率的乘积:
L ( w , b ) = ∏ i = 1 N P ( y i ∣ x i ; w , b ) L(w,b) = \prod_{i=1}^N P(y_i | x_i; w,b) L(w,b)=i=1NP(yixi;w,b)
其中:
P ( y i ∣ x i ; w , b ) = σ ( z i ) y i ⋅ ( 1 − σ ( z i ) ) 1 − y i P(y_i | x_i; w,b) = \sigma(z_i)^{y_i} \cdot (1 - \sigma(z_i))^{1 - y_i} P(yixi;w,b)=σ(zi)yi(1σ(zi))1yi
对数似然函数简化计算:
ℓ ( w , b ) = ∑ i = 1 N [ y i ln ⁡ σ ( z i ) + ( 1 − y i ) ln ⁡ ( 1 − σ ( z i ) ) ] \ell(w,b) = \sum_{i=1}^N \left[ y_i \ln \sigma(z_i) + (1 - y_i) \ln(1 - \sigma(z_i)) \right] (w,b)=i=1N[yilnσ(zi)+(1yi)ln(1σ(zi))]

梯度下降法
通过求导得到梯度,并迭代更新参数:
∂ ℓ ∂ w j = ∑ i = 1 N ( y i − σ ( z i ) ) x i , j ∂ ℓ ∂ b = ∑ i = 1 N ( y i − σ ( z i ) ) \frac{\partial \ell}{\partial w_j} = \sum_{i=1}^N (y_i - \sigma(z_i)) x_{i,j} \\ \frac{\partial \ell}{\partial b} = \sum_{i=1}^N (y_i - \sigma(z_i)) wj=i=1N(yiσ(zi))xi,jb=i=1N(yiσ(zi))
更新规则:
w j ← w j + η ⋅ ∂ ℓ ∂ w j b ← b + η ⋅ ∂ ℓ ∂ b w_j \leftarrow w_j + \eta \cdot \frac{\partial \ell}{\partial w_j} \\ b \leftarrow b + \eta \cdot \frac{\partial \ell}{\partial b} wjwj+ηwjbb+ηb
其中 η \eta η 是学习率,控制参数更新的步长。


实例演示:考试成绩预测

数据示例

学生 数学成绩 (x₁) 语文成绩 (x₂) 是否考上 (y)
A 85 90 1
B 60 70 0
C 75 80 1
D 50 60 0

训练过程

  1. 初始化参数:假设 w = [ 0.1 , 0.1 ] w = [0.1, 0.1] w=[0.1,0.1] b = 0 b = 0 b=0
  2. 计算概率
    • 对学生A:
      z = 0.1 × 85 + 0.1 × 90 = 17.5 ⇒ σ ( 17.5 ) ≈ 1 z = 0.1 \times 85 + 0.1 \times 90 = 17.5 \quad \Rightarrow \quad \sigma(17.5) \approx 1 z=0.1×85+0.1×90=17.5σ(17.5)1
    • 对学生B:
      z = 0.1 × 60 + 0.1 × 70 = 13 ⇒ σ ( 13 ) ≈ 1 z = 0.1 \times 60 + 0.1 \times 70 = 13 \quad \Rightarrow \quad \sigma(13) \approx 1 z=0.1×60+0.1×70=13σ(13)1
      (此时预测结果与实际不符,需调整参数)
  3. 梯度下降:通过多次迭代优化参数,直到预测概率与标签匹配度最高。

最终参数:假设 w = [ 0.5 , 0.3 ] w = [0.5, 0.3] w=[0.5,0.3] b = − 50 b = -50 b=50,则决策边界为:
0.5 x 1 + 0.3 x 2 − 50 = 0 ⇒ x 2 = 50 − 0.5 x 1 0.3 0.5x_1 + 0.3x_2 - 50 = 0 \quad \Rightarrow \quad x_2 = \frac{50 - 0.5x_1}{0.3} 0.5x1+0.3x250=0x2=0.3500.5x1
这条直线将平面划分为“考上”和“没考上”两个区域。


决策边界与分类

逻辑回归的决策边界是线性的,其方程为:
w 1 x 1 + w 2 x 2 + b = 0 w_1 x_1 + w_2 x_2 + b = 0 w1x1+w2x2+b=0

  • 上方区域 P ( Y = 1 ) > 0.5 P(Y=1) > 0.5 P(Y=1)>0.5,预测为正类;
  • 下方区域 P ( Y = 1 ) < 0.5 P(Y=1) < 0.5 P(Y=1)<0.5,预测为负类。

优缺点与适用场景

优点

  • 简单高效:计算速度快,适合高维数据;
  • 概率输出:直接输出概率,便于阈值调整;
  • 可解释性:权重 w j w_j wj 表示特征对结果的影响方向和强度。

缺点

  • ⭐️⭐️⭐️ 线性假设仅适用于线性可分数据,若数据存在非线性关系需扩展(如多项式特征);
  • ⭐️⭐️⭐️对异常值敏感极端值可能影响参数估计

适用场景

  • ⭐️⭐️⭐️二分类问题(如垃圾邮件检测);
  • ⭐️⭐️⭐️多分类问题(通过“一对多”策略扩展);
  • ⭐️⭐️⭐️⭐️⭐️⭐️需要概率输出的场景(如信用评分)。

7. 常见问题解答

Q1:逻辑回归和线性回归的区别?

  • 输出类型:线性回归输出连续值,逻辑回归输出概率;
  • 损失函数:线性回归用均方误差,逻辑回归用交叉熵损失
  • 适用任务:线性回归用于回归,逻辑回归用于分类

Q2:为什么用Sigmoid函数而不是其他函数?

  • Sigmoid函数的S形曲线天然适合将实数映射到0-1概率;
  • 其导数形式简单,便于梯度计算。

总结与扩展思考

逻辑回归通过以下步骤实现分类:

  1. 线性组合特征:将输入与权重结合;
  2. 概率转换:用Sigmoid函数输出概率;
  3. 参数优化:通过极大似然估计找到最佳参数
  4. 决策边界划分:根据概率阈值(如0.5)分类。

扩展思考

  • 如何处理非线性可分数据?(引入多项式特征或核方法)
  • 如何防止过拟合?(正则化、交叉验证)
  • 逻辑回归能否用于多分类问题?(通过“一对多”策略实现)

通过系统性学习逻辑回归,学生不仅能掌握其数学原理,还能理解分类任务的核心思想,为后续学习更复杂的模型(如支持向量机、神经网络)打下基础。

你可能感兴趣的:(机器学习,逻辑回归,算法,机器学习)