1. 机器学习基本知识(3)——机器学习的主要挑战

1.5 机器学习的主要挑战

1.5.1 训练数据不足

  • 对于复杂问题而言,数据比算法更重要
  • 但中小型数据集仍然很普遍,获得额外的训练数据并不总是一件轻而易举或物美价廉的事情,所以暂时不要抛弃算法。

1.5.2 训练数据不具有代表性

  • 采样偏差:如果样本太小,那么会出现采样噪声(即非代表性数据被选中),但如果采样方法有缺陷,即使是非常大的样本也可能不具有代表性。

1.5.3 低质量数据

训练数据充满错误、异常值和噪声(例如,低质量的测量产生的数据),系统将更难检测到底层模式,也就更不太可能表现良好。

需要对数据进行清洗,必须决定是完全忽略此属性、忽略这些实例、将缺失值补充完整(例如,填写年龄的中位数),还是训练一个具有该特征的模型,再训练一个没有该特征的模型。

1.5.4 无关特征

机器学习项目成功的一个关键部分是提取出好的特征集来进行训练。这个过程称为特征工程,包括以下步骤:

  • 特征选择(在现有特征中选择最有用的特征进行训练)。
  • 特征提取(结合现有特征产生更有用的特征,正如我们之前看到的,降维算法可以提供帮助)。
  • 通过收集新数据创建新特征。

1.5.5 过拟合训练数据

  • 过拟合,也就是指该模型在训练数据上表现良好,但泛化效果不佳。
  • 当模型相对于训练数据的数量和噪声过于复杂时,就会发生过拟合。以下是可能的解决方案:
    • 通过选择参数较少的模型(例如,线性模型而不是高阶多项式模型)、减少训练数据中的属性数量或约束模型来简化模型。
    • 收集更多训练数据。
    • 减少训练数据中的噪声(例如,修复数据错误并移除异常值)。
  • 正则化:通过约束模型使它更简单,并降低过拟合风险的过程。

正则化例子:

例如,我们之前定义的线性模型有两个参数:θ0和θ1。

因此,该学习算法有两个自由度来调整模型使其适应训练数据,它可以调整直线的高度(θ0)和斜率(θ1)。

如果我们强制θ=0,该算法只有一个自由度,并且会更难正确地拟合数据:它所能做的就是向上或向下移动线以尽可能接近训练实例,所以它最终会在平均值附近。这确实是一个非常简单的模型!

如果我们允许算法修改θ1,但强制它保持较小的值,那么该学习算法的自由度将在1到2之间。它生成的模型会比有两个自由度的模型更简单,但比只有一个自由度的模型要复杂一些。

你希望在完美拟合训练数据和保持模型足够简单之间找到适当的平衡点,以确保模型能够较好地泛化。

image-20241210162817076

  • 超参数:学习期间应用的正则化程度可以由超参数控制。超参数是学习算法(而非模型)的参数。因此,它不受学习算法本身的影响,必须在训练前设置并在训练期间保持不变。

如果将正则化超参数设置得非常大,你将得到一个几乎平坦的模型(斜率接近于零)。学习算法虽然肯定不会过拟合训练数据,但也不太可能找到好的解决方案。调整超参数是构建机器学习系统的重要部分。

1.5.6 欠拟合训练数据

欠拟合与过拟合正好相反:当模型太简单而无法学习数据的底层结构时,就会发生欠拟合。

例如,生活满意度的线性模型容易出现欠拟合。

因为现实情况总是比模型更复杂,所以它的预测必然是不准确的,即使是在训练样例上也是如此。

以下是解决此问题的主要方式:

  • 选择具有更多参数的更强大的模型。
  • 为学习算法提供更好的特征(特征工程)。
  • 减少对模型的约束(例如通过减少正则化超参数)。

