《白话机器学习的数学》第4章——评估

4.1模型评估

        1.由于像多重回归这样的问题会导致无法在图上展示,所以需要能够够定量地表示机器学习模型的精度。

4.2交叉验证

4.2.1回归问题的验证

        1.把获取的全部训练数据分成两份:一份用于测试,一份用于训练。然后用前者来评估模型。

        一般来说,比起 5 : 5,大多数情况会采用 3 : 7 或者 2 : 8 这种训练数据更多的比例。不过倒也没有特别规定必须要这样。

        2.模型评估就是检查训练好的模型对测试数据的拟合情况。

        3.对于回归的情况,只要在训练好的模型上计算测试数据的误差的平方,再取其平均值就可以了。假设测试数据有 n 个,那么可以这样计算。

                                      

        这个值被称为均方误差或者 MSE,全称 Mean Square Error 。这个误差越小,精度就越高,模型也就越好。

4.2.2分类问题的验证

        1.假设分类结果为正的情况是 Positive、为负的情况是 Negative。分类成功为 True、分类失败为 False。

        下列表达式表示的是在整个数据集中,被正确分类的数据 TP 和 TN 所占 的比例。

                   

        用测试数据来计算这个值,值越高精度越高,也就意味着模型越好。

4.2.3精确率和召回率

        1.假设图中的圆点是 Positive 数据、叉号是 Negative 数据,我们来考虑一下数据量极其不平衡的情况。 

                           

        假设有 100 个数据,其中 95 个是 Negative。那么,哪怕出现模型把数据全部分类为 Negative 的极端情况,Accuracy 值也为 0.95, 也就是说模型的精度是 95%。

        既然 Positive 相对少很多,那么即使模型把数据全 部分类为 Negative,它的精度也会很高。

        2.所以需要引入新的指标,第一个指标——精确率。

                               

                             

        它的含义是在被分类为 Positive 的数据中,实际就是 Positive 的数据所占的比例。

        这个值越高,说明分类错误越少。拿这个例子来说,虽然被分类为 Positive 的数据有 3 个,但其中只有 1 个是分类正确的。所以计算得出的精确率很低。

        3. 还有一个指标——召回率。

                                     

                           

         它的含义是在 Positive 数据中,实际被分类为 Positive 的数据所占的比例。

        这个值越高,说明被正确分类的数据越多。拿这个例子来说,虽然 Positive 数据共有 5 个,但只有 1 个被分类为 Positive。所以计算得出的召回率也很低。

        4. 一般来说,精确率和召回率会一个高一个低,需要我们取舍。

 4.2.4F值

         1.精确率和召回率只要有一个低,就会拉低 F 值。

                       

        Precision 是前面说的精确率,Recall 是召回率。

        有时称 F 值为 F1 值会更准确。

        F1 值在数学上是精确率和召回率的调和平均值。

        2. 除 F1 值之外,还有一个带权重的 F 值指标。

         

        β 指的是权重。可以认为 F 值指的是带权重的 F 值,当权重为 1 时才是刚才介绍的 F1 值

        3.当数据不平衡时,使用数量少的那个为主来计算精确率和召回率会更好。例如刚刚是TP比较少,所以以TP为主来计算。

        4.把全部训练数据分为测试数据和训练数据的做法称为交叉验证。

        5.交叉验证的方法中,尤为有名的是 K 折交叉验证,掌握这种方法很有好处。

        把全部训练数据分为 K 份

        将K − 1 份数据用作训练数据,剩下的 1 份用作测试数据 

        每次更换训练数据和测试数据,重复进行 K 次交叉验证

        最后计算 K 个精度的平均值,把它作为最终的精度

        假设要进行 4 折交叉验证。

             

        6. 不切实际地增加 K 值会非常耗费时间,所以我们必须要确定一个合适的 K 值。

4.3正则化

