[machine learning]误差分析,模型分析

news2025/1/14 1:09:26

1.目的是什么

当我们找到一个算法去计算某些东西的时候,我们通常要对这个算法进行一定的分析,比如时间复杂度,空间复杂度(前者更加重要),来进行比较,判断一个算法的优劣性.

对于一个训练的模型来说,同样需要某种模型来进行分析,例如代价函数等等,通过比较拟合程度,正确精度等信息来判断出这个模型的好坏,从而选择更好的模型

2.对于模型的评价

(1)测试集,训练集

对于一个数据集合来说,我们最长做的一件事就是把集合划分,一部分集合用来训练数据,而另一部分集合用来测试我们拟合的结果(其实就是让训练好的集合去预测没见过的数据,就能检测出我们模型的拟合效果)这是肥肠常用的一种方法

如上图所示,我们把前面70%的数据单独取出来.作为训练模型和用到的数据.而剩下的30%,则称之为验证集合.

和前面一样,我们通过最小化训练集合的代价函数,来让这个模型处于"最佳状态"

达到最佳状态以后,我们可以分别计算对于测试集合和训练集合的拟合效果,使用不用惩罚参数的代价函数来进行衡量(最小二乘error)

其中我们主要关注test error 的数值,这个一般反映了函数对于未曾见过的数据的预测效果

(2)交叉验证集合

有时候单独的一个测试集合效果可能不是很好,因为单一验证集合可能因为种种原因产生'过于乐观'的情况,即在验证集合上的效果可能会比实际应用会好很多.

为了避免这种情况,也为了验证能更加有效,在这两个集合的基础上,我们又划分出一些数据,称之为交叉验证集合(cross validation validation是验证的意思,这里也可以称之为cv)

使用交叉验证集合,让数据具有更多颗粒度和隔离性,尽量从多个角度去测试一个模型的效果 ,通俗点可以理解为:多测试几次

我们使用Jcv来实现对于交叉测试集合的状态评估

在下面我们会主要使用Jcv来统称所有的测试集合, 将训练集合和交叉验证集合进行配合,我们客体分析出一些情况.

 (3)偏差bias和方差variance

模型在有些时候效果不太理想,其原因可能是就是这两种

高偏差bias,指的是模型在训练数据上就表现得很差,相比于正常的表现(一般我们会存在某一个baseline performance,比如说真人去做的时候的代价函数,作为一个比较标准)Jtrain显得更高,这种时候一般是high bias 引起的情况

高方差variance, 指的是模型在训练数据上表现的太好了(这个太好了的意思指的是,模型在训练数据上完美契合,但是对于交叉验证的估计可能不是太好).常见的特征是Jcv > Jtrain

举个例子,在某个函数拟合时候效果可能是这样的

对于一个模型来说,不可能是二者兼顾的,我们需要在其中做出一些tradeOff(权衡) 一些因素可能会影响到bias和variance的变化,下面我会使用图片的形式作为展示内容.

模型函数的高次项阶数:degree of polynomial

其实从上面那张图就可以看出来,随着高次项阶数的增加,训练效果是一定会越变越好的

但是对于验证集合来说,初步的高次项拟合可以向着更好的拟合靠拢,但是一旦发生了过度拟合的情况,就会产生一些高方差,对于预测效果会更差

 也就是说,从这张曲线分析上,过低的多项式高次项可能导致高偏差

而过高的多项式高次项则会导致高方差

正规化参数 \lambda

正规化参数又叫惩罚参数penail parameter,具体的原理解释可以看前面的博客

惩罚参数起到的效果是让特定的某个权重分量wi在梯度下降的时候下降的更快,在一般的代价函数计算中,我们通常是对所有参数进行统一惩罚,让权重分布的更加均衡(全都接近0).

简而言之就是惩罚参数越大,w越均衡

但是惩罚参数过大的时候,产生的影响就是权重失效(全变成很接近0的数字了),最后你的模型只剩下bias了,这不就妥妥的high bias,并且与此同时,连喂给ai的训练数据都不怎么杨,更何况是测试数据,所以过高的惩罚参数同样会引发高方差问题

但是惩罚参数过小,对于权重的控制能力太多,高次项产生了高方差的影响.

所以随着惩罚参数的变化,我们可以有这个曲线

学习规模:

训练数据的规模同样是影响因素,这个可能和常规的认知有些偏差一哈

虽然大量的训练数据可以让模型更快地拿捏数据的走势,但是训练数据如果太多,在拟合方面肯定是无法好地照顾到所有的数据点

这就导致了,如果训练数据过多,会导致高偏差,但是会降低方差

(图片后续补充)

(4)处理方法

