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

2025-04-05 吴恩达机器学习5——逻辑回归(2):过拟合与正则化

文章目录

  • 1 过拟合
    • 1.1 过拟合问题
    • 1.2 解决过拟合
  • 2 正则化
    • 2.1 正则化代价函数
    • 2.2 线性回归的正则化
    • 2.3 逻辑回归的正则化

1 过拟合

1.1 过拟合问题

  • 欠拟合(Underfitting)

    模型过于简单,无法捕捉数据中的模式,导致训练误差和测试误差都较高。

    也称为高偏差(High Bias),即模型对数据有较强的先入之见(如强行用线性模型拟合非线性数据)。

  • 过拟合(Overfitting)

    模型过于复杂,过度拟合训练数据(甚至噪声),导致泛化能力差。

    也称为高方差(High Variance),即模型对训练数据的微小变化非常敏感。

  • 泛化(Generalization)

    模型在未见过的数据上表现良好的能力,是机器学习的核心目标。

image-20250405190541082
模型类型拟合情况问题
线性模型(一次多项式)直线拟合数据欠拟合(高偏差),无法反映房价随面积增长而趋于平缓的趋势。
二次多项式(加入 x 2 x^2 x2曲线拟合数据恰到好处,能较好捕捉数据趋势,泛化能力强。
四次多项式(加入 x 3 , x 4 x^3,x^4 x3,x4曲线完美穿过所有训练点过拟合(高方差),模型波动剧烈,无法合理预测新数据。
image-20250405191327545

1.2 解决过拟合

​ 过拟合问题:

  • 模型在训练集上表现极好,但在新数据上泛化能力差。
  • 特征过多或模型过于复杂时容易发生(如高阶多项式回归)。

收集更多训练数据

  • 原理:更多的数据能帮助模型学习更通用的模式,而非噪声。
  • 适用场景:当数据获取成本较低时(如房价预测中新增房屋记录)。
  • 局限性:某些领域数据稀缺(如罕见病例诊断)。
image-20250405220747507

减少特征数量

  • 原理:仅保留与目标最相关的特征,降低模型复杂度。
  • 例如:房价预测中仅使用面积、卧室数量,而忽略到咖啡店距离等弱相关特征。
  • 方法:
    • 人工选择:基于领域知识筛选特征。
    • 自动选择:后续课程会介绍算法(如递归特征消除)。
  • 缺点:可能丢弃有用信息(若所有特征都有贡献)。
image-20250405221109036

正则化(Regularization)

  • 核心思想:不删除特征,而是通过惩罚大参数值( w j w_j wj)来限制模型复杂度。使参数值趋近于0(但不完全为 0),减弱不重要特征的影响。
  • 优势:
    • 保留所有特征,避免信息丢失。
    • 尤其适用于特征多、数据少的场景(如医疗数据)。
  • 注意:通常仅正则化权重参数 w 1 , w 2 , ⋯ , w n w_1,w_2,\cdots,w_n w1,w2,,wn,偏置项 b b b 可忽略(对模型复杂度影响小)。
image-20250405221206401
方法优点缺点适用场景
收集更多数据直接提升泛化能力成本高或不可行数据易获取时优先使用
特征选择简化模型,降低计算成本可能丢失有用信息特征间冗余性高时
正则化保留所有特征,灵活控制复杂度 度)需调整超参数(如正则化强)最常用,尤其 适合高维数据

2 正则化

  • 目标:通过限制参数 w j w_j wj 的大小,降低模型复杂度,防止过拟合。
  • 方法:在成本函数中增加惩罚项,迫使算法选择较小的参数值。

​ 例如:对高阶多项式项(如 w 3 x 3 , w 4 x 4 w_3x^3,w_4x^4 w3x3,w4x4)的参数施加惩罚,使其接近 0,从而近似退化为低阶模型(如二次函数)。

image-20250405222901780

2.1 正则化代价函数

​ 线性回归的原始成本函数:
J ( w ⃗ , b ) = 1 2 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) 2 J(\vec{w},b)=\frac1{2m}\sum_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})^2 J(w ,b)=2m1i=1m(fw ,b(x (i))y(i))2
​ 加入正则化项后:
J reg ( w ⃗ , b ) = 1 2 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) 2 + λ 2 m ∑ j = 1 n w j 2 J_\text{reg}{(\vec{w},b)}=\frac1{2m}\sum_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})^2+\frac\lambda{2m}\sum_{j=1}^nw_j^2 Jreg(w ,b)=2m1i=1m(fw ,b(x (i))y(i))2+2mλj=1nwj2

  • 第一项:均方误差(拟合训练数据)。
  • 第二项:正则化项(惩罚大参数, λ \lambda λ 控制惩罚强度)。
  • 注意
    • 通常不惩罚偏置项 b b b(对模型复杂度影响极小)。
    • 系数 1 2 m \displaystyle\frac{1}{2m} 2m1 用于统一缩放,便于选择 λ \lambda λ
