8. 机器学习系统设计

news2024/11/24 19:43:33

假设你想建立一个垃圾邮件分类器,通过监督学习来构造一个分类器来区分垃圾邮件和非垃圾邮件。为了应用监督学习,首先要想的就是:如何来表示邮件的特征向量x,通过特征向量x和分类标签y,我们就能训练一个分类器,比如使用逻辑回归的方法。这里有一种选择邮件的特征向量的方法:我们可以提出一个可能包含100个单词的列表,通过这些单词来区分垃圾邮件或非垃圾邮件。

7.1 误差分析

误差分析能帮助你更系统地在众多方法中做出选择。

如果你准备从事研发机器学习产品或开发机器学习应用。

  1. 通常来说,最好的方法不是建立一个很复杂的有许多复杂特征的系统,而是通过一个简单的算法来快速地实现它。
  2. 在1结束之后,就可以画出相应学习曲线,通过学习曲线以及检验误差来找出你的算法是否存在高偏差或者高方差的问题或者一些其他问题。在这些分析之后,再来决定是否使用更多的数据或者特征等等。
  3. 误差分析:当实现比如一个垃圾邮件分类器的时候,可以经常观察交叉验证集的情况,然后看一看那些被算法错误分类的文件,通过查看这些被错误分类的垃圾邮件和非垃圾邮件,看看这些经常被错误分类的邮件有什么共同特征和规律。经常做这个过程就会启发你应该设计怎样的新特征或是告诉你现在的系统有什么优点和缺点。

假设你在做一个垃圾邮件分类器,然后在你的交叉验证集中有500个样本,假如该例子中算法有很高的错误率,它错误分类了100个交叉验证样本。于是现在需要做的就是,手动核查这100个错误,然后手工为他们分类。同时要考虑清楚这些邮件是什么类型的邮件,有什么线索或者特征你觉得能帮助算法正确地进行分类。最后在改进学习算法时,另一个技巧是保证自己对学习算法有一种数值估计的方法。当改进算法的时候,如果你的算法能够返回一个数值评价指标来估计算法执行的效果,将会很有帮助。

例子:假如我们正在决定是否应该将discount disounts discounter discounting视为同一个单词,这样做的一种方法就是只看单词中的前几个英文字母。如果只看这些单词,就会发现这些单词大体上有着相似的意思。在自然语言处理中,就有这种方法叫做词干提取软件,porter stemmer,但这种方法有利也有弊,要看自己怎么选择。如果选择了这种方法,那么数值估计对这种方法的误差分析很有用。

7.2 不对称性分类的误差评估

有一个问题:使用一个合适的误差度量值,有时会对于你的学习算法造成非常微妙的影响,这就是偏斜类的问题。

假如说你有一个算法,它的精确度是99.2%,因此它只有0.8%的误差。然后你对你的算法做出了一点改动,现在是99.5%的精确度,0.5%误差。那我们的改动是有效的还是一个只输出y=1的函数都比你的模型准确?这里就引入了查准率和召回率。

假设我们正在用测试集来评估一个分类模型,对于每个测试中的样本都会等于0或1,我们的学习算法要做的就是做出值的预测并且学习算法会为每一个测试集中的实例做出预测,预测值也是等于0或1。

  • 查准率:预测得所有正例中实际是正例得比重
  • 召回率(查全率):实际真正例中预测正确的正例的比重

(Precision(查准率):预测为1中真正为1的概率;Recall(召回率):真正为1中预测为1的概率)

在有些时候,我们需要保证查准率和召回率的相对平衡,并且学习它们作为算法评估度量值的更有效的方式。(为什么逻辑回归有个0.5, 原来是先逻辑回归有个hx概率结果,再进行人为划分类。)

7.3 F_{1} Score 

通常如果阈值设置的比较高,那么对应的查准率高、召回率低;相反如果阈值设置的低,那么查准率低、召回率高。这么看来threshold也就是临界值比较重要,那有没有办法自动选取临界值?或者更广泛地说,如果我们有不同的算法或者不同的想法,我们如何比较不同的查准率和召回率?

这里使用的F_{1} Score,即调和平均数(倒数的平均数)来衡量。 

 F_{1} Score会比较照顾数值小的一方,如果PR都为0, F_{1} Score=0;如果PR都为1,F_{1} Score=1。

 7.4 机器学习数据

 这节讲的重点是数据和特征的关系,例如,你就算找一个房地产经纪人,只给他房子有多大,他也无法准确给出价格,所以学习算法也没有办法给出准确的价格。

  • 对数据的要求:要包含足够多的特征,不然白搭;
  • 对算法的要求:要包含足够的参数。

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

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

相关文章

(十六)数据编辑——图形编辑②

数据编辑——图形编辑② 目录 数据编辑——图形编辑②1.5线要素的延长和裁剪1.5.1线要素延长1.5.2线要素裁剪 1.6要素的变形与缩放1.6.1要素变形操作1.6.2要素缩放操作 1.7要素结点的编辑1.7.1添加结点1.7.2删除结点1.7.3移动结点 1.5线要素的延长和裁剪 单击编辑器下拉菜单&a…

【Nvidia Jetson Xavier NX/AGX/NANO】上用docker跑pytorch等cv推理应用

Nvidia Jetson Xavier NX/AGX docker WHY镜像地址使用方法docker常用命令备忘jtop安装关于保存容器镜像关于使用dockerfile构建关于映射外部路径让容器访问外部文件关于性能 WHY 在jetson上使用docker跑opencv和pytorch其实主要是要找对镜像,docker官方的hub里并没…

linux0.12-9-5-ramdisk.c