当我们通过曲线等等手段知道了问题出在高方差还是高偏差的时候,我们可以采用一些手段进行处理

高偏差的修正方法: high bias

1. 增加更多的特征值

2. 增加更高次项的特征值

3. 增加惩罚数值

高方差的处理方法: high variance

1. 增加更多训练数据

2. 减少多项式次数

3. 适当减少惩罚数值

此外,比较大型的神经网络系统也是一种降低方差的方法,只要在训练的时候用了比较合适的惩罚参数

2.对于训练误差的处理

对于一些特别的数据和情况,我们需要进行一个专门化的处理,在后面会提到强化学习这一特点

(1)专门化数据处理

对于一些特殊的情况,模型的识别可能不是那么理想,例如对于识别数字,发现对于数字9的识别效果不好,那么训练数据中就可以增加一些9有关的数字,来专门增强对于某个他特征学习效果不理想的情况

(2)数据添加

训练数据需要重新生成的时候,一般有两种方法,第一种是数据修改,通过对原有数据的一些修改,比如图像的旋转,失真操作(distort),生成新的数据

第二种方式是数据生成,使用人工生成的数据来组合成新的训练集合

(3)迁移学习

迁移学习的意思为将一个模型的计算结果作为另一个模型的输入

(关于这个板块主要是理解一下概念即可,后续有机会仍然会继续补充

3.precision,recall (精度和召回率)

cv代价函数是一种很常用的,衡量模型的方式,但是这种方式仍然只是其中的一种

比较算法的优劣性,我们可以使用另一种量化的评价方法,precision and recall

这种方法经常用于神经网络的识别操作中,我们举个例子,这其中1是我们想要监听的类的展示

其中精度就是所有检测值中的正确率

召回率是所有正确样本中检测到了多少

这两个东西需要一个平衡,所以存在F1 score衡量两个指标

F1score=\frac{1}{2}(\frac{1}{precision}+\frac{1}{recall})

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

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

相关文章

如何安装ideaIU-2020.3.3并使用无限重置插件达到永久使用

第一步、双击安装idea程序 第二步、选中64位与更新环境变量 第三步、安装完成后双击打开 1、选中 Evaluate for free – Evaluate 进入试用期 第四步、打开后选择Plugins – 设置 1、安装来自磁盘 Install Plugin from Disk 第五步、选中我们的无限重置插件,安装 …

Golang RSA 生成密钥、加密、解密、签名与验签

文章目录 1.RSA2.Golang 实现 RSA生成密钥加密解密签名验签 3.dablelv/cyan参考文献 1.RSA RSA 是最常用的非对称加密算法,由 Ron Rivest、Adi Shamir、Leonard Adleman 于1977 年在麻省理工学院工作时提出,RSA 是三者姓氏首字母的拼接。 它的基本原理…

Vue2基础速通

文章目录 Vue基础速通前言1、Vue概述2、快速入门3、模板语法4、数据绑定5、el和data的两种写法6、数据代理7、事件处理7.1 快速入门7.2 事件修饰7.3 键盘事件 8、计算属性9、监视属性9.2 快速入门9.2 深度监视9.3 知识拓展 10、动态绑定样式11、条件渲染12、列表渲染13、key的作…

【算法训练-链表 三】【判断】判断链表中是否有环、判断链表是否为回文链表

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【链表的相关判断】,使用【链表】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为…

【HTML5高级第二篇】WebWorker多线程、EventSource事件推送、History历史操作

文章目录 一、多线程1.1 概述1.2 体会多线程1.3 多线程中数据传递和接收 二、事件推送2.1 概述2.2 onmessage 事件 三、history 一、多线程 1.1 概述 前端JS默认按照单线程去执行,一段时间内只能执行一件事情。举个栗子:比方说古代攻城游戏&#xff0c…

animate.css与vue中的v-if/v-show如何一起使用

第一步:在已有的vue项目中安装animate.css npm install animate.css --save第二步:在 main.js 引入 import animate.css第三步:如果在vue中使用了v-if 或者v-show 的话就不能直接在元素上加入animate的class。我们应该在v-if/v-show的元素外层添加tran…

微服务整合Seata1.5.2+Nacos2.2.1+SpringBoot

文章目录 一、下载seata server二、客户端配置-application.yml三、初始Mysql数据库四、导入初始配置到nacos五、启动测试 本文以seata-server-1.5.2,以配置中心、注册中心使用Nacos,store.modedb(mysql)为例进行操作。 Seata简介…

vue-cli3项目本地启用https,并用mkcert生成证书

在项目根目录下的vue.config.js文件中: // vue.config.js module.exports {devServer: {host:dev.nm.cngc// 此处开启 https,并加载本地证书(否则浏览器左上角会提示不安全)https: {cert: fs.readFileSync(path.join(_dirname,./cert.crt)…

Linux查端口占用的几种方式

在Linux中,你可以使用以下几种方式来查看端口的占用情况。 一、使用netstat命令 #安装netstat yum -y install net-tools #检测端口占用 netstat -npl | grep 端口# 几种常规用法 netstat -ntlp //查看当前所有tcp端口 netstat -ntulp | grep 80 //查看所有80端…

科技成果鉴定测试报告一般包含哪些测试内容?

软件测评报告 一、科技成果评价是需要做第三方软件测评报告,一般是证明技术指标点是否完善,覆盖主要申报内容,应用软件项目科技成果鉴定测试内容: (一)是否完成合同或计划任务书要求的指标; …

Chaes恶意软件的新Python变种以银行和物流业为目标

银行和物流行业正遭受一种名为 "Chaes "恶意软件变种的攻击。 Morphisec 在与《黑客新闻》分享的一份新的详细技术报告中说:“Chaes”经历了重大的改版,从完全用 Python 重写,到整体重新设计和增强通信协议,导致传统防…

upload-labs1-21关文件上传通关手册

upload-labs文件上传漏洞靶场 目录 upload-labs文件上传漏洞靶场第一关pass-01:第二关Pass-02第三关pass-03:第四关pass-04:第五关pass-05:第六关pass-06:第七关Pass-07第八关Pass-08第九关Pass-09第十关Pass-10第十一…

TikTok运营秘籍:助力品牌增长

在数字化时代,TikTok已成为品牌推广的热门渠道。本文将分享关于TikTok运营的关键策略和技巧,助您快速引爆品牌增长。 一.了解TikTok特点与用户群体 理解TikTok平台的特点和用户群体是成功运营的基础。TikTok以短视频为主,追求创意、趣味和娱…

怎么做手机App测试?app测试详细流程和方法介绍

APP测试 1、手机APP测试怎么做? 手机APP测试,主要针对的是android和ios两大主流操作系统,主要考虑的就是功能性、兼容性、稳定性、易用性(也就是人机交互)、性能。 手机APP测试前的准备: 1.使用同类型的…

【AI】机器学习——朴素贝叶斯

文章目录 2.1 贝叶斯定理2.1.1 贝叶斯公式推导条件概率变式 贝叶斯公式 2.1.2 贝叶斯定理2.1.3 贝叶斯决策基本思想 2.2 朴素贝叶斯2.2.1 朴素贝叶斯分类器思想2.2.2 条件独立性对似然概率计算的影响2.2.3 基本方法2.2.4 模型后验概率最大化损失函数期望风险最小化策略 2.2.5 朴…

网络技术六:TCP/UDP原理

TCP/UDP原理 命令行操作基础 命令类型 常见设备管理命令 H3C路由交换产品连接方法 使用console线本地连接 协议Serial,接口com口,波特率9600 适用于设备的初次调试 使用Telnet远程访问 适用于设备上架配置好后的维护管理 使用SSH远程访问 数据传输…

【Hive SQL 每日一题】统计用户连续下单的日期区间

文章目录 测试数据需求说明需求实现 测试数据 create table test(user_id string,order_date string);INSERT INTO test(user_id, order_date) VALUES(101, 2021-09-21),(101, 2021-09-22),(101, 2021-09-23),(101, 2021-09-27),(101, 2021-09-28),(101, 2021-09-29),(101, 20…

【Java SE】抽象类与接口

目录 【1】抽象类 【1.1】抽象类概念 【1.2】抽象类语法 【1.3】抽象类特性 【1.4】抽象类的作用 【2】接口 【2.1】接口的概念 【2.2】语法规则 【2.3】接口使用 【2.4】接口特性 【2.5】实现多个接口 【2.6】接口间的继承 【2.7】接口使用实例 【2.8】Clonable …

React + ASP.NET Core 项目笔记一:项目环境搭建(一)

不重要的目录标题 前提条件第一步:新建文件夹第二步:使用VS/ VS code/cmd 打开该文件夹第三步:安装依赖第四步:试运行react第五步:整理项目结构 前提条件 安装dotnet core sdk 安装Node.js npm 第一步:新…

亚马逊云科技人工智能内容审核服务:大大降低生成不安全内容的风险

生成式人工智能技术发展日新月异,现在已经能够根据文本输入生成文本和图像。Stable Diffusion是一种文本转图像模型,可以创建栩栩如生的图像应用。通过Amazon SageMaker JumpStart,使用Stable Diffusion模型轻松地从文本生成图像。 尽管生成式…