image-20250405223027011
λ λ λ 取值影响结果
λ = 0 \lambda=0 λ=0无正则化可能过拟合(如高阶多项式完美拟合噪声)。
λ λ λ 适中平衡拟合与简化模型复杂度降低,泛化能力增强(如保留四阶项但参数较小)。
λ λ λ 极大(如 1010过度惩罚所有 w j ≈ 0 w_j\approx0 wj0,模型退化为水平线(欠拟合)。
image-20250405223653887

2.2 线性回归的正则化

原始线性回归(无正则化)

  • 权重 w j w_j wj

w j : = w j − α ∂ J ∂ w j , ∂ J ∂ w j = 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) x j ( i ) w_j:=w_j-\alpha\frac{\partial J}{\partial w_j},\quad\frac{\partial J}{\partial w_j}=\frac1m\sum_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x_j^{(i)} wj:=wjαwjJ,wjJ=m1i=1m(fw ,b(x (i))y(i))xj(i)

  • 偏置 b b b

b : = b − α ∂ J ∂ b , ∂ J ∂ b = 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) b:=b-\alpha\frac{\partial J}{\partial b},\quad\frac{\partial J}{\partial b}=\frac1m\sum_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)}) b:=bαbJ,bJ=m1i=1m(fw ,b(x (i))y(i))

image-20250405224006656

正则化线性回归

  • 权重 w j w_j wj
    • 新增项: λ m w j \displaystyle\frac{\lambda}{m}w_j mλwj(来自正则化项的导数)。
    • 物理意义:每次迭代时, w j w_j wj 会被额外缩小 α λ m w j \alpha\displaystyle\frac{\lambda}{m}w_j αmλwj
    • 系数 1 − λ m 1-\displaystyle\frac{\lambda}{m} 1mλ:由于 α \alpha α(学习率)和 λ \lambda λ 通常很小(如 α = 0.01 , λ = 1 \alpha=0.01,\lambda=1 α=0.01,λ=1), 1 − λ m 1-\displaystyle\frac{\lambda}{m} 1mλ 略小于 1(如 0.9998)。每次迭代时, w j w_j wj 先轻微缩小(如乘以 0.9998),再减去原始梯度。从而逐步压缩参数值 w j w_j wj,防止其过大。

w j : = w j − α [ 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) x j ( i ) + λ m w j ] : = w j ( 1 − α λ m ) − α ⋅ (原始梯度项) \begin{aligned} w_j&:=w_j-\alpha\left[\frac1m\sum_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x_j^{(i)}+\frac\lambda mw_j\right]\\ &:=w_j\left(1-\alpha\frac\lambda m\right)-\alpha\cdot\text{(原始梯度项)} \end{aligned} wj:=wjα[m1i=1m(fw ,b(x (i))y(i))xj(i)+mλwj]:=wj(1αmλ)α(原始梯度项)

  • 偏置 b b b(不变)
    • 不变原因:正则化通常不惩罚 b b b

