第三章-模型性能评估-程序员宅基地

技术标签: 机器学习  

模型性能评估

留出法

模型性能评估主要是对模型泛化误差进行评估,需要用测试集来测试模型对新样本的判别能力,然后推测误差作为泛化误差的近似。
验证集:验证集一般用于进一步确定模型中的超参数(例如正则项系数、神经网络中隐层的节点个数,k值等)验证集与测试集有什么区别?
在这里插入图片描述
在这里插入图片描述

交叉验证法

将数据集分成k个大小相等的互斥子集,取k-1个子集并集作为训练集,1个作为测试集。如图是十次十折交叉验证,每次的训练集和测试集都不同,然后取十次测试结果的平均作为最后结果。
在这里插入图片描述

自助法

自助法的过程:
1、抽取一个样本值,记录后放回到原总体中。
2、重复n次这样的抽样;
3、根据这n次抽样记录的值,计算此批抽样的感兴趣统计参数。
4、重复步骤1-3 r次。
5、计算r次感兴趣统计参数的标准误差,生成直方图,找到置信区间。
自助法的原理

在这里插入图片描述
自助法适用于数据集小、难以划分的情况,比较适合集成学习。但是产生的训练集改变了初始数据集的分布,会引入估计偏差。

性能度量

不同任务的性能度量不同,回归任务用均方误差。分类时用错误率和精度,
在这里插入图片描述
在这里插入图片描述
但是错误率和精度不能满足所有的需要,这时会用到准确率(查准率)和召回率(查全率)。
在这里插入图片描述

PR曲线

PR曲线-反映了分类器对正例的覆盖能力。
根据学习器的预测结果,将所有样例进行排序,从最可能是正例的样本到最不可能是正例的样本排序,按此顺序逐个将样本作为正例进行预测,每次就可以计算出当前的查全率和查准率。以查准率为纵轴,查全率为横轴作图,就得到了查准率查全率曲线-PR曲线。
在比较时,若一个学习器的PR曲线被另外一个学习器的PR曲线完全包住,那么就认为后者的学习性能优于前者。
图中红色的点,是平衡点,即查准率=查全率的点,也可以作为性能度量,但是有点简化。
在这里插入图片描述
在这里插入图片描述
一般会用F1度量,但是查全率和查准率在不同的任务中的侧重不一样,所以出现了Fβ度量,其中β是查全率和查准率的相对重要性。β=1时,就退化为F1度量。
在这里插入图片描述
在多个二分类混淆矩阵中,用宏/微两个方面来度量。
在这里插入图片描述

ROC曲线和AUC

ROC曲线:绘制类似PR曲线,也是对预测结果进行排序,然后将分类阈值先设为最大一直到最小。ROC曲线,AUC值,PR曲线,AP值

(1)主要作用

  1. ROC曲线能很容易的查出任意阈值对学习器的泛化性能影响。
    2.有助于选择最佳的阈值。ROC曲线越靠近左上角,模型的查全率就越高。最靠近左上角的ROC曲线上的点是分类错误最少的最好阈值,其假正例和假反例总数最少。
    3.可以对不同的学习器比较性能。将各个学习器的ROC曲线绘制到同一坐标中,直观地鉴别优劣,靠近左上角的ROC曲所代表的学习器准确性最高。

AUC是ROC曲线下方的面积,是衡量学习器优劣的一种性能指标。

如果两条ROC曲线没有相交,我们可以根据哪条曲线最靠近左上角哪条曲线代表的学习器性能就最好。但是,实际任务中,情况很复杂,如果两条ROC曲线发生了交叉,则很难一般性地断言谁优谁劣。在很多实际应用中,我们往往希望把学习器性能分出个高低来。在此引入AUC面积。

在这里插入图片描述
在这里插入图片描述
下图右图是实际有限样例的ROC曲线和AUC,
在这里插入图片描述

既然已经这么多标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。

代价敏感错误率

