成为AI产品经理——模型构建流程(下)

目录

1.模型训练

2.模型验证

3.模型融合

4.模型部署


上节课我们讲了模型设计、特征工程,这节课我们来讲模型构建剩下的三个部分:模型训练、模型验证和模型融合。

1.模型训练

模型训练就是要不断地训练、验证、调优直至让模型达到最优。

那么怎么达到最优呢?就是要绘制一条比较好的决策边界

决策边界

就是在符合某种条件做出某种选择的条件,根据这个条件可以将结果进行划分。

比如说:下午6:00不写完这篇博客我不吃饭,那么写完了就去吃,没写完就不吃。这个条件就是我们说的决策边界。

决策边界分为:线性决策边界和非线性决策边界。下图中,图1为线性决策边界,图2、图3为非线性决策边界。

决策边界曲线的平滑程度和算法训练出来的模型能力息息相关。曲线越陡峭模型的测试精度越准确,但是越陡峭的曲线模型越不稳定。

所以为了找到好的决策边界划分结果,我们需要找到稳定性和准确率的平衡点。使用专业术语来讲,我们就是需要找到泛化能力和拟合性能都好的平衡点。

通常,算法工程师会使用交叉验证来找到模型参数的最优解。

总结:模型训练就是要找到一个划分条件(决策边界),使得准确率(拟合)最高的同时兼顾稳定性(泛化性能)。

 交叉验证

这里举例10折交叉验证法。如果一个样本集中有10个样本数据,对数据进行1-10的标号。

先使用1-9号标号的数据作为训练集,将10号标号的数据作为测试集。

接着将9号标号的数据作为训练集,其他数据作为测试集。

接着将8号标号的数据作为训练集,其他数据作为测试集。

……

依次类推,然后将测试结果取出平均值。

如果这里有100个样本,我们先将100个样本随机分成10组,将每一组按照这样的方式进行测试,然后10组再取平均值。

2.模型验证

算法工程师为了模型预测结果更加准确,将模型构建的比较复杂,越复杂的模型越依赖于训练集,但是越依赖训练集的模型泛化能力越差,造成过拟合的情况。

算法工程师为了使模型的泛化性能好一点,就降低模型的复杂度,这样就造成了准确率不高,也就是欠拟合。

下图的偏差我们可以看作误差率,而方差可以看作泛化能力。可以类比为我们这里的欠拟合和过拟合情况。

所以算法工程师在模型训练的绝大多数时间就是在找两者的平衡点,找到适合的参数。但是有时候我们以为的最优解并不是真正的最优解,所以我们需要模型验证工作。

模型验证分为两部分:模型性能和模型稳定性。

模型性能:简而言之就是模型的预测准不准确。具体的评估指标有具体章节来讲。

模型的稳定性:就是模型的效果可以持续多久?我们使用PSI指标来判断模型的稳定性,具体的计算方法和合理范围我们后面也会讲到。

基于此我们知道我们需要了解模型的性能指标、稳定性指标以及其合理范围才能够进行模型的验证,判断模型的好坏。

3.模型融合

我们以前谈到的例子都是使用一个模型来讲的,但是为了解决多种具体细节问题,算法工程师往往需要建立多个模型才能获得最佳的效果,此时就要考虑到模型的融合问题。

模型融合就是同时训练多个模型,然后融合集成在一起提高整体的准确率。

我们可以了解一些基本的融合方法,如下面的思维导图中的方法。

想要详细了解融合算法的可以看看下面两篇文章,有上面讲到的方法:【知出乎争】模型融合方法总结 - 知乎 (zhihu.com) 

【机器学习】模型融合方法概述 - 知乎 (zhihu.com) 

对于回归模型而言加权平均就是采用算术平均或加权平均的方法来融合。 对于分类问题而言,通常采用投票法来进行融合,就是把概率最大的,票数最多的作为结果。

在模型融合的过程中,产品经理需要做一个考虑成本问题。有时候算法工程师可能为了提升AUC(模型预测效果)的一个点,增加特征规模,导致模型部署成本增加,所以我们要注意一下。

4.模型部署

算法部门和研发部门是两个团队,为了降低彼此的依赖性,算法模型部署成独立的任务,然后暴露一个HTTP API给工程团队来调用。

我们需要根据业务场景选择离线/实时的部署。如果我们要实时的预测用户的UGC类别,那么我们的模型就要部署成在线的web服务并提供实时响应的API接口。如果模型只是需要对一段时间已有的数据进行分类,那么我们模型只需要部署成离线的就可以啦!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python“牵手”京东商品详情接口运营场景,京东商品详情接口调用指南

京东商品详情接口是一种程序化的接口,通过这个接口,商家或开发者可以使用自己的编程技能,获取京东平台上的商品详细信息。这个接口允许商家根据自身的需求,获取商品的标题、价格、促销价、优惠券、库存、销量、详情图片、SKU属性、…

YOLOv5分割训练,从数据集标注到训练一条龙解决

最近进行了分割标注,感觉非常好玩,也遇到了很多坑,来跟大家分享一下,老样子有问题评论区留言,我会的就会回答你。 第一步:准备数据集 1、安装标注软件labelme如果要在计算机视觉领域深入的同学&#xff0…

TC397 EB MCAL开发从0开始系列 之 [15.2] Fee配置 - QsBlock demo

一、Fee配置1、配置目标2、目标依赖2.1 硬件使用2.2 软件使用2.3 新增模块3、EB配置3.1 配置讲解3.2 模块配置3.2.1 MCU配置3.2.2 PORT配置3.2.3 Fls_17_Dmu配置3.2.4 Fee配置3.2.5 Irq配置3.2.6 ResourceM配置4、ADS代码编写及调试4.1 工程编译4.2 测试结果4.3 测例源码->

