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

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.hqwc.cn/news/100881.html

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

相关文章

AR眼镜: 与人并行的智能伙伴

AR眼镜: 与人并行的智能伙伴 增强现实(Augmented Reality,AR)眼镜是一种将虚拟信息与真实世界进行融合的设备,通过眼镜或头戴设备让用户能够看到真实世界,并在其上叠加数字内容和图像。目前工业级AR眼镜已…

vue表格不显示列号123456

我在网上找了半天,都是如何添加列号123456的,没有找到不显示列号的参考,现在把这个解决了,特此记录一下。 没有加右边的就会显示,加上右边的就隐藏了

基于SSM的教务管理

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 我们的系统是一个现代…

SpringMVC应用

文章目录 一、常用注解二、参数传递2.1 基础类型String2.2 复杂类型2.3 RequestParam2.4.路径传参 PathVariable2.4 Json数据传参 RequestBody2.5 RequestHeader 三、方法返回值3.1 void3.2 Stringmodel3.3 ModelAndView 一、常用注解 SpringMVC是一个基于Java的Web框架&#…

纯css制作常见的图形

1.正方形 <div class"square"></div> .square {width: 100px;height: 100px;background-color: #ffff00;} 效果&#xff1a; 2.长方形 <div class"rectangle"></div> .rectangle{width: 200px;height: 100px;background-color:…

第一天 关于项目遇到的问题和缺少的知识点

1.配置静态资源映射 配置文件使用的都是配置类方式 创建配置类WebMvcConfig,设置静态资源映射 用于在Springboot项目中, 默认静态资源的存放目录为 : "classpath:/resources/", "classpath:/static/", "classpath:/public/" ; 而在我们的项目中静…

PHP NBA球迷俱乐部系统Dreamweaver开发mysql数据库web结构php编程计算机网页

一、源码特点 PHP NBA球迷俱乐部系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 基于PHP的NBA球迷俱乐部 二、功能介绍 1、前台主要功能&#xff1a; 系统首页 网站介…

Kali Linux渗透测试技术介绍【文末送书】

文章目录 写在前面一、什么是Kali Linux二、渗透测试基础概述和方法论三、好书推荐1. 书籍简介2. 读者对象3. 随书资源 写作末尾 写在前面 对于企业网络安全建设工作的质量保障&#xff0c;业界普遍遵循PDCA&#xff08;计划&#xff08;Plan&#xff09;、实施&#xff08;Do…

借助CIFAR10模型结构理解卷积神经网络及Sequential的使用

CIFAR10模型搭建 CIFAR10模型结构 0. input : 332x32&#xff0c;3通道32x32的图片 --> 特征图(Feature maps) : 3232x32即经过32个35x5的卷积层&#xff0c;输出尺寸没有变化&#xff08;有x个特征图即有x个卷积核。卷积核的通道数与输入的通道数相等&#xff0c;即35x5&am…

SmartInspect Professional .Net Delphi Crack

SmartInspect Professional .Net & Delphi Crack SmartInspect Professional是一个用于调试和跟踪.NET、Java和Delphi软件的高级日志记录工具。它使您能够识别错误&#xff0c;找到客户问题的解决方案&#xff0c;并让您清楚地了解软件在不同环境和条件下的工作方式。可以轻…

提升效率:PostgreSQL准确且快速的数据对比方法

作为一款强大而广受欢迎的开源关系型数据库管理系统&#xff0c;PostgreSQL 在数据库领域拥有显著的市场份额。其出色的可扩展性、稳定性使其成为众多企业和项目的首选数据库。而在很多场景下&#xff08;开发|生产环境同步、备份恢复验证、数据迁移、数据合并等&#xff09;&a…

IMAU鸿蒙北向开发-2023年9月6日学习日志

1. TextArea 基本使用 //TextArea 基本使用 Entry Component struct Index {State message: string Hello Worldbuild() {Column() {TextArea({placeholder: "请输入个人介绍",text: "个人介绍控制在200字以内。"}).margin({top: 100}).caretColor(Color…