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

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(8)模型训练

好吧,搞了半天,都是围绕数据在干活,这也就验证了,我们说的,数据准备等工作,要占到机器学习项目一半以上的工作量和时间。而且数据决定了模型的天花板,算法只是去达到上限。

我们今天来学习模型训练!

首先,我们来进行线性回归训练,如上图。

当训练到loss小于0.0001时停止,如右图,此时训练结合与验证集标注之间的MSE=22.073。

那么我们来解释下,什么是loss,什么是mse。

loss,损失函数、误差函数,即用1个标量来标示的训练集标签与真实标签之间的差距。

那MSE呢?

MSE就是均方差,参数估计值与参数值之差平方的期望值。

延伸学习:


在机器学习项目中,模型训练是至关重要的一环,它涉及使用已知数据(训练集)来训练算法,以便模型能够学习数据的内在规律和模式,进而对未知数据(测试集)进行准确预测。下面将系统阐述模型训练的过程、关键技术、步骤以及损失函数(如loss和均方误差MSE)的应用和重要作用。

一、模型训练的基本步骤

  1. 数据准备:这是模型训练的第一步,包括数据收集、清洗、预处理和特征工程。数据质量对模型性能有直接影响,因此确保数据准确、完整、一致和具有代表性至关重要。特征工程涉及从原始数据中提取和构造有意义的特征,以便模型能够更好地理解数据。

  2. 选择模型:根据问题的性质和数据的特征选择合适的机器学习算法。例如,对于分类问题可以选择决策树、随机森林、支持向量机等算法;对于回归问题可以选择线性回归、神经网络等算法。

  3. 训练模型:使用训练数据和选择的算法来训练模型。在这个过程中,算法会通过迭代优化来学习数据的特征和模式。通常,模型训练需要设置一些超参数,如学习率、迭代次数等,这些参数会影响模型的训练速度和性能。

  4. 评估模型:使用验证集或测试集来评估模型的性能。评估指标根据问题的不同而有所不同,如分类问题中常用的准确率、召回率、F1分数等;回归问题中常用的均方误差(MSE)、平均绝对误差(MAE)等。

  5. 模型调优:根据评估结果对模型进行调优,包括调整超参数、改变模型结构或采用其他优化策略。调优的目标是提高模型在未知数据上的泛化能力。

  6. 部署与应用:将训练好的模型部署到生产环境中,以便对实际数据进行预测和分析。在部署过程中需要考虑模型的实时性、稳定性、可解释性等因素。

二、关键技术

  1. 梯度下降算法:梯度下降是机器学习中最常用的优化算法之一,用于最小化损失函数。它通过计算损失函数关于模型参数的梯度,并按照负梯度方向更新参数,从而逐步降低损失函数的值。梯度下降有多种变体,如批量梯度下降、随机梯度下降和小批量梯度下降等。

  2. 正则化技术:正则化是一种用于防止模型过拟合的技术。通过在损失函数中添加正则化项(如L1正则化、L2正则化等),可以约束模型参数的规模,从而降低模型的复杂度,提高其在未知数据上的泛化能力。

  3. 集成学习:集成学习是一种通过组合多个弱学习器来构建一个强学习器的技术。常见的集成学习方法包括袋装(Bagging)、提升(Boosting)和堆叠(Stacking)等。这些方法可以有效地提高模型的性能,并降低过拟合的风险。

  4. 深度学习:深度学习是机器学习的一个分支,它利用神经网络模型来处理大规模、高维度的数据。深度学习模型通常由多层神经元组成,每一层都从前一层学习并提取更高级别的特征表示。深度学习在图像识别、语音识别、自然语言处理等领域取得了显著成果。

三、损失函数的应用与重要作用

损失函数(Loss Function)在机器学习模型训练中起着至关重要的作用。它用于量化模型预测与真实值之间的差异,从而指导模型的优化方向。均方误差(Mean Squared Error, MSE)是回归问题中常用的损失函数之一。

MSE的定义:对于给定的样本集(D = {(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)}),其中(x_i)是输入特征,(y_i)是对应的真实值。模型对(x_i)的预测值为(\hat{y}_i)。均方误差MSE定义为:

[MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2]

MSE衡量了模型预测值与真实值之间的平均平方误差,值越小表示模型的预测越准确。

MSE的应用:在模型训练过程中,优化算法会不断调整模型参数以最小化MSE。通过计算损失函数关于模型参数的梯度,并使用梯度下降等优化算法进行参数更新,可以逐步降低MSE的值,从而提高模型的预测精度。