b : = b − α 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) b:=b-\alpha\frac1m\sum_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)}) b:=bαm1i=1m(fw ,b(x (i))y(i))

image-20250405224445043

2.3 逻辑回归的正则化

  • 权重 w j w_j wj
    • 新增项: λ m w j \displaystyle\frac{\lambda}{m}w_j mλwj(来自正则化项的导数)。
    • 物理意义:每次迭代时, w j w_j wj 会被额外缩小 α λ m w j \alpha\displaystyle\frac{\lambda}{m}w_j αmλwj(类似线性回归)。

w j : = w j − α [ 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) x j ( i ) + λ m w j ] : = w j ( 1 − α λ m ) − α ⋅ (原始梯度项) \begin{aligned} w_j&:=w_j-\alpha\left[\frac1m\sum_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x_j^{(i)}+\frac\lambda mw_j\right]\\ &:=w_j\left(1-\alpha\frac\lambda m\right)-\alpha\cdot\text{(原始梯度项)} \end{aligned} wj:=wjα[m1i=1m(fw ,b(x (i))y(i))xj(i)+mλwj]:=wj(1αmλ)α(原始梯度项)

  • 偏置 b b b(不变)
    • 不变原因:正则化通常不惩罚 b b b

b : = b − α 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) b:=b-\alpha\frac1m\sum_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)}) b:=bαm1i=1m(fw ,b(x (i))y(i))

image-20250405225454773

相关文章:

2025-04-05 吴恩达机器学习5——逻辑回归(2):过拟合与正则化

文章目录 1 过拟合1.1 过拟合问题1.2 解决过拟合 2 正则化2.1 正则化代价函数2.2 线性回归的正则化2.3 逻辑回归的正则化 1 过拟合 1.1 过拟合问题 欠拟合(Underfitting) 模型过于简单,无法捕捉数据中的模式,导致训练误差和测试误…...

基于Python的图书借阅推荐系统设计与实现

【Python】基于Python的图书借阅推荐系统设计与实现 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 本项目基于Python语言和Django框架开发,旨在为用户提供一个高可靠、高便捷的图…...

数字与数学——常见面试算法题

目录 数字统计问题 符号统计 阶乘0的个数 溢出问题 整数反转 回文数 进制问题 七进制数 进制转换 数组实现加法 数组实现整数加法 字符串实现加法 二进制加法 幂运算 求2的幂 求3的幂 求4的幂 辗转相除法(之前博客有过详细推导) https…...

Lua:第1-4部分 语言基础

1 Lua语言入门 1.1 程序段 我们将 Lua 语言执行的每一段代码(例如,一个文件或交互模式下的一行)称为一个程序段 ( Chunk ) ,即一组命令或表达式组成的序列 。 1.2 一些词法规范 Lua 语言中的标识符&#…...

2024版idea使用Lombok时报找不到符号

今天在springboot项目中使用Lombok的Builder注解,启动时居然报了找不到符号的错,如下图 于是开始了漫长的寻找之路,首先去settings->Plugins中看自己的Lombok插件是否启动,发现确实是如此,然后看网上的教程去加上这…...

python中的sort使用

