从0开始学习机器学习--Day20--优化算法的思路

确定执行的优先级(Prioritizing what to work on : Spam classification example)

在建立学习系统前,我们不仅要梳理框架,更重要的是我们要弄清楚有哪些事情是要优先做的,这可以帮我们节约大量的时间。

以垃圾邮件为例,按照之前解决分类问题的思路,我们可能会想到设置特征向量为x,在训练集中假设垃圾邮件的标签为1,否则则为0,但是怎么设置特征向量是一个关键的问题。假设我们有一个100个单词纵向排列的单词表,我们把邮件里的单词与表做对比,如果出现了表里的单词记为1,否则记为0,从而设置出一个由0和1构成的列向量,而这就是一个100维的特征向量了。当然,在实际操作中,我们是把训练集中出现的较多的单词放进表里,而不是随机写一个表,衡量较多次数的标准是出现次数在[10000,50000]。

像上述所说的方法,其实就是在试图让我们的算法如何在有限的时间内具有高精确度和低错误率,当然我们还可以添加其他特征,像通过标题的信息辅助判断,邮件内容中授信人信息的占比以及故意拼写错误的单词,都能帮助我们更好地优化算法,这些方法之间没有优劣之分,一般我们会随机采取其中一种或几种方法,只要不去盲目地收集数据扩大训练集。

误差分析(Error analysis)

在解决学习问题时,和想象中思考如何将尽可能考虑全面,如何做出一个复杂的系统不同,我们一般会先在较短的时间内粗略地做一个简单算法出来,并画出对应的学习曲线和计算出误差。在上一章我们了解到,这可以帮助我们知道我们应该往哪个方向优化算法,是应该扩充数据集,还是增加更多特征,亦或是更改正则化参数。

但在这里想说的一个同样很重要的方法:误差分析,我们可以在观察每次算法在验证集计算误差后,呈现出的错误预测的结果,多看看这些结果有利于我们思考怎样去设计新特征以及当下算法的优缺点。

对于垃圾邮件分类算法作误差分析

可以看到,假如我们有500个验证集,其中有100个被是错误分类的,通过手动分析我们发现其中的邮件以盗取密码为目的的钓鱼邮件居多,那么我们就可以在特征筛选时加强带有密码信息字眼的权重;假如我们分析这些错误分类的邮件中拼写错误的很少,来源奇怪和带有奇怪标点的邮件很多,这说明我们需要把更多的时间放在思考如何筛选后者。

另一个改进算法的技巧是在算法中加入数值估计,意思是在对算法做出改进后,优化后的算法可以返回一个数值评价标准来估计算法执行的结果,这有助于我们判断是否改进的方向是准确的,毕竟进步0.05和进步5是截然不同的两个效果。

假设我们思考根据词干将一些单词归为同一类以方便算法做出更好的判断,但有的只是因为单词的时态发生改变(discount,discounted,discounting),有的根本就是两个单词(universe,university),在这种情况下,最好的判断方法就是我们实施词干提取的方法然后观察效果是否显著,而在这种背景下,返回一个数值评价就能帮我们直观地感受一个方法的好坏,简单的做法就是用分类错误率作为数值评价,假如用了词干提取后错误率下降了,这就说明这是一个好的改进思路。所以我们一般都会在验证集执行这一步,毕竟这就有一个现成的、可以不需要加工的数据供我们参考,而不是在测试集再去做分析。

视频参考链接:https://www.bilibili.com/video/BV1By4y1J7A5?spm_id_from=333.788.player.switch&vd_source=867b8ecbd62561f6cb9b4a83a368f691&p=66

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

利用JS实现图片轮播(示例)

我们平时在逛购物网站的时候会看到页面内的商品图片自动轮播,二要想实现着中效果应该如何做呢?下面详细讲解代码的运用,实现下面视频的效果。大家也可以自己试试看,或者复制最后的完整代码运行一下! 图片自动轮播效果 …

关于99.9% 达成读码率方案

1.标签样式 2.尺寸大小 长30mm*宽30mm 至 长40mm*宽40mm ; 3.位置 标签位置在箱体中间,可以误差5mm; 4.质量要求 ①无遮挡,标签不允许任何介质在上面,尤其是塑料片 ②平整,必须和箱子壁贴平,不允许翻边,飘荡。 ③码不能有模糊,手机摄像头扫码可以…

w~视觉~合集20~SAM

我自己的原文哦~ https://blog.51cto.com/whaosoft/12500982 #SAM 今天,Meta发布史上首个图像分割基础模型SAM,将NLP领域的prompt范式引进CV,让模型可以通过prompt一键抠图。网友直呼:CV不存在了! 就在刚刚,Meta AI…

三、直流有刷电机H桥驱动原理

1、H桥简介 H桥驱动电路:是一种用于控制直流电机正反转及速度的电路,其名称来源于其电路结构类似于字母“H”。H桥驱动电路由四个开关元件(如晶体管、MOSFET等)组成,这些开关元件被配置成可以控制电机两端电流的方向&…

Leetcode刷题

题目如下: 这道题呢,这里我写出了两种解决办法,一种遍历链表来得出中间结点,一种通过快慢指针来得出中间结点 第一种: 遍历: 首先我们设置一个计数器count,来记录链表的长度,写一…

游戏开发--C#面试题

