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

线性模型 - Logistic回归(参数学习具体示例)

Logistic 回归采用交叉熵作为损失函数,并使用梯度下降法来对参数进行优化。

Logistic 回归的参数学习通常基于最大似然估计(MLE),目标是通过最小化损失函数(通常是二元交叉熵损失)来找到最优参数。下面以一个简单的二分类问题为例,详细说明参数学习的过程。

一. 问题描述

假设我们有一个简单的数据集,用于判断某封邮件是否为垃圾邮件。样本的特征只有一个(例如“包含‘免费’一词的次数”),真实标签 y 取值为 0(正常邮件)或 1(垃圾邮件)。数据集示例如下:

邮件样本特征 x标签 y
110
220
331
441

二. 模型表示

Logistic 回归模型假设:

z=wx+b

然后通过 Sigmoid 函数将 z 映射到 (0,1) 的概率:

这里,w 和 b 为我们需要学习的参数。

三. 损失函数与最大似然估计

对于一个样本,二元交叉熵损失函数为:

关于二元交叉熵损失函数,可以参考博文:线性模型 - 二分类问题的损失函数-CSDN博客

整个数据集的总损失(目标函数)是各样本损失的平均:

最小化 J(w,b) 就相当于最大化训练数据的似然。

J(w,b)是关于参数 𝒘 的连续可导的凸函数.因 此除了梯度下降法之外,Logistic 回归还可以用高阶的优化方法(比如牛顿法) 来进行优化.

四. 参数学习的过程(基于梯度下降)

我们通过梯度下降法来迭代更新 w 和 b 使得 J(w,b) 最小。

步骤:

  1. 初始化参数
    例如,初始化 w=0,b=0。

  2. 计算预测

  3. 计算损失

  4. 计算梯度
    对 w 和 b 求偏导,梯度推导可得(这里简化说明):

    我们利用链式法则一步步推导梯度如下(这里给出偏导的推导过程,有兴趣的可以理解,只要求应用的可以跳过):
  5. 更新参数
    使用学习率 α进行参数更新:

  6. 迭代
    重复步骤2到步骤5,直到损失函数收敛到一个较小值。

五. 具体数值示例

假设我们采用学习率 α=0.1,用上面的数据集进行一轮更新。

初始化
w=0,b=0。

样本计算

计算梯度:

参数更新:

六. Logistic 回归的参数学习过程主要包括:

  • 计算输入特征的线性组合;
  • 通过 Sigmoid 函数得到概率输出;
  • 定义二元交叉熵损失函数衡量预测误差;
  • 使用梯度下降法计算梯度,并更新参数;
  • 反复迭代直到损失收敛。

通过这个具体的数值例子,我们可以看到如何从初始参数开始,通过不断调整使得模型预测更精确,最终学到一个有效的二分类模型。

七.为了更好的理解Logistic回归的应用,我们在掌握原理之后,再看一个垃圾邮件检测的示例

示例场景

假设我们有一批电子邮件,每封邮件已被标注为“垃圾邮件”(标签1)或“正常邮件”(标签0)。我们希望通过逻辑回归模型来判断新邮件是否为垃圾邮件。

1. 数据准备与特征提取

假设我们从邮件中提取以下几个简单特征:

  • 特征1: 邮件中包含“免费”一词的次数
  • 特征2: 邮件中包含“优惠”一词的次数
  • 特征3: 邮件的总字数

例如,我们有如下训练数据(仅示例数据):

邮件ID免费次数 (x₁)优惠次数 (x₂)总字数 (x₃)标签 (y)
1321001
2001500
3111200
443801

这些特征可以认为是对邮件内容的一种量化描述,反映了垃圾邮件通常包含促销、诱导类词汇以及篇幅可能较短的特点。

2. 构建逻辑回归模型

模型公式:
逻辑回归模型的决策函数为:

其中 w1,w2,w3是特征对应的权重,b 是偏置项。

概率输出:
将 z 传递给 Sigmoid 函数,得到预测为垃圾邮件的概率:

决策规则:
如果 P(spam∣x)≥0.5(或根据业务需求调整阈值),则预测该邮件为垃圾邮件(标签1);否则预测为正常邮件(标签0)。

3. 模型训练

  1. 构建损失函数
    使用二元交叉熵损失来度量模型预测与真实标签之间的差距:

  2. 参数求解
    利用梯度下降法或其他优化算法调整 w1,w2,w3 和 b,使得总损失(所有训练样本的损失之和)最小。

假设经过训练后,我们得到如下参数:(具体过程如上面介绍的梯度下降法

  • w_1 = 0.8
  • w_2 = 0.5
  • w_3 = -0.01
  • b = -2

这些参数表明:

  • 邮件中“免费”和“优惠”的出现次数对判断为垃圾邮件有正面影响(正权重);
  • 邮件字数 x_3 的负权重可能反映出垃圾邮件通常较短;
  • 偏置项 b=−2 调整了整体的决策门槛。

4. 模型预测

假设现在有一封新邮件,其特征为:

  • 免费次数:2
  • 优惠次数:1
  • 总字数:90

计算线性组合:

计算概率:

决策:
由于 0.31<0.5,模型预测这封邮件为正常邮件(标签0)。

5. 总结

  • 理解
    逻辑回归通过计算输入特征的线性组合,将其转换为垃圾邮件的概率,从而做出分类决策。
  • 应用
    垃圾邮件检测是逻辑回归的经典应用之一,通过特征提取、模型训练和概率阈值判断,实现对邮件是否为垃圾邮件的自动分类。

这个例子展示了从特征提取、模型构建、参数训练到最终预测的全过程,帮助初学者直观地理解如何使用逻辑回归解决二分类问题,特别是在垃圾邮件检测场景下的应用。

关于梯度下降法,请参考博文:机器学习-常用的三种梯度下降法_梯度下降算法有哪些-CSDN博客


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

相关文章:

  • Ollama 本地GUI客户端:为DeepSeek用户量身定制的智能模型管理与交互工具
  • leetcode-16. 最接近的三数之和
  • Django ModelForm使用(初学)
  • 全面掌握Python时间处理
  • DeepSeek 云原生分布式部署的深度实践与疑难解析—— 从零到生产级落地的全链路避坑指南
  • 跳表(Skip List)详解
  • 基于YOLOv8的人脸识别系统
  • AI驱动的精准教育:个性化学习新时代
  • 提升接口性能之异步
  • 在ubuntu上用Python的openpyxl模块操作Excel的案例
  • 深度学习之自然语言处理CBOW预测及模型的保存
  • 深度神经网络终极指南:从数学本质到工业级实现(附Keras版本代码)
  • 二级指针略解【C语言】
  • mac下使用webstorm监听less文件自动生成wxss文件
  • 内核数据结构用法(2)list
  • Kubernetes: Kustomize 进阶, 使用 Patch 精准操控 ConfigMap 多行文本,实现配置参数化
  • 【JavaWeb10】服务器渲染技术 --- JSP
  • 51c深度学习~合集2
  • Rust中的Trait与Trait Bounds
  • C++时之律者的代码掌控:日期类计算器万字详解