吴恩达deeplearning.ai:机器学习的开发过程与优化方法

news/2024/7/27 12:04:27/文章来源:https://blog.csdn.net/m0_75077001/article/details/136466020

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏
我想在接下来分析下开发机器学习系统的过程,这样当你自己动手时,能够做出更加正确的判断。

机器学习开发的迭代 Iterative loop of ML development

决定模型架构

第一步,要决定模型架构,这意味着你要选择正确的模型,正确的参数,也许超参数等等。在决定完这些后,就可以训练模型。正如在之前的博客之中说的那样,模型一般不会一上来就很理想。下一步就可以查看一些诊断,例如查看程序的偏差和方差(以及下一节中的错误分析),根据诊断的结果,你可以再次调整模型,例如调整正则化系数啊,扩大神经网络啊,添加删除数据啊,增加或者减去特征之类的,这样就形成了一个迭代的闭环:
在这里插入图片描述
让我们看看一个垃圾邮件分类器的示例:

垃圾邮件分类器

左边是垃圾邮件的示例,右边是正常邮件:
在这里插入图片描述
垃圾邮件中经常会拼错一些敏感词,从而使得垃圾邮件分类器出错,所以我们该如何构建分类器呢
一种方法是构建一个监督学习算法,其中输入特征x是是电子邮件的特征输出标签y是0or1,这取决于文章是否是垃圾邮件。
构造电子邮件特征的一种方法是取英语单词的前10,000个单词并使用它们构造特征x_1一直到x_10000,例如下图的邮件,我们的输入特征就是a,andrew,buy,deal,discount等是否出现,出现了就记为1,否则为0:
在这里插入图片描述
另一种方法是记录出现次数,而非单单的01:
在这里插入图片描述
之后你就开始训练模型。并且开始想方法提高模型性能,以下是一些方法:

  1. 获得更多数据
  2. 发展基于邮件地址的复杂的特征
  3. 发展更加复杂的读文件文本的功能
  4. 检测语法错误

选择正确的方法可以加速你的工作进度。例如,如果你的模型具有高偏差,那么方法一就不太合适,但如果具有高方差,那么就比较合适了。在开发算法时,可以发展很多不同的想法并应用,并不一定要拘束于特定的一些方面。

误差分析

在诊断并选择下一步如何修改模型这一方面,我认为最重要的是偏差方差分析,而第二重要的就是误差分析。让我们看看具体是什么:
假设你有500个交叉验证的示例,并且你的算法错误地分类了其中的100个。误差分析的意思仅仅就是手动地查看这些事例每个具体错在了什么地方,从而能够了解算法错在了什么地方。具体来说,一种经常的做法是从错误的示例中找出一组,并将其分组为共性的主题或者特征。
例如,你发现很多分错的例子是药品销售,那么你就可以手动地查找,并且发现有21篇是药品销售。或者你怀疑是因为有些邮件有故意拼错的单词导致无法识别,那么也可以计算下有多少篇是有拼写错误的,假设找到了三个,按照这个思路下来,你可能还会找到邮件地址异常的7篇,18篇试图窃取密码,还有那么5篇是通过发送图片来发送垃圾邮件的。
在这里插入图片描述
然后你就会得出结论,影响你算法准确度的主要是以下几类邮件:卖药的邮件,窃取密码的邮件。那么你就当然优先解决以上的这些问题。
另外要说明的是,以上的这些类别并非一定是相互独立的,其实很多是相互重叠的,即一个例子可以有以上的多个特征。
如果例子很多的话,你可能没法一次性查看所有的例子,可以采取随机抽查的方法。

下一步怎么做

接下来,你就可以针对某种类型的问题来专门修正的你的模型。例如你发现你的模型难以识别医药类广告,那么你就可以多给它喂医药类邮件的数据,让它对其更加敏感。或者你可以在你的词库中增加医药类的相关名词,等等。反正就是对症下药。因此诊断时除了观察偏差方差,记得还可以进行误差分析。
在这里插入图片描述
为了给读者你造成不必要的麻烦,博主的所有视频都没开仅粉丝可见,如果想要阅读我的其他博客,可以点个小小的关注哦。

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

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

相关文章

酷开科技以酷开系统为媒介,打造欢乐生活场景

家人相聚在一起的时光总是那么美好,在欢聚的日子里,我们也总是希望能够让时间变得慢一点,再慢一点,但是随着春节假期的结束,很多人已经开始了新一年的忙碌,大家纷纷回到工作、学习岗位,回归之前…

GBU1510-ASEMI逆变器整流桥GBU1510

编辑:ll GBU1510-ASEMI逆变器整流桥GBU1510 型号:GBU1510 品牌:ASEMI 封装:GBU-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):15A 功率(Pd):大功率 芯片个数:4…

Java后端核心——Servlet

目录 一.概述 二.基础实现 1.导入坐标 2.定义实现类 3.注解 4.访问Servlet 三.执行流程 四.生命周期 1.加载和实例化 2.初始化 3.请求处理 4.服务终止 五.方法 1.init 2.service 3.destroy 4.getServletInfo 5.getServletConfig 六.体系结构 七.urlPatter…

基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

Rollup Summer:一览 Rollup 生态全景图

