假设你是一个刚接触逻辑回归的学生,如何能够快速理解并构建逻辑回归的理论体系,帮助进行后续机器学习课程?如果直接使用Python
sklearn
工具进行代码例子学习,会遇到什么困难?
sklearn
的LogisticRegression
类直接调用模型,你可能无法理解以下关键问题:
w
和偏置b
)是如何确定的?我们需要一种方法,能从
概率分布
、损失函数
和优化算法
的底层逻辑出发,理解逻辑回归
如何通过数学推导实现二分类任务
,从而为后续学习更复杂的模型(如神经网络、支持向量机)打下基础。
问题背景:
假设你是一名学生,想根据考试成绩(比如数学和语文分数)预测是否能考上重点高中(二分类
问题:考上/没考上)。
线性回归
(如 y = w x + b y = wx + b y=wx+b),预测结果可能是连续值(如 1.2 或 -0.5),但实际我们需要的是概率(0到1之间)
或类别(0或1)
。因此
逻辑回归诞生了——它将线性回归的结果
通过一个“概率转换器”(Sigmoid函数)
映射到0到1之间
,从而解决分类问题
。
待了解知识点补充:
逻辑回归(
Logistic Regression
)是机器学习中一种基础且重要的分类算法
,常用于二分类问题
(如垃圾邮件检测、疾病诊断等),而非预测连续数值
。它是机器学习和统计学中应用最广泛的模型之一,尽管名字中包含“回归”,但它本质上是一个分类模型
.
分类任务的需求
假设你是一名学生,想根据数学和语文成绩预测是否能考上重点高中(二分类问题:考上/没考上)。这类问题的核心是:
线性回归的局限性
线性回归(如 y = w x + b y = wx + b y=wx+b)的输出是连续值(如1.2或-0.5),无法直接表示概率或类别。例如:
逻辑回归的解决方案
逻辑回归通过以下步骤解决分类问题:
⭐️⭐️⭐️ 伯努利分布
逻辑回归假设目标变量 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)=1−p
例如,考上重点高中的概率 p p p 和没考上的概率 1 − p 1-p 1−p 构成了伯努利分布。
⭐️⭐️⭐️对数几率(Log Odds)
对数几率是“成功概率”与“失败概率”比值的对数:
对数几率 = ln ( p 1 − p ) \text{对数几率} = \ln\left( \frac{p}{1-p} \right) 对数几率=ln(1−pp)
例如,若考上概率 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+e−z1
其S形曲线的特性:
⭐️⭐️⭐️ 极大似然估计(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=1∏NP(yi∣xi;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(yi∣xi;w,b)=σ(zi)yi⋅(1−σ(zi))1−yi
对数似然函数简化计算:
ℓ ( 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=1∑N[yilnσ(zi)+(1−yi)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=1∑N(yi−σ(zi))xi,j∂b∂ℓ=i=1∑N(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} wj←wj+η⋅∂wj∂ℓb←b+η⋅∂b∂ℓ
其中 η \eta η 是学习率,控制参数更新的步长。
数据示例
学生 | 数学成绩 (x₁) | 语文成绩 (x₂) | 是否考上 (y) |
---|---|---|---|
A | 85 | 90 | 1 |
B | 60 | 70 | 0 |
C | 75 | 80 | 1 |
D | 50 | 60 | 0 |
训练过程
最终参数:假设 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.3x2−50=0⇒x2=0.350−0.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
优点:
缺点:
仅适用于线性可分数据
,若数据存在非线性关系需扩展(如多项式特征);极端值可能影响参数估计
。适用场景:
Q1:逻辑回归和线性回归的区别?
均方误差
,逻辑回归用交叉熵损失
;回归
,逻辑回归用于分类
。Q2:为什么用Sigmoid函数而不是其他函数?
逻辑回归通过以下步骤实现分类:
极大似然估计
找到最佳参数
;概率阈值
(如0.5)分类。扩展思考:
通过系统性学习逻辑回归,学生不仅能掌握其数学原理,还能理解分类任务的核心思想,为后续学习更复杂的模型(如支持向量机、神经网络)打下基础。