4.3.1过拟合 

         1.模型只能拟合训练数据的状态被称为过拟合。在回归时,过度增加函数 fθ(x)的次数会导 致过拟合。

        2.有几种方法可以避免过拟合。

        增加全部训练数据的数量

        使用简单的模型

        正则化

 4.3.2正则化的方法

        1.我们要向目标函数增加下面这样的正则化项。

                                                       

              

        我们要对这个新的目标函数进行最小化,这种方法就称为正则化。

        m 是参数的个数。

         2.θ0 这种只有参数的项称为偏置项,一般不对它进行正则化。

        3.λ 是决定正则化项影响程度的正的常数。

4.3.3正则化的效果

        1.首先把目标函数分成两个部分。

                     

        C(θ) 是本来就有的目标函数项,R(θ) 是正则化项。

        2.假设C(θ)和R(θ)的图像如下:

                  

                 

        与加正则化项之前相比,θ1 更接近 0 了。这就是正则化的效果。它可以防止参数变得过大,有助于参数接近较小的值。虽然我们只考虑了 θ1,但其他 θj 参数的情况也是类似的。

        参数的值变小,意味着该参数的影响也会相应地变小。

        正是通过减小不需要的参数的影响,将复杂模型替换为简单模型来防止过拟合的方式。

         3.λ是可以控制正则化惩罚的强度。 

                                   

        反过来 λ 越大,正则化的惩罚也就越严厉。

        ​​​​​​                          ​

4.3.4分类的正则化

        1.分类也可以应用正则化。

        对数似然函数本来以最大化为目标。但是,这次我想让它变成和回归的目标函数一样的最小化问题,所以在原来的目标函数上加了负号。

        反转了符号之后,在更新参数时就要像回归一样,与微分的函数的符号反方向移动才行。

 4.3.5包含正则化项的表达式的微分

        1.新的目标函数的形式:

                                           

                                  

                         

                                                      

        最终的微分结果:

                

        参数更新表达式:

           

         2.之 前说过一般不对 θ0 应用正则化。R(θ) 对 θ0 微分的结果为 0,所以 j = 0 时表达式 4.3.14 中的 λθj 就消失了。因此,实际上需要像这样区分两种情况。

      

        3.对于逻辑回归的流程也是一样的:

                                                     

                                        

         参数更新表达式:

             

        这种方法被称为L2正则化。

         4.除 L2 正则化方法之外,还有 L1 正则化方法。它的正则化项 R 是这样的。

                                              

        5.L1 正则化的特征是被判定为不需要的参数会变为 0,从而减少变量个数。而 L2 正则化不会把参数变为 0。

        6.L2 正则化会抑制参数,使变量的影响不会过大,而 L1 会直接去除不要的变量。

4.4学习曲线

4.4.1欠拟合

        1.欠拟合是与过拟合相反的状态,所以它是没有拟合训练数据的状态。

        比如用直线对图中这种拥有复杂边界线的数据进行分类的情况,无论怎样做都不能很好地分类,最终的精度会很差。

                              

4.4.2区分过拟合和欠拟合

        1.如果模型过于简单,那么随着数据量的增加,误差也会一点点变大。换句话说就是精度会一点点下降。

        2.训练数据较少时训练好的模型难以预测未知的数据,所以精度很低;反过来说,训练数据变多时,预测精度就会一点点地变高。

                           

        3.将两份数据的精度用图来展示后,如果是这种形状,就说明出现了欠拟合的状态。也有一种说法叫作高偏差。

                   

        这是一种即使增加数据的数量,无论是使用训练数据还是测试数据,精度也都会很差的状态

        4.而在过拟合的情况下,图是这样的。这也叫作高方差。

                       

        随着数据量的增加,使用训练数据时的精度一直很高,而使用测试数据时的精度一直没有上升到它的水准。

        5.展示了数据数量和精度的图称为学习曲线。

        通过学习曲线判断出是过拟合还是欠拟合之后,就可以采取相应的对策以便改进模型了。

 

 

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

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

相关文章

C# 数组常用遍历方式

