吴恩达《机器学习》11-1-11-2:首先要做什么、误差分析

news/2024/10/22 12:30:58/

一、首先要做什么

选择特征向量的关键决策

以垃圾邮件分类器算法为例,首先需要决定如何选择和表达特征向量 𝑥。视频提到的一个示例是构建一个由 100 个最常出现在垃圾邮件中的词构成的列表,根据这些词是否在邮件中出现来创建特征向量,尺寸为 100×1。

构建分类器算法的决策

对于垃圾邮件分类器,面临多个决策:

  1. 收集更多数据:获取更多垃圾邮件和非垃圾邮件的样本,以提高算法的性能。

  2. 基于邮件的路由信息开发特征:利用邮件的路由信息构建一系列复杂的特征。

  3. 基于邮件的正文信息开发特征:考虑邮件正文信息,包括截词的处理,开发一系列复杂的特征。

  4. 探测刻意的拼写错误:开发复杂的算法来检测拼写错误,如将 "watch" 写成 "w4tch"。

在这些选项中,决定在哪个方向上投入时间和精力是一个关键的决策。而这个决策不仅仅依赖于数学和模型,更需要智慧的选择。视频中提到,比起凭感觉走,通过系统性的思考和头脑风暴来确定方向会更好。

如何作出明智的选择?

视频强调了在机器学习中,常常需要通过头脑风暴,想出不同的方法来尝试提高算法的精度。实际上,当你能够列出可能的方法时,你可能已经走在了很多人的前面。大多数人不会尝试列出各种可能的方法,而是靠灵感和突发奇想。

误差分析的重要性

在接下来的课程中,将介绍误差分析,探讨如何以更系统的方式从各种方法中选择最合适的方法。这种方法能够帮助你在一堆可能的方法中,选择一个真正有效的方法,从而更有可能进行深入研究并取得显著的进展。

综合来看,系统性地思考和设计机器学习系统是成功的关键之一。在这个过程中,对于特征选择、算法设计和下一步的决策,都需要深入思考和明智的选择,而不是凭感觉随意尝试。这是构建大型机器学习系统时节省时间的关键。

二、误差分析

构建简单而快速的算法

视频强调了在研究机器学习问题时,建议从构建一个简单而快速的算法开始。即便这个算法可能并不完美,通过快速实现并运行,可以迅速得到结果。这一过程通常不需要花费过多时间。

学习曲线和检验误差

绘制学习曲线是判断算法性能的有效方法。通过学习曲线,可以了解算法是否存在高偏差和高方差的问题,以及其他可能的缺陷。进一步的决策可以包括增加数据量、添加更多特征等。

误差分析的重要性

误差分析是机器学习实践中的关键步骤。通过人工检查算法在交叉验证集上产生预测误差的实例,可以发现系统性的规律。观察被错误分类的垃圾邮件和非垃圾邮件,有助于发现算法的短处和提升空间。

通过量化数据进行决策

视频强调了使用量化数据进行决策的重要性。在进行误差分析时,不仅仅依赖于主观判断,而是通过数值评估来决定算法的表现。这样可以更快速地实践新的想法,找出能够提高算法性能的方法。

误差分析的步骤
  • 观察错误分类的实例:检查算法在交叉验证集上产生预测误差的实例。
  • 分类错误的邮件分组:将错误分类的邮件按照类别分组,例如医药品垃圾邮件、仿冒品垃圾邮件等。
  • 检查分类器对每组邮件的预测误差:观察分类器对哪一组邮件的预测误差最大,从而确定优化的方向。
  • 思考如何改进分类器:根据观察结果,思考是否缺少某些特征,记录错误出现的次数,以便有针对性地改进算法。
推荐方法
  1. 实现简单而快速的算法:快速得到初步结果,成为进一步决策的有力工具。
  2. 绘制学习曲线:通过学习曲线判断算法的偏差和方差问题,决定下一步的改进方向。
  3. 进行误差分析:在交叉验证集上进行误差分析,观察错误分类的实例,找出系统性规律。
  4. 量化数据进行决策:依赖数值评估,快速实践新的想法,通过数据判断算法的表现优劣。

参考资料

[中英字幕]吴恩达机器学习系列课程

黄海广博士 - 吴恩达机器学习个人笔记


http://www.ppmy.cn/news/1259755.html

相关文章

科技论文中的Assumption、Remark、Property、Lemma、Theorem、Proof含义

一、背景 学控制、数学、自动化专业的学生在阅读论文时,经常会看到Assumption、Remark、Property、Lemma、Theorem、Proof等单词,对于初学者可能不太清楚他们之间的区别,因此这里做一下详细的说明。 以机器人领域的论文为例。 论文题目&…

【从0配置JAVA项目相关环境1】jdk + VSCode运行java + mysql + Navicat + 数据库本地化 + 启动java项目

从0配置JAVA项目相关环境 写在最前面一、安装Java的jdk环境1. 下载jdk2. 配置jdk3. 配置环境变量 二、在vscode中配置java运行环境1. 下载VSCode2. 下载并运行「Java Extension Pack」 三、安装mysql1.官网下载MySQL2.开始安装如果没有跳过安装成功 3.配置MySQL Server4.环境变…

STM32串口接收数据包(自定义帧头帧尾)

1、基本概述 本实验基于stm32c8t6单片机,串口作为基础且重要的外设,具有广泛的应用。本文主要理解串口数据包的发送与接收是如何实现的,重要的是理解程序的实现思路。 2、关键程序 定义好需要用到的变量: uint8_t rxd_buf[4];//…

1.1 计算机和编程语言

计算机与编程语言的用处 计算机与大家的生活息息相关,例如银行的ATM机就是计算机、日常使用的手机等。大家大部分情况都是使用现有的软件,只有在特定场景、特定需求的环境下才会编写软件 课程目的 计算机是怎么工作的计算机擅长干什么,计算…

[传智杯 #4 初赛] 萝卜数据库

题目描述 花栗鼠很喜欢偷吃生产队的大萝卜,因此花栗鼠科技大学正在研究一种新型的数据库,叫做萝卜数据库。 具体来说,它支持 k(1≤k≤100) 个字段,每个字段名都是整数,里面存储的数值也都是整数。 现在你支持如下操…

*p++和(*p)++的区别

*p和(*p)的区别 *和是同优先级操作符,且都是从右至左结合的 ∗ * ∗p:取p所指单元的值,p指向下一单元,即p自加1,然后p指向下一个地址。和 (p)意思一样 (*p):()的优先级比和都高,所以作用在()内…

IOday4作业

使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一半内容&#xff0c;父进程用于回收两个子进程的资源 #include<myhead.h>int main(int argc, const char *argv[]) {int pid-1;int fd -1;int fa -1;int fb -1;//求出文…

【MATLAB源码-第96期】基于simulink的光伏逆变器仿真,光伏,boost,逆变器(IGBT)。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. 光伏单元&#xff08;PV Cell&#xff09; 工作原理&#xff1a;光伏单元通过光电效应将太阳光转换为直流电。它们的输出取决于光照强度、单元温度和负载条件。Simulink建模&#xff1a;在Simulink中&#xff0c;光伏单元…