1.5.7 总结💥

  • 机器学习是关于如何让机器更好地完成某些任务的理论,它从数据中学习而无须清晰地编写规则。
  • 机器学习系统有许多类型:有监督和无监督,批量的和在线的,基于实例的和基于模型的。
  • 在机器学习项目中,你从训练集中收集数据,然后将训练集提供给学习算法。
    • 如果该算法是基于模型的,它会调整一些参数以使模型拟合训练集(对训练集本身做出良好的预测),然后希望它也能够对新实例做出良好的预测。
    • 如果该算法是基于实例的,那么它会记住样例,并根据相似性度量将它们与学习过的实例进行比较,从而泛化到新实例。
  • 如果训练集太小,或者数据不具有代表性、有噪声或被不相关的特征(垃圾进、垃圾出)污染,那么系统的表现不会很好。
  • 最后,你的模型既不能太简单(这种情况会导致欠拟合)也不能太复杂(这种情况会导致过拟合)。
  • 一旦训练了一个模型,你就不能只是“希望”它泛化到新实例,你还需要评估它并在必要时对其进行微调。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/937057.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TypeScript学习路线图

‌ TypeScript 是由微软开发和维护的一种静态类型编程语言,它是 JavaScript 的超集。TypeScript 的创建是为了解决构建大规模 JavaScript 应用程序所面临的挑战,并向该语言添加了可选的类型注解、类、接口和其他特性。 使用 TypeScript 的主要好处包括&a…

负载均衡oj项目:编译模块

编译运行模块是一个网络服务&#xff0c;这样编译模块就可以可以快速部署到&#xff0c;其他主机上。 编译模块思路 util.hpp #pragma once #include <string> #include <vector> #include <sys/types.h> #include <sys/stat.h> #include <unistd…

绿色浪潮,VELO Angel Glide坐垫奏响环保骑行乐章

地球的环境日益恶劣&#xff0c;冰川消融、海平面上升、极端天气频繁出现&#xff0c;这一切都在不断提醒着我们&#xff0c;保护地球家园刻不容缓。而在这场关乎人类未来的环保行动中&#xff0c;各个领域都在积极探索可持续发展的道路&#xff0c;自行车坐垫领域也迎来了绿色…

【从零开始入门unity游戏开发之——C#篇09】if-else条件表达式、三元运算符、switch-case的使用

文章目录 一、if条件表达式1、if 语句基本结构示例输出&#xff1a; 2、else语句示例输出&#xff1a; 3、else if 语句示例输出&#xff1a; 4、组合逻辑运算符示例输出&#xff1a; 5、嵌套 if 语句示例输出&#xff1a;总结 二、三元运算符1、语法&#xff1a;2、示例&#…

Visual Studio 使用 GitHub Copilot 扩展

&#x1f380;&#x1f380;&#x1f380;【AI辅助编程系列】&#x1f380;&#x1f380;&#x1f380; Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

conda学习

参考: Anaconda 官网教程 https://freelearning.anaconda.cloud/get-started-with-anaconda/18202conda配置虚拟环境/conda环境迁移/python环境迁移 https://blog.csdn.net/qq_43369406/article/details/127140839 环境&#xff1a; macOS 15.2Anaconda Navigator 2.4.2 x.1…

Nginx配置示例教程

最近对Nginx做了一些初步研究&#xff0c;Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发。主要根据工作中各类应用服务部署访问的需求&#xff0c;围绕HTTP服务、负载均衡、正反向代理、子路由、静态资源发布访问等&#xff0c;以及结合minio管理的图片文件资…

git使用教程(超详细)-透彻理解git

一.核心基础 核心概念有六个 首先请把与svn有关的一切概念暂时从你的脑海中移除掉&#xff0c;我们要重新认识本文所讲述的所有概念。 1.worktree worktree是一个目录&#xff0c;你在这里对文件进行增加、删除、修改。也就是我们常说的工作区。在git中worktree必须要与一个…

Django结合websocket实现分组的多人聊天

其他地方和上一篇大致相同&#xff0c;上一篇地址点击进入, 改动点1&#xff1a;在setting.py中最后再添加如下配置&#xff1a; # 多人聊天 CHANNEL_LAYERS {"default":{"BACKEND": "channels.layers.InMemoryChannelLayer"} }因此完整的se…