// 假设数组Point[] points new Point[2];// 第一种遍历 forfor (int i 0; i < points.Length; i){Point p points[i];Console.WriteLine($"X{p.X},y{p.Y}");}// 第二种遍历 foreachforeach (Point p in points){Console.WriteLine($"X{p.X},y{p.Y}"…

TCP三次握手和四次挥手的理解

三次握手 第一次握手&#xff1a; 客户端发出 请求报文其中SYN应1&#xff0c;选择一个序列号x 第二次握手&#xff1a; 服务端接收到之后回复 确认报文&#xff0c;其中SYN应1&#xff0c;ACK1&#xff0c;确认号是x1&#xff0c;同时为自己初始化序列号y 第三次握手&…

Hadoop架构

一、案列分析 1.1案例概述 现在已经进入了大数据(Big Data)时代&#xff0c;数以万计用户的互联网服务时时刻刻都在产生大量的交互&#xff0c;要处理的数据量实在是太大了&#xff0c;以传统的数据库技术等其他手段根本无法应对数据处理的实时性、有效性的需求。HDFS顺应时代…

Linux(CentOS)的“应用商城” —— yum

Linux&#xff08;CentOS&#xff09;的“应用商城” —— yum 关于 yum 和软件包Linux 系统&#xff08;CentOS&#xff09;的生态yum 相关操作yum 本地配置yum 安装 lrzsz.x86_64 关于 yum 和软件包 首先 yum 是软件下载安装管理的客户端&#xff0c;类似各种手机里的“应用…

WEB前端10- Fetch API(同步/异步/跨域处理)

Fetch API Fetch API 可以用来获取远程数据&#xff0c;用于在 Web 应用程序中发起和处理 HTTP 请求。它基于 Promise&#xff0c;提供了一种简单而强大的方式来处理网络通信&#xff0c;替代了传统的 XMLHttpRequest。 Promise对象 Promise 对象是 JavaScript 中处理异步操…

0723,UDP通信(聪明小辉聪明小辉),HTTP协议

我就是一个爱屋及乌的人&#xff01;&#xff01;&#xff01;&#xff01; #include "network_disk_kai.h" 昨天的epoll&#xff1a; 可恶抄错代码了 epoll_s.csockect return listenfdsetsockoptsockaddr_in bind listenfd & serveraddr…

Ubuntu 中默认的 root 用户密码

场景&#xff1a;想要切换root用户&#xff0c;发现得输入密码&#xff0c;以为是以前设置过然后一直尝试都是错误【认证失败】最后发现根本没设置过root用户&#xff0c;默认会随机生成root用户的密码&#x1f605; Ubuntu 中默认的 root 密码是随机的&#xff0c;即每次开机都…

用51单片机或者stm32能否开发机器人呢?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;能的。但是由于单片机和st…

MATLAB练习题——矩阵(2)

逻辑运算 a [5 0.2 0 -8 -0.7 ]&#xff0c;在进行逻辑运算时&#xff0c;a 相当于什么样的逻辑量。 相当于 a[1 1 0 1 1] 角度运算 在 sin(x)运算中&#xff0c;x 是角度还是弧度&#xff1f; 在 sin(x)运算中&#xff0c;x 是弧度&#xff0c;MATLAB 规定所有…

盘点2024年大家都在使用的AI智能写作工具

在科技发达的现在社会&#xff0c;AI已经悄悄的渗入我们生活的各种角落。不知道你有没有尝试过用ai智能写作来完成一些文章创作呢&#xff1f;这次我介绍几个可以提升效率的ai智能写作工具给你试试吧。 1.笔&#xff5c;灵AI写作 CSDN 传送门&#xff1a;https://ibiling.cn…

OpenAI发布GPT-4 Mini的深度分析及中国大模型的弯道超车机会