前面的性能评估都是默认在“均等代价”的条件下,但是现实中不同类型的错误所造成的后果不同。以二分类为例,我们根据任务的领域知识,设定一个代价矩阵。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在非均等代价的条件下,ROC曲线不能直接的反映出学习器的期望的总体代价,而代价曲线可以。
在这里插入图片描述
ROC曲线上的每一点对应代价平面上的每一条线段,把ROC曲线上每个点都转换成代价曲线的线段,每条线段取下界,在围起来的面积,就是期望总体代价。模型评估与选择(后篇)-代价曲线
原论文-建议看
知乎里面优秀解释
在这里插入图片描述

假设检验

问题:我们能不能根据以上的性能评估方法获得的性能度量直接“比大小”呢?
回答:不能
原因:

  • 我们希望比较的是泛化性能,而实验室评估的是测试性能。
  • 测试集的性能和测试集的选择有关,测试集的样例不同,结果就会不同。
  • 机器学习算法本身就具有随机性,即使是相同的参数,相同的数据集,结果也会不同。
    所以就要借助统计假设检验的技术:在测试集上观察到的学习器A比B好,则A的泛化性能是否在统计意思上优于B,以及这个结论的把握有多大。具体方法有以下三种方法。
    在这里插入图片描述
    t检验
    在这里插入图片描述

偏差和方差

偏差和方差分解,是解释学习算法泛化性能的重要工具。
泛化误差可以分解为偏差、方差、噪声之和。
偏差-刻画了学习算法本身的你喝能力。
方差-刻画了数据扰动所造成的影响。
噪声-刻画了学习任务本身的难度。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/erdaidai/article/details/105149682

智能推荐

北大计算机博士蔡华谦,信科师生在北京大学国球联赛再次折桂-程序员宅基地

文章浏览阅读611次。北京大学国球联赛是北大师生均可参加的全校范围的乒乓球团体赛事,于5月的每周五晚上在邱德拔乒乓球厅分轮次举办。信科师生有着优秀的国球文化氛围。继今年4月夺得北大杯和硕博杯双冠后,信科师生乒乓球队5月再次出征2021年北京大学国球联赛,并最终成功卫冕,在本学期内豪取三连冠。方藤(中)与黄子蔚(右)正在对刘力锋教授(左)进行局间场外指导小组赛中,信科的对手有叉院城环联队、乒协联队等强强联合的劲敌。在连续..._北大蔡华谦

剑指offer 替换空格 C语言-程序员宅基地

文章浏览阅读395次,点赞5次,收藏8次。解析:这个题他给了很多方法,但是我还是更倾向于大部分人能想到的那种,就是从头往后依次找空格,找到一个就把它换成%20,那么就是把它当成数组,但是记得要提前遍历一遍,把那个空格需要的空间提前申请上,然后再进行for循环替换。数据范围:0≤���(�)≤1000 0≤len(s)≤1000。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。请实现一个函数,将一个字符串s中的每个空格替换成“%20”。

U9300C 在Linux下的调试_h600/n501hs zte mf330 拨号-程序员宅基地

