首页 > 其他分享 >人工智能基础 - 过拟合、欠拟合

人工智能基础 - 过拟合、欠拟合

时间:2023-12-09 17:01:36浏览次数:29  
标签:训练 人工智能 模型 拟合 基础 测试 样本量 集上

前面文章中,我们讲到,希望最终的模型在训练集上有很好的拟合(训练误差小),同时对测试集也要有较好的拟合(泛化误差小)


那么针对模型的拟合,这里引入两个概念:过拟合,欠拟合。

过拟合:是指我们在训练集上的误差较小,但在测试集上的误差较大;

欠拟合:在训练集上的效果就很差。

对于二分类数据,我们可以用下面三个图更直观的理解过拟合与欠拟合:

人工智能基础 - 过拟合、欠拟合_过拟合

一、欠拟合

首先来说欠拟合,欠拟合主要是由于学习不足造成的,那么我们可以通过以下方法解决此问题

1、增加特征

增加新的特征,或者衍生特征(对特征进行变换,特征组合)

2、使用较复杂的模型,或者减少正则项

其次讨论过拟合,为什么我们的模型会过拟合呢?这里,我总结了一下,将其原因分成两大类:

二、过拟合

1、样本问题

1)样本量太少:
样本量太少可能会使得我们选取的样本不具有代表性,从而将这些样本独有的性质当作一般性质来建模,就会导致模型在测试集上效果很差;

2)训练集、测试集分布不一致:

对于数据集的划分没有考虑业务场景,有可能造成我们的训练、测试样本的分布不同,就会出现在训练集上效果好,在测试集上效果差的现象;

3)样本噪声干扰大:
如果数据的声音较大,就会导致模型拟合这些噪声,增加了模型复杂度;


2、模型问题

1)参数太多,模型过于复杂,对于树模型来说,比如:决策树深度较大等。

3、解决方法


1)增加样本量:

样本量越大,过拟合的概率就越小(不过有的由于业务受限,样本量增加难以实现);

2)减少特征:

减少冗余特征;

3)加入正则项:

损失函数中加入正则项,惩罚模型的参数,降低模型的复杂度(树模型可以控制深度等);

4)集成学习:

练多个模型,将模型的平均结果作为输出,这样可以弱化每个模型的异常数据影响。

标签:训练,人工智能,模型,拟合,基础,测试,样本量,集上
From: https://blog.51cto.com/u_15590807/8750659

相关文章

  • OrangePi 驱动开发基础教程
    OrangePi驱动开发基础教程准备工作实验材料:OrangePi开发板、sd卡。sd卡烧录Orangepi4-lts_3.0.6_ubuntu_jammy_desktop_xfce_linux5.18.5或Orangepi4-lts_3.0.6_ubuntu_focal_desktop_xfce_linux5.10.43版镜像(注意是带桌面的desktop版,否则无法方便地复制粘贴指令(除非通过串......
  • 测试基础面试题
    一、测试相关问题1、说一下测试流程2、介绍下你最近做的或者最熟悉的测试项目、架构组成3、需求评审关注点4、技术评审过程是否有提出过问题/技术评审关注点5、测试方案如何设计6、如何制定测试计划7、如何设计测试用例(介绍下你负责的项目,选个模块说下测试用例)7、如何保障......
  • 饮冰十年-人工智能-FastAPI-03- FastAPI之模型迁移(类似Django的migrante)
         在开发Web应用程序时,通常会涉及到数据库模型的更改,例如添加新的表、字段或索引。为了使这些更改反映在数据库中,我们使用数据库迁移工具。FastAPI本身并不包含数据库迁移(migration)的功能,但你可以使用第三方库来处理数据库迁移。其中,Alembic是一个常用的数据库迁......
  • 1.基础查询
    一、语法select查询列表from表名;二、特点1、查询列表可以是字段、常量、表达式、函数,也可以是多个2、查询结果是一个虚拟表三、示例1、查询单个字段select字段名from表名;2、查询多个字段select字段名,字段名from表名;3、查询所有字段select*from表名4、......
  • 2023-2024-1 20231424《计算机基础与程序设计》第11周学习总结
    2023-2024-120231424《计算机基础与程序设计》第11周学习总结作业信息作业属于的课程<班级链接>(2022-2023-1-计算机基础与程序设计)作业要求<作业要求>(2022-2023-1计算机基础与程序设计第一周作业)作业目标《计算机科学概论》第15,16章和《C语言程序设计》第10章......
  • Redis基础(六)-Redis客户端
    Redis官方对Java语言的封装框架推荐的有十多种,主要是Jedis、Redisson。Jedis和Redisson都是Java中对Redis操作的封装。Jedis只是简单的封装了Redis的API库,可以看作是Redis客户端,它的方法和Redis的命令很类似。Redisson不仅封装了redis,还封装了对更多数据结构的支持,以及......
  • Redis基础(七)-Redis6的事务操作
    Redis的事务定义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis的事务作用Redis事务的主要作用就是串联多个命令防止别的命令插队。Multi、Exec、discard从输入Multi命令开始,输入的命......
  • 人工智能基础笔记 · Part C 群体智能和强化学习
    C6群体智能核心思路:大自然中的一些社会系统尽管由简单的个体组成,却表现出智能的集体行为。称Agents为“智能体”。对问题的智能解决方案,自然地涌现于这些个体的自组织和交流之中。整个系统的行为是自下而上的,遵循简单规则的简单Agents生成复杂的结构/行为,且Agents不遵循......
  • 【scikit-learn基础】--『数据加载』之外部数据集
    这是scikit-learn数据加载系列的最后一篇,本篇介绍如何加载外部的数据集。外部数据集不像之前介绍的几种类型的数据集那样,针对每种数据提供对应的接口,每个接口加载的数据都是固定的。而外部数据集加载之后,数据的字段和类型是不确定的。简单来说,我们在实际的数据分析工作中,用到的......
  • C++基础 -1- 标准输入输出
    ———————标准输入输出——————— ......