作者:Stanley,Kernel Ventures 编译:JIN,Techub News 短短几天内,ZKFair 的总锁定价值(TVL)已达到 1.2 亿美元,目前稳定在 8000 万美元,使其成为增长最快的 Rollup 之一…

测试常用MySQL相关

1、通过命令行连接数据库 [rootlocalhost ~]# mysql -u root -p Enter password: 输入以上命令,回车后输入密码,回车,出现 mysql> 命令提示窗口则表示登录成功,可以在mysql>下输入任何sql语句。 2、退出mysql mysql>…

【Python】新手入门:什么是变量?如何在Python中声明变量?变量有哪些使用方式?

【Python】新手入门:什么是变量?如何在Python中声明变量?变量有哪些使用方式? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【…

C# OpenCvSharp DNN FreeYOLO 密集行人检测

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN FreeYOLO 密集行人检测 效果 模型信息 Inputs ------------------------- name:input tensor:Float[1, 3, 192, 320] --------------------------------------------------------------- …

#stm32外设总结电容触摸按键

BS8116A-3 IRQ 外部中断请求 NMOS输出内部上拉 SCL SDA IIC通信接口 VDD 供电电压2.2-5.5V Ct电容: 0~25 pF 电容越大灵敏度越低 1、 软件使用流程 初始化 将IIC的两个引脚初始化为复用开漏模式 按键引脚设置上拉输入 下降沿触发外部中断 void KEY_Init(void) {//uint8_t …

打造经典游戏:HTML5与CSS3实现俄罗斯方块

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

uniapp实现单选框卡片选择器,支持微信小程序、H5等多端

采用uniapp-vue3实现的一款单选框卡片选择器&#xff0c;纯CSS实现样式和交互&#xff0c;提供丝滑的动画选中效果&#xff0c;支持不同主题配置&#xff0c;适配多端 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net.cn/plugin?id16901 使用示例 示例代码 <te…

【Spring Boot 源码学习】BootstrapContext的实际使用场景

《Spring Boot 源码学习系列》 BootstrapContext的实际使用场景 一、引言二、往期内容三、主要内容3.1 BootstrapContext3.2 BootstrapRegistry 初始化器实现3.3 BootstrapContext 的实际使用场景3.3.1 早期启动时3.3.2 环境配置准备完成时3.3.3 应用上下文准备完成后关闭 Boot…

使用Opencv库直接进行人脸检测

import cv2abs_path cv2.__file__ xml_path abs_path.rsplit("/",1)[0] "/data/haarcascade_frontalface_default.xml"# 加载人脸检测器 face_cascade cv2.CascadeClassifier(xml_path)# 加载图像 img cv2.imread(/media/datasets/face/liuyigei_duo.…

uniapp列表进入动画

app列表入场动画 - DCloud 插件市场 列表入场动画https://ext.dcloud.net.cn/plugin?id16957

WordPress 从入门到精通【设置 WordPress】

前言&#xff1a;为方便演示&#xff0c;前几张图使用 Playground 环境截取 如果你还不会部署WordPress&#xff0c;请看下面的链接并使用雨云可视化构建一个WordPress站点&#xff1a; 超简单EP面板搭建WordPress网站教程 - 风屿岛 10 (biliwind.com) 进入仪表盘 在搭建完…

禁止使用搜索引擎,你了解吗?

员工A&#xff1a;“我今天想搜索的时候&#xff0c;用不了浏览器了&#xff0c;你能用么&#xff1f;” 员工B&#xff1a;“不知道啊我试一下啊” “也不行” 员工C&#xff1a;“为什么啊&#xff1f;” 针对上述对话&#xff0c;我们不禁思考&#xff1a; 公司为什么禁…

机器学习-可解释性机器学习:随机森林与fastshap的可视化模型解析

一、引言 机器学习在当今社会扮演着日益重要的角色&#xff0c;但黑盒模型的不可解释性限制了其应用范围。因此&#xff0c;可解释性机器学习成为研究热点&#xff0c;有助于提高模型的可信度和可接受性。本文旨在探讨随机森林和fastshap作为可视化模型解析工具的应用&#xff…

Mysql的Cardinality值

什么是Cardinality值&#xff1f; Cardinality值是Mysql做索引优化时一个非常关键的值&#xff0c;优化器会根据这个值来判断是否使用这个索引&#xff0c;它表示索引中唯一值的数目估计值&#xff0c;该值应该尽可能接近1&#xff0c;如果非常小&#xff0c;则用户需要考虑是否…

机器学习中的线性代数

基础知识的的复习: 线性代数——深度学习花书第二章 - 知乎 矩阵分解 特征值分解。 PCA(Principal Component Analysis)分解,作用:降维、压缩。 SVD(Singular Value Decomposition)分解,也叫奇异值分解。 矩阵分解的主要应用是:降维、聚类分析、数据预处理、低维度特征学…

音视频学习笔记——实现PCM和H264合成MP4功能

本文主要记录实现PCM和H264合成MP4功能的整个框架&#xff0c;各个模块中FFmpeg的api使用流程&#xff0c;便于后续学习和复盘。 本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习&#xff0c;梳理总结后写下文章&#xff0c;对音视频相关内容感兴趣…