MSE的重要作用

  1. 指导模型优化:MSE为模型提供了一个明确的优化目标。通过最小化MSE,模型可以学习到数据的内在规律和模式,从而对未知数据进行准确预测。

  2. 评估模型性能:除了用于模型训练外,MSE还可以用于评估模型的性能。通过计算测试集上的MSE值,我们可以了解模型在未知数据上的预测精度和泛化能力。

  3. 比较不同模型:使用相同的损失函数(如MSE)可以方便地比较不同模型的性能。具有较低MSE值的模型通常具有更好的预测性能。

  4. 发现过拟合与欠拟合:观察训练集和验证集上的MSE变化可以帮助我们发现模型的过拟合与欠拟合问题。如果训练集上的MSE持续降低而验证集上的MSE开始上升,则可能出现了过拟合;如果两者都保持较高水平且下降缓慢,则可能出现了欠拟合。针对这些问题,我们可以采取相应的措施进行调整和优化。

选择模型时,有分类问题,有回归问题,都有不同的算法。

 

在机器学习中,除了分类问题和回归问题,还有其他几种基本的问题类型,这些问题类型在解决实际问题时也非常常见。下面列举了与分类和回归同级别的几种机器学习问题类型,并分别给出了适合解决的实际问题示例:

  • 聚类问题(Clustering)
    • 定义:聚类是将无标签的数据分成多个组或簇,使得同一组内的数据项尽可能相似,而不同组之间的数据项尽可能不同。
    • 适合解决的实际问题
      • 市场细分:根据消费者的购买历史、兴趣爱好等信息将消费者划分为不同的群体,以进行更精准的市场营销。
      • 文档聚类:将大量的文档按照主题或内容相似性进行分组,便于信息检索和推荐。
      • 图像分割:在图像处理中,将图像中的像素或区域根据颜色、纹理等特征进行聚类,以实现图像分割和目标识别。
  • 降维问题(Dimensionality Reduction)
    • 定义:降维是指将高维数据转换为低维表示,同时保留数据中的重要信息或结构。
    • 适合解决的实际问题
      • 数据可视化:当数据的维度很高时,直接可视化很困难。降维技术(如主成分分析PCA)可以将数据降至2D或3D,从而方便可视化分析。
      • 特征提取:在机器学习任务中,原始数据可能包含许多冗余或不相关的特征。降维可以帮助提取出最重要的特征,减少计算复杂度和过拟合风险。
      • 噪声去除:通过降维可以去除数据中的噪声和异常值,提高后续机器学习模型的性能。
  • 关联规则学习(Association Rule Learning)
    • 定义:关联规则学习旨在从数据集中发现项集(itemsets)之间的有趣关系,这些关系通常以规则的形式表示,如“如果购买了A,则很可能也购买B”。
    • 适合解决的实际问题
      • 购物篮分析:在零售领域中,分析顾客购买商品时的组合模式,以进行产品推荐和库存优化。
      • 网络日志分析:通过分析网站用户的访问模式,发现页面之间的关联规则,优化网站结构和提高用户体验。
  • 序列预测(Sequence Prediction)
    • 定义:序列预测涉及到预测时间序列数据中的未来值或序列的后续元素。
    • 适合解决的实际问题
      • 股票价格预测:根据历史股票价格数据和其他相关信息,预测未来一段时间内的股票价格走势。
      • 语音识别:在语音处理中,预测给定音频序列的下一个可能的声音或词汇。
      • 自然语言处理:预测句子中下一个可能出现的单词或字符,这在文本生成、机器翻译等领域有广泛应用。
  • 强化学习(Reinforcement Learning)
    • 定义:强化学习是一种通过与环境互动来学习最佳决策策略的机器学习范式。智能体(agent)通过执行动作(actions)并接收来自环境的奖励(rewards)来学习如何最大化累积奖励。
    • 适合解决的实际问题
      • 游戏AI:训练智能体在视频游戏、棋类游戏等环境中达到或超越人类玩家的水平。
      • 自动驾驶:通过强化学习训练自动驾驶车辆在不同路况和交通情况下的驾驶策略。
      • 机器人控制:教授机器人执行各种任务,如抓取、导航等,通过试错学习最优控制策略。
  • 生成模型(Generative Modeling)
    • 定义:生成模型能够学习数据的潜在分布,并从中生成新的、与训练数据类似的数据样本。
    • 适合解决的实际问题
      • 图像生成:生成逼真的图像,可用于艺术创作、数据增强或图像修复等任务。
      • 文本生成:生成连贯的文本段落,如新闻报道、故事创作或诗歌生成等。
      • 声音合成:生成人类语音或音乐,可用于语音助手、虚拟角色或音乐创作等领域。
  • 回归问题(Regression)

    • 定义:回归问题是另一种常见的机器学习问题类型,其目标是预测一个连续值输出,而不是离散的类别标签。回归模型通过学习输入数据与连续输出之间的映射关系来进行预测。
    • 适合解决的实际问题
      • 价格预测:根据商品的历史价格、市场需求和供应链信息等因素预测未来的价格趋势。
      • 预测分析:在金融、经济、环境科学等领域中,根据历史数据和其他相关因素预测未来的趋势或结果。例如,股票价格预测、气候变化预测等。
      • 推荐系统:虽然推荐系统通常与分类和聚类问题相关联,但回归模型也可以用于预测用户对项目的评分或偏好程度,从而实现个性化推荐。
    • 常用算法:线性回归、多项式回归、岭回归(Ridge Regression)、套索回归(Lasso Regression)、支持向量回归(SVR)、神经网络等。这些算法旨在最小化预测值与真实值之间的误差,通常使用均方误差(MSE)或其他损失函数来衡量模型的性能。
  • 分类问题(Classification)

    • 定义:分类问题是机器学习中最常见的问题类型之一,其目标是根据输入数据的特征将其划分到预定义的类别中。这些类别通常是离散的、无序的,并且数量有限。
    • 适合解决的实际问题
      • 图像识别:根据图像的视觉特征将其分类为不同的对象、场景或概念。例如,人脸识别、物体检测、手写数字识别等。
      • 文本分类:根据文本内容将其分类为不同的主题、情感或类别。例如,垃圾邮件检测、新闻分类、情感分析等。
      • 生物信息学:在基因组学或蛋白质组学中,根据生物分子的特征将其分类为不同的功能类别或疾病类型。
    • 常用算法:决策树、朴素贝叶斯、支持向量机(SVM)、随机森林、神经网络(包括深度学习模型)等。