引言 在OpenAI封禁中国IP访问其API后&#xff0c;紧接着推出了GPT-4 Mini&#xff0c;这是一个引发广泛关注和讨论的新举措。此举不仅让人们质疑OpenAI的战略方向&#xff0c;更引发了对中国大模型是否能弯道超车的讨论。本文将详细分析GPT-4 Mini的特点、市场影响及中国大模型…

谷粒商城实战笔记-50-51-商品分类的删除

文章目录 一&#xff0c;50-商品服务-API-三级分类-删除-逻辑删除1&#xff0c;逻辑删除的配置1.1 配置全局的逻辑删除规则&#xff08;可省略&#xff09;1.2 配置逻辑删除Bean&#xff08;可省略&#xff09;1.3 Bean相应字段上加上注解TableLogic 2&#xff0c;后台接口开发…

分享:大数据信用报告查询平台哪个好?

大数据信用也就是我们常说的大数据&#xff0c;相信很多朋友对这个词都不陌生&#xff0c;特别是在银行申贷的时候&#xff0c;听过比较多&#xff0c;因为在银行做信用贷款的时候都会审查申贷人的大数据信用&#xff0c;贷前提前了解自己的大数据很有必要&#xff0c;那大数据…

基于Java+SpringMvc+Vue技术的慈善捐赠平台设计与实现(源码+LW+部署讲解)

项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑&#xff01; 软件开发环境及开发工具&#xff1a; 操作系统&#xff1a;Windows 10、Windows 7、Windows 8 开发语言&#xff1a;java 前端技术&#xff1a;JavaScript、VUE.j…

列举excel中调整行高列宽的五种方法

列举excel中调整行高列宽的五种方法 在Excel中调整行高列宽的方法有以下五种&#xff1a; 使用鼠标手动调整行高列宽&#xff1a;将鼠标悬停在行或列的边界上&#xff0c;光标会变成双向箭头&#xff0c;此时按住鼠标左键并拖动边界即可调整行高或列宽。 使用快捷键调整行高列…

工具(linux)

Yum 软件包管理器 介绍 yum Yum 是一个在 Red Hat 和 CentOS 等 Linux 发行版中常用的软件包管理器&#xff0c;它可以方便地进行软件包的安装、更新和删除。 安装软件包 使用 yum install 命令可以安装指定的软件包&#xff0c;例如&#xff1a; yum install package_nam…

“论软件测试中缺陷管理及其应用”写作框架,软考高级论文,系统架构设计师论文

原创范文 软件缺陷指的是计算机软件或程序中存在的某种破坏正常运行能力的问题、错误&#xff0c;或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。在目前的软件开发过程中&#xff0c;缺陷是不可避免的。软件测试是发现缺陷的主要手段&#xf…

【北航主办丨本届SPIE独立出版丨已确认ISSN号】第三届智能机械与人机交互技术学术会议(IHCIT 2024,7月27)

由北京航空航天大学指导&#xff0c;北京航空航天大学自动化科学与电气工程学院主办&#xff0c;AEIC学术交流中心承办的第三届智能机械与人机交互技术学术会议&#xff08;IHCIT 2024&#xff09;将定于2024年7月27日于中国杭州召开。 大会面向基础与前沿、学科与产业&#xf…

路由表与IP数据报转发:基础小白指南

目录 1. 路由表的基本概念 2. 路由表中的默认路由 3. IP数据报的转发流程 4. 路由聚合 5. 最长前缀匹配 总结 在网络世界中&#xff0c;IP数据报的转发是如何进行的&#xff1f; 这篇文章将带你深入了解路由表的基本概念和IP数据报的转发流程。我们会用简洁明了的语言和实…

nodejs启动项目报错 Error: listen EACCES: permission denied 0.0.0.0:5000

nodejs启动项目报错 Error: listen EACCES: permission denied 0.0.0.0:5000&#xff0c;截图如下&#xff1a; 解决方法 在管理员权限下打开 CMD&#xff08;命令行&#xff09;并运行&#xff1a; net stop winnatnet start winnat 执行完成后在此通过nodejs启动项目即可…