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

【Logistic Regression】机器学习中的基础分类模型

逻辑斯蒂回归:机器学习中的基础分类模型

在机器学习和统计学中,逻辑斯蒂回归(Logistic Regression)是解决 二分类问题(Binary Classification)的一种经典方法。

尽管名字中有“回归”二字,但它其实是一个分类算法。本文将深入讲解逻辑斯蒂回归的基本原理、数学公式、模型优化方法以及其应用场景。


1.什么是逻辑斯蒂回归?

逻辑斯蒂回归属于 广义线性模型,主要用于二分类问题。与线性回归不同的是,逻辑斯蒂回归通过 Sigmoid 函数(也称为逻辑函数)将线性回归的结果映射到 ( 0 , 1 ) (0,1) (0,1) 区间,从而输出一个概率值,表示事件发生的可能性。

公式如下:

P ( Y = 1 ∣ X ) = σ ( w T X + b ) P(Y=1 | X) = \sigma(w^T X + b) P(Y=1∣X)=σ(wTX+b)

其中:

  • X X X 是输入特征向量(例如, X = ( x 1 , x 2 , . . . , x n ) X = (x_1, x_2, ..., x_n) X=(x1,x2,...,xn)

  • w w w 是特征的权重向量(例如, w = ( w 1 , w 2 , . . . , w n ) w = (w_1, w_2, ..., w_n) w=(w1,w2,...,wn)

  • b b b 是偏置项(截距)

  • σ ( z ) \sigma(z) σ(z)Sigmoid 函数,定义为:

σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1
在这里插入图片描述

Sigmoid 函数将线性回归的输出结果压缩到 0 和 1 之间,因此它非常适合表示概率。

2.决策边界-如何进行分类?

逻辑斯蒂回归模型的输出是一个 概率值,表示样本属于某一类别的概率。为了做出分类决策,我们通常设定一个阈值(例如 0.5):

  • 如果模型输出的概率大于或等于 0.5,预测样本属于 类别 1

  • 如果输出的概率小于 0.5,预测样本属于 类别 0

决策规则可以写为:

y ^ = { 1 , if  P ( Y = 1 ∣ X ) ≥ 0.5 0 , otherwise \hat{y} = \begin{cases} 1, & \text{if } P(Y=1|X) \geq 0.5 \\ 0, & \text{otherwise} \end{cases} y^={1,0,if P(Y=1∣X)0.5otherwise
然而决策边界也可以是非线性的,只要使用多项式特征扩展线性函数为非线性函数即可
在这里插入图片描述

3.逻辑斯蒂回归的损失函数

与线性回归不同,逻辑斯蒂回归的损失函数使用 对数似然函数(Log-Likelihood),也称为 交叉熵损失(Cross-Entropy Loss),目标是最小化损失函数以提高模型的准确性。

对于单个样本 ( X i , y i ) (X_i, y_i) (Xi,yi),其对数似然函数为:

ℓ ( w , b ) = y i log ⁡ P ( Y = 1 ∣ X i ) + ( 1 − y i ) log ⁡ ( 1 − P ( Y = 1 ∣ X i ) ) \ell(w, b) = y_i \log P(Y=1 | X_i) + (1 - y_i) \log (1 - P(Y=1 | X_i)) (w,b)=yilogP(Y=1∣Xi)+(1yi)log(1P(Y=1∣Xi))

对于整个训练集( m m m 个样本),总损失函数为:

J ( w , b ) = − 1 m ∑ i = 1 m [ y i log ⁡ y ^ i + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] J(w, b) = -\frac{1}{m} \sum_{i=1}^{m} \left[y_i \log \hat{y}_i + (1 - y_i) \log (1 - \hat{y}_i)\right] J(w,b)=m1i=1m[yilogy^i+(1yi)log(1y^i)]

其中, y ^ i = σ ( w T X i + b ) \hat{y}_i = \sigma(w^T X_i + b) y^i=σ(wTXi+b) 是模型的预测概率, y i y_i yi 是实际标签。

损失函数的构造过程

为了训练逻辑斯蒂回归模型,需要定义一个损失函数来衡量模型预测与真实标签之间的差异。常用的损失函数是 对数损失函数(Log Loss),其构造过程如下:

  1. 似然函数:首先,定义样本属于类别 1 的概率为 P ( y = 1 ∣ x ) = σ ( z ) P(y=1|\mathbf{x}) = \sigma(z) P(y=1∣x)=σ(z),属于类别 0 的概率为 P ( y = 0 ∣ x ) = 1 − σ ( z ) P(y=0|\mathbf{x}) = 1 - \sigma(z) P(y=0∣x)=1σ(z)。对于给定的样本集 { ( x i , y i ) } i = 1 m \{(\mathbf{x}_i, y_i)\}_{i=1}^m {(xi,yi)}i=1m,其中 y i ∈ { 0 , 1 } y_i \in \{0,1\} yi{0,1},则似然函数表示为:

L ( w , b ) = ∏ i = 1 m P ( y i ∣ x i ) L(\mathbf{w}, b) = \prod_{i=1}^m P(y_i|\mathbf{x}_i) L(w,b)=i=1mP(yixi)

由于 y i y_i yi 只能取 0 或 1,上式可写为:

L ( w , b ) = ∏ i = 1 m [ σ ( z i ) ] y i [ 1 − σ ( z i ) ] 1 − y i L(\mathbf{w}, b) = \prod_{i=1}^m [\sigma(z_i)]^{y_i} [1 - \sigma(z_i)]^{1 - y_i} L(w,b)=i=1m[σ(zi)]yi[1σ(zi)]1yi

  1. 对数似然函数:为了简化计算取对数得到对数似然函数:

ℓ ( w , b ) = ∑ i = 1 m [ y i log ⁡ ( σ ( z i ) ) + ( 1 − y i ) log ⁡ ( 1 − σ ( z i ) ) ] \ell(\mathbf{w}, b) = \sum_{i=1}^m \left[ y_i \log(\sigma(z_i)) + (1 - y_i) \log(1 - \sigma(z_i)) \right] (w,b)=i=1m[yilog(σ(zi))+(1yi)log(1σ(zi))]

  1. 损失函数为了最小化损失,定义损失函数为对数似然函数的负值

J ( w , b ) = − ℓ ( w , b ) = − ∑ i = 1 m [ y i log ⁡ ( σ ( z i ) ) + ( 1 − y i ) log ⁡ ( 1 − σ ( z i ) ) ] J(\mathbf{w}, b) = -\ell(\mathbf{w}, b) = -\sum_{i=1}^m \left[ y_i \log(\sigma(z_i)) + (1 - y_i) \log(1 - \sigma(z_i)) \right] J(w,b)=(w,b)=i=1m[yilog(σ(zi))+(1yi)log(1σ(zi))]

这就是 对数损失函数,它度量模型预测概率与真实标签之间的差异。通过最小化该损失函数,可以优化模型参数,使预测结果更接近真实情况。

4.优化:如何训练逻辑斯蒂回归模型?

逻辑斯蒂回归通过 梯度下降法(Gradient Descent)来优化参数(权重 w w w 和偏置 b b b)。梯度下降法通过更新模型参数,最小化损失函数。

更新公式如下:

w : = w − α ∂ J ∂ w , b : = b − α ∂ J ∂ b w := w - \alpha \frac{\partial J}{\partial w}, \quad b := b - \alpha \frac{\partial J}{\partial b} w:=wαwJ,b:=bαbJ

其中, α \alpha α 是学习率,控制每次参数更新的步长。

损失函数的梯度计算如下:

∂ J ∂ w = 1 m ∑ i = 1 m ( y ^ i − y i ) X i \frac{\partial J}{\partial w} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}_i - y_i) X_i wJ=m1i=1m(y^iyi)Xi

∂ J ∂ b = 1 m ∑ i = 1 m ( y ^ i − y i ) \frac{\partial J}{\partial b} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}_i - y_i) bJ=m1i=1m(y^iyi)