需要注意的是,分类问题和回归问题在实际应用中经常相互交织。例如,在某些情况下,可以将多分类问题转换为多个二元分类问题来处理;同样地,在某些场景中,连续值的预测也可以转换为离散类别的预测。因此,在选择合适的问题类型和算法时,需要仔细分析具体的应用场景和数据特征。

每种问题类型都有其特定的应用场景和算法,选择合适的问题类型和算法是解决机器学习问题的关键步骤之一。

所以说,本案例中的价格预测,就是回归问题,就要用线性回归算法来解决。

 

相关文章:

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(8)模型训练

好吧,搞了半天,都是围绕数据在干活,这也就验证了,我们说的,数据准备等工作,要占到机器学习项目一半以上的工作量和时间。而且数据决定了模型的天花板,算法只是去达到上限。 我们今天来学习模型…...

【Flink网络通讯(一)】Flink RPC框架的整体设计

文章目录 1. Akka基本概念与Actor模型2. Akka相关demo2.1. 创建Akka系统2.2. 根据path获取Actor并与之通讯 3. Flink RPC框架与Akka的关系4.运行时RPC整体架构设计5. RpcEndpoint的设计与实现 我们从整体的角度看一下Flink RPC通信框架的设计与实现,了解其底层Akka通…...

【Flink】FlinkSQL读取hive数据(批量)

一、简介: Hive在整个数仓中扮演了非常重要的一环,我们可以使用FlinkSQL实现对hive数据的读取,方便后续的操作,本次例子为Flink1.13.6版本 二、依赖jar包准备: 官网地址如下: Overview | Apache Flink 1、我们需要准备相关的jar包到Flink安装目录的lib目录下,我们需…...

list链表

1. list基本概念 功能:将数据进行链式存储 链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成:链表由一系列结点组成 结点的组成:一个是存储数据…...

<网络安全>《42 网络攻防专业课<第八课 - SQL注入漏洞攻击与防范>》

1 SQL注入漏洞利用及防范 1 SQL注入的地位 2 SQL注入的危害及本质 这些危害包括但不局限于: 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。网页篡改:通过操作数据库对特定网页进行篡改。网站被挂马,传播恶意软件&#…...

微服务开发工具及环境搭建

后端 安装jdk a. 官网下载b. 安装c. 配置环境变量参考: 博客 安装IDEA a. 官网下载社区版(免费) IntelliJ IDEA Community b. 安装 下载链接 前端 安装node 及 npm 下载链接 安装vscode 下载链接 安装Hbuilderx 下载链接 虚拟机环境 …...