基于STC12C5A60S2系列1T 8051单片读写掉电保存数据IIC总线器件24C02一字节并显示在液晶显示器LCD1602上应用

基于STC12C5A60S2系列1T 8051单片读写掉电保存数据IIC总线器件24C02一字节并显示在液晶显示器LCD1602上应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍IIC通信简单…

致远M3 反序列化RCE漏洞复现(XVE-2023-24878)

0x01 产品简介 M3移动办公是致远互联打造的一站式智能工作平台,提供全方位的企业移动业务管理,致力于构建以人为中心的智能化移动应用场景,促进人员工作积极性和创造力,提升企业效率和效能,是为企业量身定制的移动智慧…

15.Python 异常处理和程序调试

1. 异常处理 异常就是在程序执行过程中发生的超出预期的事件。一般情况下,当程序无法正常执行时,都会抛出异常。 在开发过程中,由于疏忽或考虑不周,出现的设计错误。因此,在后期程序调试中应该根据错误信息&#xff…

系统高可用设计-有感

文章目录 系统设计原则是 冗余 取舍系统运维的原则是规避线上异常 高可用设计通常从 系统设计和 系统运维 2 个层面来着手突破。 系统设计原则是 冗余 取舍 冗余:指集群部署 故障转移取舍:常见手段包括:超时控制、降级、限流 系统运维…

音视频项目—基于FFmpeg和SDL的音视频播放器解析(二十)

介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…

springboot(ssm灾害应急救援平台 应急管理平台Java(codeLW)

springboot(ssm灾害应急救援平台 应急管理平台Java(code&LW) 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&#x…

AOP(面向切面编程)

AOP是针对面向对象编程的一种补充,有时使用面向对象不能很好完成一些额外的功能业务时,可以采用AOP来进行补充。切面编程的目的就是为了将业务目标进行而外的增强或者扩展。Spring中的AOP是基于JDK动态代理和CGLIB动态代理实现的。 应用场景 日志操作&…

【数据结构(四)】前缀、中缀、后缀表达式(逆波兰表达式)和逆波兰计算器的代码实现(2)

文章目录 1. 前缀表达式(波兰表达式)1.1. 前缀表达式的计算机求值 2. 中缀表达式3. 后缀表达式(逆波兰表达式)3.1. 后缀表达式的计算机求值3.2. 逆波兰计算器的实现 4. 中缀表达式 转 后缀表达式4.1. 思路分析4.2. 代码实现 5. 逆波兰计算器的完整版 1. 前缀表达式(波兰表达式)…

手写数字可视化_Python数据分析与可视化

手写数字可视化 手写数字流形学习 手写数字 手写数字无论是在数据可视化还是深度学习都是一个比较实用的案例。 数据在sklearn中,包含近2000份8 x 8的手写数字缩略图。 首先需要先下载数据,然后使用plt.imshow()对一些图形进行可视化: 打开c…

Mysql 锁机制分析

整体业务代码精简逻辑如下: Transaction public void service(Integer id) {delete(id);insert(id); }数据库实例监控: 当时通过分析上游问题流量限流解决后,后续找时间又重新分析了下问题发生的根本原因,现将其总结如下&#xf…

XDR 网络安全:技术和最佳实践

扩展检测和响应(XDR)是一种安全方法,它将多种保护工具集成到一个统一的集成解决方案中。它为组织提供了跨网络、端点、云工作负载和用户的广泛可见性,从而实现更快的威胁检测和响应。 XDR的目标是提高威胁检测的速度和准确性&…

Arduino驱动防水型SHT20温湿传感器(温湿度传感器)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 SHT20防水型温湿传感器,采用新一代Sensirion湿度和温度传感器,配有4代CMOSens芯片。除了配有电容式相对湿度传感器和能隙温度传感器外,该芯片还包含一个放大器、A/D转换器、OTP内存和数字处理单元,可精确测量周…

Linux系统介绍及文件类型和权限

终端:CtrlAltT 或者桌面/文件夹右键,打开终端 切换为管理员:sudo su 退出:exit 查看内核版本号:uname -a 内核版本号含义:5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几次微调;数字越大表示内核越新. 目录结构 /bin:存放常用命令(即二进制可执行程序…

C/C++内存管理(2):`new`和`delete`的实现原理

new和delete操作自定义类型 class Stack { public:Stack(int capacity 3):_top(0), _capacity(capacity){cout << "Stack(int capacity 3)" << endl;_a new int[capacity];}~Stack(){cout << "~Stack()" << endl;delete _a;_to…

openssl+ RSA + linux 签名开发实例(C++)

文章目录 一、opensslRSA理论基础二、openssl RSA 签名开发实例 一、opensslRSA理论基础 RSA签名是一种非对称加密算法&#xff0c;用于在信息传输过程中验证消息的完整性和真实性。以下是RSA签名的理论基础的主要知识点&#xff1a; RSA密钥对&#xff1a; RSA使用一对公钥和…

pcie-2-rj45速度优化

背景: 目前用iperf3打流传输速率达不到要求,千兆实际要求跑到800M以上: 优化方案: 1.优化defconfig: 首先编译user版本验证看是否正常 debug版本关闭CONFIG_SLUB_DEBUG_ON宏控。 2.找FAE ,通过更换驱动,或者更新驱动来优化 3.绑定大核: 以8125网卡为例,udp…

【Unity】IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍

IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍 IBeginDragHandler、IDragHandler 和 IEndDragHandler 是 Unity 引擎中的三个接口&#xff0c;用于处理 UI 元素的拖放事件。这些接口通常结合使用&#xff0c;构成了 Unity 引擎的拖放事件系统。 IBeginDragHandler…