游戏开发--C#面试题 C#1. 值类型和引用类型的区别2. 重载和重写的区别3. ArrayList和List的区别4. List底层是什么实现的?5. 抽象类和接口的区别6. 静态成员和⾮静态成员的区别7. 装箱和拆箱是指什么?8. 值和引用类型在变量赋值时的区别是什么&#xff1…

# 设置ubuntu为中文后,如何保留用户家目录等文件夹名为英文

设置ubuntu为中文后,如何保留用户家目录等文件夹名为英文 一、问题描述: 当我们安装完ubuntu系统后,通过【系统设置】,在【语言支持】里,设置为【汉语(中国)】,这时在终端中显示文…

STM32—独立看门狗(IWDG)和窗口看门狗(WWDG)

概述: WDG(Watchdog) 看门狗,看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能计时复位程序,避免程序陷入长时间的罢工状态,保证系…

Chrome与火狐哪个浏览器的性能表现更好

在数字时代,浏览器是我们日常生活中不可或缺的工具。无论是工作、学习还是娱乐,一个好的浏览器都能显著提高我们的效率和体验。市场上有许多优秀的浏览器,其中Google Chrome和Mozilla Firefox无疑是最受欢迎的两款。本文将比较这两款浏览器的…

现在国内优秀的广告联盟有哪些?

广告联盟是网络广告效果营销的主流方式之一,广告联盟的变现方式多种多样,主要有以下四种 CPA:按照下载或者注册进行付费(软件平台或游戏试玩平台)CPS:按照成交进行付费(淘宝客)CPM&…

机器学习,生成式AI ,LLM大模型,人工智能,他们之间的关系是什么?有什么不同?

这些概念都是现代计算机科学和人工智能领域的重要组成部分,它们之间既有联系,也有区别。以下是它们的关系和不同之处: 人工智能 (AI) 两个回答 人工智能是一个广义的概念,指的是计算机系统能够执行通常需要人类智能才能完成的任务…

[全网最细数据结构完整版]第七篇:3分钟带你吃透队列

目录 1->队列的概念及结构 2->队列的实现 2.1定义队列基本结构 struct QueueNode 和 struct Queue 2.2队列初始化函数 QueueInit 函数 2.3队列销毁函数 QueueDestroy 函数 2.4队列插入数据函数 QueuePush 函数 2.5判断队列是否为空,空返回true,非空返回false 2.6队列删…

点阵数显驱动IC数显LED驱动芯片VK1651

产品品牌:永嘉微电/VINKA 产品型号:VK1651 封装形式:SOP16 产品年份:新年份 产品简介:VK1651是一种带键盘扫描电路接口的 LED 驱动控制专用芯片,内部集成有数据锁存器、LED 驱动、键盘扫描等电路。SEG脚…

【进阶】java基础之集合(2)数据结构<树>

文章目录 二叉树的内部结构二叉查找树平衡二叉树平衡二叉树的旋转机制 二叉树的内部结构 二叉查找树 二叉查找树,又称二叉排序树或者二叉搜索树 特点: 每一个节点上最多有两个子节点任意节点左子树上的值都小于当前节点任意节点右子树上的值都大于当前节点 二叉…

积分接口被刷爆,全体一个月降薪20%,这个项目我们遗漏了什么?

有一些往事总是会在酒后提起 我问朋友,在工作上有什么事情是到现在还记忆尤新的? 我朋友一个激灵坐起来,点上一支烟,只见烟头亮了4、5下,才见他吐出一口烟来,说道:“那还真有” 起因 刚参加…

AWTK-LINUX-FB实现多点触摸

两周前的一个地图,需要做手势缩放的功能,比较忙就没有发出来,这次抽时间记录一下实现的过程。 AWTK官方有对实现多点触摸做过描述,可惜只有STM32的实现例子,跟Linux的差别还是比较大的,好在tslib有多点触摸…

NRF52832学习笔记(41)——添加串口库libuarte

一、背景 由于板子上不支持硬件流控,在使用 app_uart_fifo 库接收串口大数据时,频繁报 APP_UART_COMMUNICATION_ERROR 错误,多次重新初始化后,串口也不再产生中断了。查看官方论坛后决定使用串口异步库 libuarte。 二、简介 Li…

ORU 的 Open RAN 管理平面 (M 平面)

[TOC](ORU 的 Open RAN 管理平面 (M 平面)) ORU 的 Open RAN 管理平面 (M 平面) https://www.techplayon.com/open-ran-management-plane-m-plane-for-open-radio-unit/ ORU M 平面 在 ORAN 中,设置参数的 O-RU 管理功能是通过 M-Plane 完成的。管理功能包括 O-…

MQ的基础知识

一.什么是MQ 其实就是不同的程序之间的一种的通信方式,通过将消息发送到中间件里面然后中间件就会将这个消息发送给相应的服务进行一个消息的消费,这个时候就会进行一些的业务逻辑的处理,这个方式提高了整个系统的可靠性,拓展性以及灵活性.常见的类型为Aapache Kafaka&#xf…

蓝牙OPP协议详解及Android实现

文章目录 前言一、什么是蓝牙OPP协议?二、OPP协议工作流程1. 设备配对和连接2. 启动 OPP 服务3. 发送对象4. 传输对象5. 传输完成6. 断开连接 三、 Android OPP协议实现1. 启动 OPP 服务器(接收方)2. 发送文件(发送方)…