模型分析与偏差和方差

news2024/11/15 18:00:57

在创建一个机器学习系统,当我们的模型出现问题时,我们需要去找到最优的方式,能解决我们的问题,这时我们就需要会去诊断问题。

模型评估(Evaluating a model):

1.训练集和测试集判断:

我们一般把数据组的前70%,使用为我们的训练集,而我们的数据组的最后30%,一般被我们认为 是测试集。

我们可以看到得到的一个根据训练集画出的函数模型,对于训练集来说,误差会非常小,甚至等于0,而我们的测试集,则是我们并没有把我们的数据输入,所以它的误差会非常的大。这里用的是成本函数。

这时一个很好的方法,可以让我们判断我们的算法是否合适。

2.训练交叉验证测试集:

我们把我们的数据分为三个部分,训练集,交叉验证集(dev set),测试集三个部分。  

在我们的交叉验证集,去先测试我们的训练集训练得到的模型,这时我们的测试集也是我们之前没有使用的数据,我们更具交叉验证集验证得到的模型也会在测试集中测试也会非常的合适。

偏差与方差:

 以上这个图给我们介绍了三种情况,在次数不同时,对与训练集和我们的交叉验证集不同的偏差,很明显只有我们的d=2时,才可以完全的适应这个预测的函数,无论是Jtrain还是Jcv.

所以我们在上图中可以发现,当我们的多项式的次数增加时,我们的训练成本函数会不断的下降,而我们的交叉验证成本函数并不是这样的一个趋势,它会在我们从最小的次数到最大的次数中的一个次数,达到它的最小值。  

这是我们的算法需要注意的一个点,通过它我们可以知道是,偏差过大,还是方差过大。 

正则化:

 我们对于\lambda的取值,影响着我们对于拟合函数的影响,上图介绍了我们两个比较极端的情况,很大与很小。

这样我们就可以去根据尝试不同的\lambda的值,去得到我们最合适的权重,使得我们的Jcv最小。

这是\lambda与我们Jtrain和Jcv的关系,我们可以看到当我们的\lambda过大时,我们的Jtrain会很大,而我们的Jcv也会很大,这部分被我们叫做偏差过大,而在\lambda过小时,我们的Jtrain会偏小,而我们的Jcv还是偏大,这部分叫方差过大,也就是过拟合的情况。和之前的次数一样,我们需要找到一个中间值,才能找到一个合适的\lambda

基准值:

我们可以通过我们的基准值来判断我们的Jtrain和Jcv的大小,第一列中,训练误差远小于我们的交叉验证误差,所以第一个是过拟合(high variance),而第二个是我们的训练误差远大于我们的交叉验证误差,所以它是高偏差(high bias)。 

基准值是我们想要达到一个目标,它在不同的情况下,它的取值也并不一样。如果是0%,那你的要求就是完美,一般对于语音识别来说,会有10%的误差存在。

甚至会有两个误差都很大的情况出现。

学习曲线(learning curve):

 

第一个特点,在我们的交叉验证误差,会随着我们的训练项的变大而减小,但是我们会发现我们的训练误差会变大,因为我们的曲线需要去拟合更多的数据,这就会导致我们的训练误差变大。可以看我们的右边的图片。 但我们的交叉验证误差还是大于我们的训练误差。

第二个特点,随着训练集的数量上升,我们的Jcv和Jtrain会趋于平行,因为训练集越到后面,他们所处的位置与之前的都差不到,导致我们的平均误差也没有发生变化。

那当我们是高方差的情况下(过拟合):

随着我们的训练集的增加,我们会看到我们的Jcv大于我们的人类的水平,而我们的Jtrian会出乎意料的低于我们的人类水平,因为他们是过拟合的,并且他们与交叉验证误差的差值也很大,但是随着我们的训练集的不断增大,我们的两个误差也会不断的向人类的水平靠近。我们可以看一下我们右边的两个图,上面那个图是我们的过拟合的图,而下面的则是我们根据数量的增加,不断接近的一个合适的函数,而不是过拟合的函数。