目录 sort()使用 排序处理 升序由小到大排序: sort与sorted 总结 降序由大到小排序: key 参数详解 按字符串长度升序排序 按字符串第二个字符排序 sort()使用 list.sort(keyNone, reverseFalse) 功能:对列表原地排序(直接…...

构建macOS命令速查手册:基于Flask的轻量级Web应用实践

构建macOS命令速查手册:基于Flask的轻量级Web应用实践 一、项目概述 本文介绍一个基于Flask框架开发的macOS命令速查Web应用。该应用通过结构化的命令数据存储和响应式前端设计,为用户提供便捷的命令查询体验,具备以下特点: 六…...

APP的兼容性测试+bug定位方法

兼容性问题定位 一、为什么会有兼容性问题?二、APP兼容性测试场景三、常见的一些兼容性bug0. 引言1. 常见兼容性bug(1)界面性问题(2)内存不足(3)网络问题(4)权限问题 通过…...

开源 PDF.js 文件编辑操作

一、PDF.js PDF.js 是 Mozilla 基金会推出的一个使用 HTML5 构建的 PDF 阅读器,它完全使用 JavaScript 编写。作为 Firefox 浏览器的默认 PDF 查看器,PDF.js 具有强大的兼容性和稳定性。它不仅支持 PDF 文件的查看和渲染,还提供了丰富的交互…...

云资源合规基线:确保云环境安全与合规的完整指南

1. 引言 随着越来越多的企业将其IT基础设施迁移到云端,确保云资源的安全性和合规性变得至关重要。云资源合规基线是一套最佳实践和标准,旨在帮助组织维护安全、高效且符合法规要求的云环境。本文将深入探讨云资源合规基线的各个方面,为IT管理者和安全专业人士提供全面的指导。…...

#SVA语法滴水穿石# (005)关于 问号表达式(condition ? expr1 : expr2)

在 SystemVerilog 断言(SVA)中,问号表达式(condition ? expr1 : expr2)的语法和逻辑与 C 语言的三元条件运算符完全一致。它根据条件选择执行 expr1 或 expr2,常用于动态选择信号、序列或属性。 1. 基本语法 // 格式: condition ? true_expression : false_expressi…...

操作系统、虚拟化技术与云原生及云原生AI简述

目录 操作系统基础 操作系统定义 操作系统的组成 操作系统的分类 Linux操作系统特性 虚拟化技术 概述 CPU虚拟化 内存虚拟化 I/O虚拟化 虚拟化技术 虚拟化平台管理工具 容器 容器与云原生:详细介绍 容器的特点 什么是云原生? 云原生的特点 容器与云原生的…...

springcouldalibaba5大组件

springcouldalibaba5大组件 Spring Cloud Alibaba 简介 Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务解决方案,基于 Spring Cloud 框架,集成了阿里巴巴的分布式中间件技术。它通过简单的注解和少量配置,就能将 Spring Cloud 应用连接…...

opencv中mat深拷贝和浅拷贝

1. 浅拷贝(Shallow Copy) 特点: 共享数据内存,新对象和原对象指向同一块内存数据。 修改任一对象的数据会影响另一个对象(因为内存共享)。 高效(仅复制矩阵头信息,不复制实际数据&…...

深入理解 C++ 三大特性之一 继承

欢迎来到干货小仓库!!! 今日的Commit 是明日的 Releasse,用持续交付的心态活成终身迭代的版本。 1.继承的定义 1.1定义格式 1.2继承关系和访问限定符 1.3继承基类成员访问方式的变化 类成员/继承方式public继承protected继承private继承基类的public成员派生类的…...

类 和 对象 的介绍

对象的本质是一种新的数据类型。类是一个模型,对象是类的一个具体化实例。为类创建实例也就是创建对象。 一、类(class) 类决定一个对象将是什么样的(有什么属性、功能)。类和变量一样,有名字。 1.创建类 …...

`use_tempaddr` 和 `temp_valid_lft ` 和 `temp_prefered_lft ` 笔记250405

use_tempaddr 和 temp_valid_lft 和 temp_prefered_lft 笔记250405 以下是 Linux 系统中与 IPv6 临时隐私地址相关的三个关键参数 use_tempaddr、temp_valid_lft 和 temp_prefered_lft 的详细说明及协作关系: 📜 参数定义与功能 参数作用默认值依赖关…...

LeetCode详解之如何一步步优化到最佳解法:20. 有效的括号

LeetCode详解系列的总目录(持续更新中): LeetCode详解之如何一步步优化到最佳解法:前100题目录(更新中...)-CSDN博客 LeetCode详解系列的上一题链接: LeetCode详解之如何一步步优化到最佳解法…...

学习笔记,DbContext context 对象是保存了所有用户对象吗

DbContext 并不会将所有用户对象保存在内存中: DbContext 是 Entity Framework Core (EF Core) 的数据库上下文,它是一个数据库访问的抽象层它实际上是与数据库的一个连接会话,而不是数据的内存缓存当您通过 _context.Users 查询数据时&…...

【2020】【论文笔记】基于二维光子晶体的光控分光比可调Y——

前言 类型 太赫兹 + 分束器 太赫兹 + 分束器 太赫兹+分束器 期刊 红外与毫米波学报 红外与毫米波学报 红外与毫米波学报 作者 姜宗丹 , 李培丽 ,...

Mydumper备份数据库

介绍: MyDumper是一个MySQL逻辑备份工具。它有2个工具: mydumper负责导出 MySQL 数据库的一致备份myloader从 mydumper 读取备份,连接到目标数据库并导入备份。 这两个工具都使用多线程功能。 下载链接: https://github.com/m…...

BN测试和训练时有什么不同, 在测试时怎么使用?

我们来彻底搞懂 Batch Normalization(BN) 在训练和测试阶段的区别,以及 测试时怎么用。 🧠 一句话总结: 训练时:使用 当前 mini-batch 的均值和方差 测试时:使用 整个训练集估计的“滑动平均均值…...

JavaWeb 课堂笔记 —— 02 JavaScript

本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖SpringMyBatisSpringMVCSpringBoot等)》,章节分布参考视频教程,为同样学习…...

多GPU训练

写在前面 限于财力不足,本机上只有一个 GPU 可供使用,因此这部分的代码只能够稍作了解,能够使用的 GPU 也只有一个。 多 GPU 的数据并行:有几张卡,对一个小批量数据,有几张卡就分成几块,每个 …...

Java面试黄金宝典33

1. 什么是存取控制、 触发器、 存储过程 、 游标 存取控制 定义:存取控制是数据库管理系统(DBMS)为保障数据安全性与完整性,对不同用户访问数据库对象(如表、视图等)的权限加以管理的机制。它借助定义用户…...

如何在 Linux 上安装 Python

本指南介绍如何在Linux机器上安装 Python。Python 已成为开发人员、数据科学家和系统管理员必不可少的编程语言。它用于各种应用,包括 Web 开发、数据科学、自动化和机器学习。 本综合指南将引导您完成在 Linux 系统上安装Python的过程,涵盖从基本包管理…...

系统与网络安全------Windows系统安全(6)

资料整理于网络资料、书本资料、AI,仅供个人学习参考。 共享文件夹 发布共享文件夹 Windows共享概述 微软公司推出的网络文件/打印机服务系统 可以将一台主机的资源发布给其他主机共有 共享访问的优点 方便、快捷相比光盘 U盘不易受文件大小限制 可以实现访问…...

解决 Spring Boot 返回日期格式问题

springboot项目有个属性这样注解 DateTimeFormat(pattern "yyyy-MM-dd") private Date createTime; 表中是 create_time datetime DEFAULT NULL 只使用了 DateTimeFormat 注解来处理输入格式,但没有配置输出格式。返回给前端还是 createTime: "2…...

复古千禧Y2风格霓虹发光酸性镀铬金属短片音乐视频文字标题动画AE/PR模板

踏入时光机,重温 21 世纪初大胆、未来主义和超光彩的美学!这是一个动态的 After Effects 模板,旨在重现千禧年的标志性视觉效果——铬反射、霓虹灯发光、闪亮的金属和流畅的动态图形。无论您是在制作时尚宣传片、怀旧音乐视频还是时尚的社交媒…...

linux 安装 mysql记录

sudo apt-get install mysql-server 一直报错,按照下面的终于安装出来了 这个链接 https://cn.linux-console.net/?p13784 第 1 步:要删除 MySQL 及其所有依赖项,请执行以下命令: sudo apt-get remove --purge mysql* 第 2 步…...