1、 需要配合其他代码一起看,才能有深刻的理解。 [432页] 9-5 ramdisk.c程序 9-5-1 功能描述 本文件是内存虚拟盘(Ram Disk)驱动程序,由Theodore Ts’o编制。虚拟盘设备是一种利用物理内存来模拟实际磁盘存储数据的方式。其目的主要是为了提高对&quo…

Conda 安装Pytorch

1、conda 切换虚拟环境 activate 虚拟环境名称 C:\Windows\System32>activate python310 温馨提示:查询虚拟环境列表 conda env list C:\Windows\System32>conda env list # conda environments: # base D:\anaconda3 python310 …

15-01通信安全

网络设备安全——防火墙 状态检测 应用级代理 防火墙实战 默认禁止:Ingress和Egress高安全域优先:允许高安全域发起请求规则具体:源地址(标签)、源端口,目标地址(标签)、目标端口、…

CSAPP复习(1)

分析方法只讲了amuda定理 Hello的一生 hello的执行过程 了解hello的执行过程 和响应的汇编器生成的可执行文件是.out不是.exe gcc -E hello.c -o hello.i//预处理 cpp hello.c>hello.i gcc -S hello.i -o hello.s//编译 gcc -C hello.s -o hello.o//汇编 二进制文件看不到…

【PDF软件篇】PDF轻量化电子笔记编辑利刃-Xodo软件优化

【PDF软件篇】PDF轻量化电子笔记编辑利刃-Xodo软件优化 默认配置已经够强,但是我还是推荐自定义,适合自己的就是最好的—【蘇小沐】 文章目录 【PDF软件篇】PDF轻量化电子笔记编辑利刃-Xodo软件优化1.实验环境 (一)日常办公导出无…

Redis使用lua脚本实现库存扣减

为什么使用Lua脚本为什么能合并多个原子操作? 这里参考官方文档地址:Scripting with Lua | Redis Redis 保证Lua脚本的原子执行。在执行脚本时,所有服务器活动在其整个运行期间都被阻止。这些语义意味着脚本的所有效果要么尚未发生&#xff…

矢量图形设计工具Affinity Designer 2.04版本在win10系统上的下载与安装配置教程

目录 前言一、Affinity Designer安装二、使用配置总结 前言 Affinity Designer 是一款由 Serif 公司开发的矢量图形设计工具,可用于创建各种类型的设计项目,例如图标、UI 设计、品牌标识、插图和其他类型的矢量图形。 Affinity Designer 工具的详细介绍…

JS解密入门案例:python有道JS解密,做一个简单的翻译程序

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 目录标题 前言本次使用知识点:开发环境:模块使用:思路流程:代码展示尾语 💝 本次使用知识点: 系统分析网页结构 动态数据抓包演示 json数据解析 JS解密 开发环境: Python 3.8 Pycha…

Java形参实参的使用

Java形参实参的使用 形参实参的介绍简单例子稍复杂例子String类 compareTo方法 形参实参的介绍 在JAVA中,形参和实参是非常常见的概念。形参是指在方法定义时声明的参数,用于描述方法需要接收的输入数据类型和变量名;而实参是指在方法调用时…

如何安装EasyRecovery14中文版数据恢复软件

好消息!听说数据恢复软件EasyRecovery有了新版本,想必大家在听到这个消息的时候都非常激动,都想看看这个新版本的神秘面纱吧。别着急,下面小编就来教大家使用EasyRecovery14快速恢复数据。 首先我们需要在电脑上下载并安装Ontrac…

​数据库原理及应用上机(实验二 SQL数据定义功能实验)

✨作者:命运之光 ✨专栏:数据库原理及应用上机实验 目录 ✨一、实验目的和要求 ✨二、实验内容与步骤 ✨三、附加练习 ✨四、实验总结 🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善&am…

Docker创建Springboot项目镜像文件

Docker创建Springboot项目镜像文件 本文章展示的是以Windows10系统为例进行操作 一.首先在Windows系统安装WSL(Windows系统的Linux子系统) //该命令能够直接在Windows系统安装wsl wsl --install //如果已经安装则可以进行update wsl --update二.安装Docker Desktop在本机电…

C调用Java代码 图文详解

环境搭建 1. android studio2021.2.1 2. JDK版本1.8 一、创建一个android项目 File ——> New ——> New Project ——> Empty Activity 创建后如下图所示 二、C调用java代码过程 2.1 写java类代码 创建一个java的JNI类,写触发C代码,让C…

有意思的各类算法,思维题目分享

1.统计子矩阵 思路:二维前缀和超时,下面是前缀和加双指针,对列前缀和,两个玄幻控制行号,双指针控制列的移动 考查:前缀和双指针 import os import sys# 请在此输入您的代码 # 矩阵大小 N M n,m,kmap(int,…

某大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

题目自取: 链接:https://pan.baidu.com/s/1HrMqh-lX-mkfueVeLzoEJg 提取码:oyel 介绍下这可恶的沙箱机制 这是一道非常让人蛋疼的题目,之前我只听说过沙箱,但是并没有自己实际接触过沙箱这个保护机制,大…

PX4从放弃到精通(二十八):垂起过渡控制

文章目录 前言一、主程序二、update_transition_state()三、update_transition_state() 前言 固件版本:1.14.0 可加名片交流学习 一、主程序 代码位置: 构造函数,用初始化列表进行初始化工作…

图可视分析

G6简介 AntVG6是一个基于WebGL的图形可视化引擎,它提供了一种简单、高效、灵活的方式来创建各种类型的图形,包括流程图、关系图、树形图、桑基图、饼图等等。它的主要思想是将图形分解为节点和边,并使用数据来描述它们之间的关系。 它的特性包…