这个方法的唯一缺点就是我们需要使用大量的数据,计算是非常昂贵的。

我们可以来对应一下解决高方差和高偏差的方法:

 可以好好想想为什么是这样。

下图是我们如何做到,我们的神经网络足够的适合,我们完成一个神经网络,我们会对我们的训练误差先进行分析,如果接近或等于0,我们就进行到交叉验证分析。如果训练误差较大,那我们就应该去给我们的神经网络增加更多的特征,也就是创建更大的神经网络,再进行我们的训练误差的检验。当我们来到计算交叉验证误差处,偏大则是我们需要更多的数据,并重新会到训练误差处,重新开始以上的操作,而当我们的交叉验证误差也很小时,这一个神经网络就是一个比较好的神经网络了。

当然我们要对我们的神经网络正则化,也需要在每个神经网络层上加入正则化。

from tensorflow.keras.regularizers import L2
model = Sequential([ 
    Dense(units=900, activation="relu", kernel_regularizer=L2(0.01)),
    Dense(units=500, activation="relu", kernel_regularizer=L2(0.01)),
    Dense(units=1, activation="linear", kernel_regularizer=L2(0.01))
])

这里的0.01指的是我们正则化的\lambda值。

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

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

相关文章

LeetCode - 寻找数组的中心

先学习一下前缀和吧 LCR 012.寻找数组的中心LCR 012. 代码解析 在读题读到左侧元素之和等于右侧所有元素之和的时候,我觉得可以用前缀和,然后结合下面的示例,模拟了一下发现确实可以。 我的想法是搞两个数组,一个来存从左到右数…

MySQL索引+常见问题详解

文章目录 字典的数据部分字典的索引部分数据页索引页MySQL单表最大数据容量2000万?MySQL为什么采用B树?聚簇索引 / 非聚簇索引回表 / 索引覆盖为什么建议自增主键索引下推 网络上的讲述MySQL索引的文章太多了,我打算换个角度来说。我们尝试着…

物奇平台超距断连无蓝牙广播问题解决方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 物奇平台超距断连无蓝牙广播问题解决方法 一 问题反馈 二解决方法: 1 运行流程分析 对应代…

八、软考-系统架构设计师笔记-系统质量属性和架构评估

1、软件系统质量属性 软件架构的定义 软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个构件,构件的外部可见属性及构件之间的相互关系。 软件架…

盘点2024年2月Sui生态发展,了解Sui近期成长历程!

2024年2月喜迎中国春节,Sui生态发布多条重要公告,生态建设积极推进。例如,Sui上TVL突破5亿美元跻身DeFi榜单前十名和最活跃链前五名;Ondo宣布将其原生稳定币USDY带入Sui生态;Sui与Thrive合作推出ThinkSui平台&#xff…

2024年品牌推广:构建品牌生态圈与注重品牌故事和文化传播

在全球经济深度融合、数字化浪潮汹涌澎湃的2024年,品牌推广的策略与模式正经历着前所未有的变革。在这一背景下,构建品牌生态圈和注重品牌故事与文化传播,成为了企业提升品牌竞争力和市场占有率的重要手段。 一、2024年市场经济分析与现状 …

安装YOLOv8

1.创建、激活虚拟环境 conda create --name yolov8 python conda activate yolov8 2.安装YOLOv8 pip install ultralytics 3.在官方网页中下载YoloV8的所有的代码、并且解压: 官方网页:https://github.com/ultralytics/ultralytics/ultralytics 4.进入…

聚道云软件连接器3月新增应用/产品更新合集

3月更新概要 新增应用: 应用1:华为云welink 应用2:易宝支付 应用3:励销云CRM 应用4:分贝通 应用5:灵当CRM 新增&更新功能 1、【流程】中增加流程树状管理 新增应用 应用1:华为云wel…

全面认识计算机操作系统(二)