HTML学习笔记——08:表单<form>

HTML <form> 元素表示文档中的一个区域&#xff0c;此区域包含交互控件&#xff0c;用于向 Web 服务器提交信息。 例如&#xff1a;登录页面。 作用&#xff1a;搜集不同类型的用户输入&#xff0c;并向服务器传送数据。 注意&#xff1a;表单本身并不可见&#xff01;…...

什么是跨端,常用的跨端技术

跨平台是跨操作系统&#xff0c;跨端是指客户端 常见的客户端有&#xff0c;web、android、ios 等&#xff0c;客户端的特点是有界面、由逻辑&#xff0c;所以包含逻辑跨端和渲染跨端。 常用的跨端技术方案 React Native&#xff1a; 由 Facebook 推出的开源框架&#xff0c;…...

【书生·浦语大模型实战营】第6节:OpenCompass 大模型评测(笔记版)

OpenCompass 大模型评测 1.关于评测的三个问题 为什么需要评测&#xff1a;模型选型、能力提升、应用场景效果测评。测什么&#xff1a;知识、推理、语言&#xff1b;长文本、智能体、多轮对话、情感、认知、价值观。怎样测&#xff1a;自动化客观测评、人机交互测评、基于大…...

为什么需要写Java单元测试总结

目录 前言 一、为什么写单元测试 写单测好处 1、提升效率 2、场景覆盖全 单测怎么写 1、集成测试 2、单元测试 Mock框架 1、Mockito单元测试 2、Mockito 中文文档地址 二、强制要求 1.好的单元测试必须遵守AIR原则。 2.单元测试应该是全自动执行的&#xff0c;并…...

Gin框架: 控制器, 中间件的分层设计案例

对控制器的分组与继承 1 &#xff09;设计项目目录结构 yourGinProject/ 根目录├── go.mod go mod 文件├── go.sum go sum 文件├── main.go main 文件└── tpls html模板目录│ └── web│ │ └── index.html├── routers 路由目录│ …...

日常遇到Maven出现依赖版本/缓存问题通用思路。

Maven依赖错误联想 明明自己的工程是直接从大佬哪里拉下来的&#xff0c;并且自己的setting文件也是没有问题&#xff0c;可是自己偏偏编译有问题。这里介绍一种通用解决方案&#xff0c;仅供参考。 前置排查确认 我遇到原因是在JDK升级过程中遇到的&#xff1a; java.lang.…...

安卓11-HDMI插拔检测流程

hdmi从插入到拔出经过底层一系列检测到应用层&#xff0c;应用层获取hdmi插入状态后又会做出一系列相应的动作&#xff0c;下面梳理了从应用层到底层一步步追踪到芯片的hpd-pin的检测过程。 frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.…...

OkHttp Retrofit HttpClient之间的区别

OkHttp、Retrofit 和 HttpClient 是三个不同的 HTTP 客户端库&#xff0c;它们各自有不同的特点和用途。下面是它们之间的主要区别&#xff1a; 1. **OkHttp**&#xff1a; - OkHttp 是一个高性能的 HTTP 和 HTTP/2 客户端&#xff0c;由 Square 公司开发。 - 它…...

Paddlepaddle使用自己的VOC数据集训练目标检测(0废话简易教程)

一 安装paddlepaddle和paddledection&#xff08;略&#xff09; 笔者使用的是自己的数据集 二 在dataset目录下新建自己的数据集文件&#xff0c;如下&#xff1a; 其中 xml文件内容如下&#xff1a; 另外新建一个createList.py文件&#xff1a; # -- coding: UTF-8 -- imp…...

【解析】C语言两个实例

例一&#xff1a; 下面程序输出什么&#xff1f; int main() { int i 43; int n printf("%d\n",i); printf("%d\n",n); return 0; } 大家深入考虑一下为什么返回是3这背后有什么鲜为人知的秘密到底是C语言离奇的规定还是深思熟…...

阅读笔记(Multimedia Systems2020)Review on image-stitching techniques

Wang Z, Yang Z. Review on image-stitching techniques[J]. Multimedia Systems, 2020, 26: 413-430. DOI https://doi.org/10.1007/s00530-020-00651-y...

【Java程序员面试专栏 数据结构】三 高频面试算法题:栈和队列

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,因为栈和队列这两哥们结构特性比较向对应,所以放到一篇Blog中集中练习 题目题干直接给出对应博客链接,这里只给出简单思路、代码实现、复杂度分析 题目关键字…...