5.逻辑斯蒂回归与线性回归的对比

逻辑斯蒂回归和线性回归的主要区别在于输出类型和损失函数:

比较项线性回归逻辑斯蒂回归
目标变量连续值概率值(0-1)
损失函数均方误差(MSE)交叉熵损失(log-loss)
输出范围 ( − ∞ , + ∞ ) (-\infty, +\infty) (,+) ( 0 , 1 ) (0,1) (0,1)
适用场景回归任务二分类任务

线性回归预测的是一个连续值,而逻辑斯蒂回归预测的是概率值,通常用于分类任务。

6.正则化:避免过拟合

为了避免模型 过拟合,逻辑斯蒂回归通常会加入 正则化项,例如 L1 正则化(Lasso)和 L2 正则化(Ridge)。正则化有助于控制模型复杂度,防止过拟合。

正则化后的损失函数如下:

J ( w , b ) = − 1 m ∑ [ y i log ⁡ y ^ i + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] + λ ∣ ∣ w ∣ ∣ 2 J(w, b) = -\frac{1}{m} \sum \left[y_i \log \hat{y}_i + (1 - y_i) \log (1 - \hat{y}_i)\right] + \lambda ||w||^2 J(w,b)=m1[yilogy^i+(1yi)log(1y^i)]+λ∣∣w2

其中, λ \lambda λ 是正则化参数,用于控制正则化的强度。

7.逻辑斯蒂回归的应用场景

逻辑斯蒂回归是机器学习中非常基础且有效的分类模型,广泛应用于多个领域:

  • 医学诊断:判断病人是否患有某种疾病

  • 金融风控:例如信用卡欺诈检测、贷款违约预测

  • 广告点击率预估(CTR Prediction):预测广告是否被点击

  • 文本分类:例如垃圾邮件检测,情感分析

8.总结

逻辑斯蒂回归通过 Sigmoid 函数 将线性回归的输出映射到 ( 0 , 1 ) (0,1) (0,1) 范围,从而将问题转化为概率预测,适用于二分类问题。通过最小化交叉熵损失函数并使用梯度下降法优化参数,逻辑斯蒂回归可以快速而有效地进行分类任务。尽管它是一个相对简单的模型,但在许多实际应用中依然表现出色。


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

相关文章:

  • SpringAI集成DeepSeek实战
  • 【信息学奥赛一本通 C++题解】1258:【例9.2】数字金字塔
  • 鸿蒙next开发-struct如何封装共用模块
  • vue若依框架dicts中字典项的使用:表格展示与下拉框示例
  • C++ 中的栈与堆:区别与使用场景详解
  • 如何设置 Nginx 连接超时并进行测试(Nginx优化)
  • 何须付费免费它不香吗
  • Python 多项式拟合
  • 自动驾驶---如何打造一款属于自己的自动驾驶系统
  • Bob the Canadian
  • 尚硅谷课程【笔记】——大数据之Hadoop【一】
  • Communications link failure异常分析解决
  • kubernetes 核心技术-Label
  • 讲讲Mysql主从复制原理与延迟
  • 字符串/列表/元组/字典
  • 深度解析 Python 列表推导式与生成器表达式:原理、用法与优劣比较
  • 一个根据输入内容过滤下拉选的组件
  • 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 , 基于 openEuler 构建 LVS-DR 群集。
  • 使用Python爬虫实时监控行业新闻案例
  • 探寻氧化铈:催化剂领域的璀璨明珠-京煌科技