目录 一、操作系统的诞生 相关概念: 1. 手工操作阶段 2. 脱机输入 / 输出阶段 (1)脱机输入技术 (2)脱机输出技术 3. 单道批处理阶段 4. 多道批处理阶段 5. 分时技术产生 6. 实时系统产生 二、现代操作系统的…

学校里的软件测试专业技能到底怎样,为什么应届生都很难找工作?

大家好,今天和以为在学校教软件测试的老师聊了天,主要聊的主题是-为什么现在大专生就业这么困难。主要总结以下几点! 一是受当下大环境的影响(比如疫情、俄乌、单边主义等);二是今年的应届生实在太多&…

客户案例|100M 768 维向量数据,Zilliz Cloud 稳定支持 Shulex VOC 业

日前,国际化 VOC SaaS 公司数里行间(Shulex)将上亿数据量的核心业务从开源向量数据库 Milvus 迁移至全托管的向量数据库云服务 Zilliz Cloud。 相比于 Milvus,Zilliz Cloud 实现了 Shulex VOC 评论分析洞察报告生成速度 30% 的提升…

伊芙丽签约实在智能,实在Agent数字员工助力品牌效能飙升

近日,国内知名时尚女装品牌伊芙丽与实在智能达成合作,引入业内领先的平台级自动化产品实在Agent数字员工——取数宝,自动获取天猫、淘宝、抖音等线上平台营销数据,开启全域化营销的“提效之旅”。 实在Agent智能体 伊芙丽集团成立…

2024年AI辅助研发趋势:AI辅助科技发展

目录 前言 一、AI辅助研发的技术进展 (一)深度学习在研发中的应用 (二)强化学习在研发中的应用 (三)生成模型在研发中的应用 (四)技术如何推动研发效率的提升 二、2024人工智…

谷歌浏览器如何使用词令官网直达快速打开微博官方网站?

谷歌浏览器如何使用词令官网直达快速打开官方网站? 1、电脑上打开谷歌浏览器,选择打开词令官网直达网站; 2、打开词令关键词口令直达网站; 3、输入网站名称或点击热门历史词令中的网站名称; 4、输入词令搜索直达进入微…

【好书推荐-第十一期】《Java面试八股文:高频面试题与求职攻略一本通(视频解说版)》(博文视点出品)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号:洲与AI。 🎈 本文专栏:本文收录…

如何利用AWS CloudFront 自定义设置SSL

Amazon CloudFront 提供三种选项,可以加速整个网站并从 CloudFront 的边缘站点通过安全的 HTTPS 方式交付内容。除能够安全地从边缘站点交付内容外,您还可以配置 CDN 来使用针对源提取的 HTTPS 连接,这样您的数据就会实现从源到最终用户的端到…

几种摩擦力模型

文章目录 1 摩擦力特性分析1.1 预滑动特性及摩擦滞回1.2 非局部记忆效应1.3 临界摩擦力1.4 低速爬行现象1.5 Stribeck 效应1.6 摩擦滞后特性1.7 法向与切向摩擦力的耦合2 摩擦力数学模型2.1 静态摩擦模型2.1.1 库伦+粘性摩擦模型2.1.2 Stribeck模型-指数型摩擦模型2.2 动态摩擦…

python学习28

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

【Ubuntu】原生Ubuntu-dock 栏 安装与卸载

1.查看是否安装 Ubuntu-dock(新版本的Ubuntu自带Ubuntu-dock version> 18.04) gnome-extensions list 2.安装Ubuntu-dock sudo apt install gnome-shell-extension-ubuntu-dock 3.重启,一定要重启!!!…

Jmter接口网站压力测试工具

首先下载Jmeter 官方地址:Apache JMeter - Apache JMeter™ 安装Jmeter 把下载的文件进行解压,产生如下目录: 打开bin文件夹下的jmeter.bat文件及进入程序的主界面窗体jmeter.log是日志文件。 主意:需要配置java环境。 jmter创…