Python | Conda常用命令

一、介绍 1、Anaconda工具 Anaconda是一个用于数据科学和机器学习的开源软件包管理器和环境管理器。它包含了许多流行的数据科学工具和库&#xff0c;如Python、Jupyter Notebook、numpy、pandas、scikit-learn等&#xff0c;可以帮助用户轻松地管理和安装这些工具和库。Anaco…...

Linux 驱动开发基础知识——APP 怎么读取按键值(十二)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…...

【FastAPI】P3 请求与响应

目录 请求路径参数查询参数 响应JSON 响应文本响应返回 Pydantic 模型 在网络通讯中&#xff0c;请求&#xff08;Request&#xff09; 与 响应&#xff08;Response&#xff09; 扮演着至关重要的角色&#xff0c;它们构成了客户端与服务器间互动的根本理念。 请求&#xff0…...

Python学习-流程图、分支与循环(branch and loop)

十、流程图 1、流程图&#xff08;Flowchart&#xff09; 流程图是一种用于表示算法或代码流程的框图组合&#xff0c;它以不同类型的框框代表不同种类的程序步骤&#xff0c;每两个步骤之间以箭头连接起来。 好处&#xff1a; 1&#xff09;代码的指导文档 2&#xff09;有助…...

Python Flask Web 框架学习笔记+完整项目

Flask是一个轻量级的基于Python的web框架。 我们建议使用最新版本的 Python。Flask 支持 Python 3.8 及更高版本。 官网&#xff1a;欢迎使用 Flask — Flask 文档 &#xff08;3.0.x&#xff09; (palletsprojects.com) RESTFul API&#xff1a;Python Flask高级编程之REST…...

XML Map 端口进阶篇——常用关键字和格式化器详解

XML Map 端口是用于在不同XML之间建立关系映射的工具&#xff0c;允许通过拖拽操作实现源XML和目标 XML之间的数据字段映射&#xff0c;除此之外&#xff0c;XML Map 端口还提供了其它丰富多彩的功能&#xff0c;使用户能够更加灵活和高效的处理XML 数据映射任务&#xff0c;让…...

排序算法之——直接插入排序

直接插入排序——以升序排列为例 1.1基本思想1.2动态图示感知1.3静态图示详解1.4代码实现1.5时间复杂度1.5.1最好情况1.5.2最差情况 1.6空间复杂度1.7稳定性1.7.1一个小问题 1.1基本思想 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直…...

突出最强算法模型——回归算法 !!

文章目录 1、特征工程的重要性 2、缺失值和异常值的处理 &#xff08;1&#xff09;处理缺失值 &#xff08;2&#xff09;处理异常值 3、回归模型的诊断 &#xff08;1&#xff09;残差分析 &#xff08;2&#xff09;检查回归假设 &#xff08;3&#xff09;Cooks 距离 4、学…...

云数据库 Redis 性能深度评测(阿里云、华为云、腾讯云、百度智能云)

在当今的云服务市场中&#xff0c;阿里云、腾讯云、华为云和百度智能云都是领先的云服务提供商&#xff0c;他们都提供了全套的云数据库服务&#xff0c;其中 Redis属于RDS 之后第二被广泛应用的服务&#xff0c;本次测试旨在深入比较这四家云服务巨头在Redis云数据库性能方面的…...

Android---Retrofit实现网络请求:Java 版

简介 在 Android 开发中&#xff0c;网络请求是一个极为关键的部分。Retrofit 作为一个强大的网络请求库&#xff0c;能够简化开发流程&#xff0c;提供高效的网络请求能力。 Retrofit 是一个建立在 OkHttp 基础之上的网络请求库&#xff0c;能够将我们定义的 Java 接口转化为…...

使用静态CRLSP配置MPLS TE隧道

正文共&#xff1a;1591 字 13 图&#xff0c;预估阅读时间&#xff1a;4 分钟 静态CRLSP&#xff08;Constraint-based Routed Label Switched Paths&#xff0c;基于约束路由的LSP&#xff09;是指在报文经过的每一跳设备上&#xff08;包括Ingress、Transit和Egress&#xf…...

gentoo安装笔记

最近比较闲&#xff0c;所以挑战一下自己&#xff0c;在自己的台式电脑上安装gentoo 下面记录了我亲自安装的步骤&#xff0c;作为以后我再次安装时参考所用。 整体步骤 一般来将一个linux发行版的安装步骤其实大体上都差不多&#xff0c;基本分为一下几步&#xff1a; 1. …...