当前位置: 首页 > article >正文

【漫话机器学习系列】113.逻辑回归(Logistic Regression) VS 线性回归(Linear Regression)

逻辑回归 vs 线性回归:详解对比

在机器学习和统计学中,逻辑回归(Logistic Regression)线性回归(Linear Regression) 都是非常常见的模型。尽管它们的数学表达式有一定的相似性,但它们的应用场景和目标却完全不同。本篇文章将详细对比两者的区别,并深入解析逻辑回归的数学原理。


1. 线性回归的基本概念

1.1 线性回归的数学表达

线性回归是一种监督学习算法,主要用于回归任务,即预测一个连续值。它的数学表达如下:

y = b_0 + b_1 x_1 + b_2 x_2 + \dots + b_k x_k + \epsilon

其中:

  • y 是目标变量(预测值)。
  • x_1, x_2, ..., x_k​ 是输入特征(自变量)。
  • b_0​ 是截距(bias)。
  • b_1, b_2, ..., b_k​ 是回归系数(权重)。
  • ϵ 是误差项。

1.2 线性回归的应用场景

  • 预测房价(根据面积、位置、房龄等因素)。
  • 预测股票价格(根据市场数据)。
  • 预测员工工资(根据经验、教育背景等)。

1.3 线性回归的目标

线性回归的目标是找到最优参数 b_0, b_1, ..., b_k​,使得预测值 \hat{y} 尽可能接近真实值 y。最常用的方法是最小二乘法(OLS, Ordinary Least Squares),即最小化均方误差(MSE):

MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y_i})^2


2. 逻辑回归的基本概念

逻辑回归主要用于分类任务,特别是二分类问题。它的核心思想是使用Sigmoid 函数(S 形函数)将线性回归的结果映射到 (0,1) 之间,进而输出概率值

2.1 逻辑回归的数学表达

逻辑回归的公式如下:

P(y=1 | x) = \frac{1}{1 + e^{-(b_0 + b_1 x_1 + ... + b_k x_k)}}

其中:

  • P(y=1 | x)代表输入x 属于类别 y=1 的概率
  • e 是自然对数的底数(约 2.718)。
  • b_0, b_1, ..., b_k​ 是模型参数。

这就是 Sigmoid 函数

\sigma(z) = \frac{1}{1 + e^{-z}}

Sigmoid 函数的作用是将输入值压缩到 (0,1) 之间,使其可以解释为概率。如下图所示,Sigmoid 函数的曲线呈现 S 形:

当:

  • z → +∞,σ(z) → 1(高概率)。
  • z → −∞,σ(z) → 0(低概率)。
  • z = 0z = 0,σ(0) = 0.5。

2.2 逻辑回归的目标

逻辑回归的目标是最大化似然函数(Maximum Likelihood Estimation, MLE),即找到最优的参数 b_0, b_1, ..., b_k​,使得训练数据的分类概率最大。

其损失函数为交叉熵损失(Cross Entropy Loss)

L = - \sum_{i=1}^{n} \left[ y_i \log P(y_i | x_i) + (1 - y_i) \log (1 - P(y_i | x_i)) \right]

这个损失函数衡量了模型预测的概率与真实标签之间的差距。


3. 逻辑回归 vs 线性回归

下表总结了两者的主要区别:

对比项线性回归(Linear Regression)逻辑回归(Logistic Regression)
目标任务回归(Regression)分类(Classification)
输出值任何实数(0,1)(0,1)(0,1) 概率
函数形式线性函数 y = b_0 + b_1 xSigmoid 函数 P(y=1) = \frac{1}{1 + e^{-z}}
损失函数均方误差(MSE)交叉熵损失(Cross Entropy)
优化方法最小二乘法(OLS)或梯度下降最大似然估计(MLE)+梯度下降
应用场景预测房价、股票、销量等预测疾病、垃圾邮件、信用违约等
分类能力不能分类可以用于二分类问题

4. 为什么不能用线性回归做分类?

4.1 线性回归的输出不受限制

假设我们使用线性回归来做二分类:

y = b_0 + b_1 x_1 + ... + b_k x_k

然后我们使用一个阈值来分类,例如:

  • y ≥ 0.5y 则预测为 1。
  • y < 0.5y 则预测为 0。

但是,线性回归的输出范围是 (-∞, +∞),没有界限,而概率应该在 (0,1) 之间

4.2 线性回归对异常值敏感

如果数据集中有一个异常值,比如 x 远大于其他样本,线性回归可能会预测 y 远大于 1,这与概率的定义不符。

4.3 线性回归无法拟合 S 形决策边界

许多分类问题的数据分布是非线性的,而逻辑回归的 Sigmoid 函数可以拟合S 形决策边界,但线性回归不能。


5. Python 代码示例

5.1 线性回归示例

from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
import numpy as np

# 生成回归数据
X, y = make_regression(n_samples=100, n_features=1, noise=10, random_state=42)

# 训练线性回归模型
model = LinearRegression()
model.fit(X, y)

# 预测
y_pred = model.predict(X)

5.2 逻辑回归示例

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

# 生成分类数据
X, y = make_classification(n_samples=100, n_features=2, random_state=42)

# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X, y)

# 预测
y_pred = model.predict(X)

6. 结论

  • 线性回归用于回归问题,逻辑回归用于分类问题
  • 逻辑回归通过Sigmoid 函数将输出映射到 (0,1) 之间,使其可以解释为概率。
  • 逻辑回归使用交叉熵损失进行优化,而线性回归使用最小二乘法
  • 在分类任务中,不能使用线性回归,否则会导致结果不可解释。

逻辑回归虽然简单,但在分类问题中仍然是一个强大的基线模型,并且具有很好的可解释性。


http://www.kler.cn/a/569009.html

相关文章:

  • JPA属性转换器的使用与实例解析
  • 3-5 WPS JS宏 工作表的移动与复制学习笔记
  • Vue3生命周期以及与Vue2的区别
  • 面试基础--JVM垃圾回收深度剖析(JDK8)
  • 北斗模块在无人机领域的革新应用与未来展望
  • 第一节:基于Winform框架的串口助手小项目---基础控件使用《C#编程》
  • MIT何恺明再次突破传统:分形递归架构引爆生成模型新纪元!
  • VirtualVM:Java 监控工具使用指南
  • LeetCode 72 - 编辑距离 (Edit Distance)
  • CSS 系列之:基础知识
  • ASP.NET 解决 NLog、log4net 和 Serilog 在 IIS 部署后不写日志的问题
  • [数据结构]树的概念及结构
  • 20250302让chrome打开刚关闭的网页
  • 计算机网络:Socket网络编程 Udp与Tcp协议 第一弹
  • 23种设计模式一览【设计模式】
  • MFC: 控件根据文本内容大小自动调整
  • Spring Boot 整合 JMS-ActiveMQ,并安装 ActiveMQ
  • 下载 MindSpore 配置 PyTorch环境
  • 对“预训练”的理解
  • 解锁高效开发新姿势:Trae AI编辑器深度体验