文章浏览阅读4k次。硬件:A83T1.驱动加入VID和PID--- a/lichee/linux-3.4/drivers/usb/serial/option.c+++ b/lichee/linux-3.4/drivers/usb/serial/option.c@@ -948,6 +948,7 @@ static const struct usb_device_id option_ids[] = {..._h600/n501hs zte mf330 拨号

在执行hdfs文件操作的时候抛异常 winutils问题的解决_hdfs did not find winutils-程序员宅基地

文章浏览阅读373次。在执行hdfs文件操作的时候抛异常 winutils问题的解决:该问题出现的地方是在对hdfs文件进行操作时,出现的原因是因为我将 hadoop安装在了虚拟机上,所以产生了该问题但该问题并不影响对hdfs文件的一些操作(比如下载hdfs文件到本地).解决方法:配置HADOOP_HOME, 我的电脑 ---->属性 ------> 高级系统配置新建中变量名为..._hdfs did not find winutils

计算机组织结构 第一章重要练习题详解_某台主频为400mhz的计算机执行标准测试程序-程序员宅基地

文章浏览阅读2.7k次,点赞7次,收藏30次。考查:主频的含义,CPI,MIPS,程序执行时间的关系和表达式题目1: 某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时 钟周期数如下:求该计算机的有效CPI、MIPS和程序执行时间。解:这是求CPI(每条指令所耗费的时钟周期)和MIPS(每秒执行的多少百万条指令数量)综合以上多项比较,我们应该使用加权求法:(权重如下)整数 35%数据传送 58%浮点 6%分支 1%主频:每秒=400M个时钟周期M=106M=10^6M=106CPI=35._某台主频为400mhz的计算机执行标准测试程序

nc 使用-程序员宅基地

文章浏览阅读945次。1. 网络测试1.1 连通性测试# 服务端[centos@localhost apache-tomcat-10.0.14]$ nc -l 12345test123abc# 客户端验证连通性(网络通时)[centos@localhost tomcat]$ nc 192.168.10.6 12345test123abc# 正常接受发送消息,支持双向收发处理。# 客户端验证连通性(网络不通时) [centos@localhost tomcat]$ nc 192.168...

随便推点

Dev-c++Debug,调试程序相关内容(防走坑)_dev c++ debug-程序员宅基地

文章浏览阅读2.3k次,点赞27次,收藏25次。来自小柴“傻逼”的抱怨和debug的好处入门Dev-c++ Debug需更改的操作入门操作后的Debug操作添加的变量为数组或者STL中的容器该如何去操作需要注意的问题和容易出错的点(建议看一下)_dev c++ debug

C# LIST 使用GroupBy分组_c# list groupby-程序员宅基地

文章浏览阅读1w次。https://blog.csdn.net/zhangxiao0122/article/details/88570472根据论坛及博客整理。原有list集合, List<CommodityInfo> commodityInfoList = new List<CommodityInfo>(); public class CommodityInfo { public string StoreID {get; set;} .._c# list groupby

高并发解决方案--负载均衡_高并发下负载调休-程序员宅基地

文章浏览阅读153次。1,什么是负载均衡?当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。下面详细介绍负载均..._高并发下负载调休

使用python采集某二手房源数据并做数据可视化展示(含完整源代码)_链家二手房可视化-程序员宅基地

文章浏览阅读7.2k次,点赞10次,收藏85次。本次目的:python采集链家二手房源数据并做数据可视化展示亮点:系统分析网页性质结构化的数据解析csv数据保存环境介绍:python 3.8 解释器pycharm 专业版2021.2 >>> 激活码 编辑器模块使用:requests >>> pip install requests数据请求 (用python代码 模拟浏览器对于服务器发送请求)parsel >>> pip install parsel数据解析 (提取我_链家二手房可视化

机器视觉行业实践技巧 -- OpenCV技巧与方法:避坑指南_opencv消除反光点-程序员宅基地

文章浏览阅读766次。在机器视觉检测时,经常会遇到需要检测反光的物品,例如:金属、铝箔表面、反光膜片、光滑表面的物品等,这类物品都有同样的特点,就是会发出炫光,这样在检测的时候会影响被测物的特征提取,这个时候需要怎么处理呢?沃德普机器视觉就不一一在这里详细介绍了,如果您在使用机器视觉光源检测的时候,发现特征不明显,也许您需要为您的机器视觉系统重新选择合适的机器视觉光源,或者添加合适的偏振片。(4).采用同轴光源照明:使物体表面反射光和CCD相机在同一轴线上,有效消除图像重影,非常适合与镜面光滑表面的检测。_opencv消除反光点

oracle rac应急_oracle rac数据库-程序员宅基地

文章浏览阅读167次。【Oracle】 RAC 环境删除oracle 之一oracle 11GR2提供了一个自动删除工具deinstall 在$ORACLE_HOME 的deinstall 目录下,使用此工具可以实现卸载oracle 软件,Clusterware 软件和数据库。卸载oracle 之前可以使用dbca 删除数据库,也可以不用删除,deinstall 工具会...文章yangyi_dba2011-09-24..._oracle rac 应急

推荐文章

热门文章

相关标签