Keil-MDK开发环境编译后axf自动转换bin格式文件

编译选项添加如下&#xff0c;调用fromelf工具自动完成转换&#xff1a; fromelf --bin -o "$LL.bin" "#L"

如何快速搭建若依管理系统?

1、下载若依管理系统前后端分离版代码至本地&#xff08;当前版本为RuoYi v3.8.8&#xff09;&#xff1a; RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统&#xff0c;同时提供…

【JavaEE】网络(1)

&#x1f435;本篇文章开始讲解计算机网络相关的知识 一、基础概念 1.1 局域网和广域网 局域网→Local Area Network→简称LAN&#xff0c;局域网是局部组建的一种私有网络&#xff0c;局域网内的主机之间可以进行网络通信&#xff0c;局域网和局域网之间在没有连接的情况不能…

网络应用技术 实验八:防火墙实现访问控制(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、设计全网 IP 地址 2、设计防火墙安全策略 3、在 eNSP 中部署园区网 4、配置用户主机地址 5、配置网络设备 配置交换机SW-1~SW-5 配置路由交换机RS-1~RS-5 配置路由器R-1~R-3 6、配置仿…

day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、复习 1.1 断言&#xff08;3种&#xff09; 1.2 关联&#xff08;3种&#xff09; 1.3 录制脚本 2、Jmeter直连数据库 2.1 直连数据库——使用场景 2.2 直连数据库——操作步骤 2.2.1 案例1&…

Modelscope AgentFabric: 开放可定制的AI智能体构建框架

目录 git clone https://github.com/modelscope/modelscope-agent.git cd modelscope-agent && pip install -r requirements.txt && pip install -r apps/agentfabric/requirements.txtexport PYTHONPATH$PYTHONPATH:/home/ubuntu/users/lilingfei/modelscop…

CSS|08 浮动清除浮动

浮动 需求: 能够实现让多个元素排在同一行&#xff0c;并且给这些元素设置宽度与高度! 让多个元素排在同一行:行内元素的特性 给这些元素设置宽高:块级元素的特性 在标准文档流中的元素只有两种:块级元素和行内元素。如果想让一些元素既要有块级元素的特点也要有行内元素的特…

[Pro Git#3] 远程仓库 | ssh key | .gitignore配置

目录 1. 分布式版本控制系统的概念 2. 实际使用中的“中央服务器” 3. 远程仓库的理解 4. 新建远程仓库 5. 克隆远程仓库 6. 设置SSH Key 实验 一、多用户协作与公钥管理 二、克隆后的本地与远程分支对应 三、向远程仓库推送 四、拉取远程仓库更新 五、配置Git忽略…

【uni-app】App与webview双向实时通信

【uni-app】App与webview双向实时通信 在 Uniapp 中&#xff0c;App 与 里面嵌入的 webview 进行双向的实时通信 vue2 &#xff0c; 模拟器 主要分为两部分 webview 向 app 发送信息 app 向 webview 发送信息 以下是实现方式&#xff0c;用一个例子来说明 &#xff08;文…

微信小程序处理交易投诉管理,支持多小程序

大家好&#xff0c;我是小悟 1、问题背景 玩过微信小程序生态的&#xff0c;或许就有这种感受&#xff0c;如果收到投诉单&#xff0c;不会及时通知到手机端&#xff0c;而是每天早上10:00向小程序的管理员及运营者推送通知。通知内容为截至前一天24时该小程序账号内待处理的交…

AIGC-------AI生成内容如何赋能AR和VR体验?

AI生成内容如何赋能AR和VR体验 引言 增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&#xff09;技术近年来蓬勃发展&#xff0c;为用户提供了沉浸式的体验。这些技术已经广泛应用于游戏、教育、医疗、建筑等领域。然而&#xff0c;AR和VR体验的质量与内容的丰富…