模型评估和选择(二)| 学习笔记

简介: 快速学习模型评估和选择。

开发者学堂课程【高校精品课-北京理工大学-数据仓库与数据挖掘(上):模型评估和选择(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/921/detail/15648


模型评估和选择(二)


三、分类器评估的框架

再看一下对分类器的评估的一些框架。

1.Holdout method

首先第一种常用的框架叫做 Holdout 就是留余法,那一般,会把数据分成两部分,其中2/3作为训练集1/23作为测试集。重复上面的过程就可以得到多个训练集合,多个测试集,然后利用每一个训练好的分类集的精度。作为每一轮的精度,然后把每一轮的精度加起来,取平均,就得到这个分类区最终的进度。

图片69.png

2.Cross-validation

和 Holdout method 所对应的,就是 Cross-validation 叫做交叉验证,采用的k值,一般设置为十,也就是说一般是喜欢采用十折交叉验证。

(1)、那对于十折交叉验证来说,它主要是首先对数据集进行有放回的采样,然后将采样后的数据分为k个部分,然后把每一次从k个部分中取一部分作为测试集,其余的作为训练集后,得到一个分类器计算它的精度,然后依次把所有的精度加起来取平均。

(2)那对于 Cross-validation 类型来说,它有一个特例叫做 Leave-one-out,就是留余法语,是指的是在每一次中只取它的一个作为测试集,其余的作为训练集,也就是留余法其实是一种特定的 Cross-validation,它是将数据集划分为K份这个时候k的值是等于数据元素的值。

(3)、这里通过一个图像介绍三折交叉验证。三折交叉验证是属于一次,首先从数据集中,进行有放回的采样,得到一个抽样集,然后把抽样集分为三个部分,每一次取其中的一个部分作为测试集,其余两个部分作为训练集,也就是说,在每一个 fold 中就会得到一个分类器,有三个fold会得到,三个分类器,然后把这三个分类器的,accuracy 去平均得到这一次循环的精度。

(4)那比如说要经过十折,可能抽样十次就会有十个精度,然后把这十个精度再加起来取平均作为分类器的精度。这个是关于 Cross-validation。

图片70.png  

四、orc 曲线

最后介绍如何使用 orc 曲线进行分类器模型的比较和选择。

1. orc 曲线概念

首先来看一下什么是 orc 曲线。Orc 曲线被称之为叫做接收者操作曲线。主要是用来表示每一个分类器,它的真的正事例率和假的正事例率之间的平衡关系。

2. orc 曲线图像及计算

对于 orc 曲线来说,它的个横坐标,代表的是假的正事例率,而它的纵坐标代表是真的正事例率。

(1)、计算。对于假的正事例率是用这样的公式去计算就是 fp÷fp+tn。真的真事例率呢?就是用 tp÷(tp+fn)。在于这个图上就显示了一条 roc 曲线。这种 orc 曲线表示的分类器。

图片71.png

(2)它什么样的曲线代表的是一种好的分类器?用一个对角线表示的是一个随机猜测的一个分类的性能,比如说对于某一个固定的这样的一个 fpr,那肯定是希望,比如在0.3这个 ftr 的基础上,如果这个分类器它的 tpr 越高越好,所以可以利用,曲线下面的面积来代表这个分类器的性能。那如果在固定的这样的一个 fpr 的条件下,它的 tpr 越高,就意味着这个曲线下的面积越大。因此,就把这样的一个orc曲线下的这部分面积,把它称之为叫做 aUC,也就是一个分类器它所对应 orc 曲线的 AOC 面积越大,这个分类器就越好,可以看一下,在图上有两条分类所对应的。

Or c 曲线一个是 a,一个是b。那很明显,b 所对应的这个分类器,它的 AOC 面积比较大,那所以说这个分类器,它肯定是比 a 分类器要好。

图片72.png

3.绘制or c曲线

在了解了 or c 曲线比较分类器的原理之后,就来学习一下如何去绘制 or c 曲线。

对于一个分类器的 roc 曲线来说,它的每一点就是代表了这个分类器的 tpr 和 fpr。

(1)、那如何得到一个分类器的多个的 tpr 和fpr 呢?主要是通过调节它的分类阈值来达到。

(2)、可以对测试级的每一个示例计算它的分 数,这个分数的含义是什么呢?就是指的是这个是的,它被判断为正事例的分数,分数越高就表明它被判断为正事例的可能性越大。

(3)、把这些分数计算出来之后,把它从高到低进行排序,然后一次选择每一个分数作为预值来判断势力的类别,从而可以得到多个 roc 曲线上点,然后再将这些点把它连接起来并平滑就可以得到这个分类区的 or c 曲线。

(4)计算这种分数有多种方法。比如说之前介绍过朴素的贝叶斯分类器,朴素的贝叶斯分类器可以计算每一个事例,它为正事例的概率和为负事例的概率,那可以把它为正事例的概率作为这样的一个 score。还有一些别的其它的方法。

图片73.png 

图片74.png 

(5)那来看一下这个曲线是怎么画的?首先,计算了每一个测试集中它的分数,然后把分数呢从低到高进行排列,首先从得分最高的这个分数来看,那也就是如果设置这个阈值为一的话,如果当它的分数必须要大于等于一的时候,才判断这个事例为正根据这样的一个阈值条件,那我所有的这些数据对象都被划分为了什么负事例,也就意味着 tpr和我的 fpr 的取值都为零就是对应到 or c 曲线上的第一个点。在调整这样的一个阈值假设设0.95为阈值,也就是只有它的分数大于等于0.95才是正事例,这个时候,只有一个事例被判断为正事例,它和它的类别是一致的也就是正确的,这个时候,它的所有的事例都为负事例,所以 fp 的值是零,根据 tp、fp 的值,就可以算出 tp r  和 f pr,对应的这个值就是0.2,比如说它的 tpr 会增加但是 f pr 依然为零。那一次再往前一个阈值设置,设置为0.93的时候就有两个事例被判断为正事例而且这两个事例它的初始的标签,本来就是真的,所以 tp的值是二,所有的事例都被判断为负事例所以f p依然为零如果设置阈值可以得到曲线上的一个点就是(0.4,0),然后再向前,进行阈值的选择到0.87这里,大于等于0.87才是正事例,可以得到三个正事例,其中有两个是被正确判断的,一个是被错误判断的,所以就得到分类器上的另外一个 ro c 曲线上的点,就是(0.4,0.2),依次的取这样的一些阈值,就可以得到若干个点,把这若干个点连接起来,并且进行平滑,就可以得到最后的关于这个分类器的 roc 曲线。

图片75.png 

五、模型选择因素

然后再来看一下,在模型选择中还有一些其它的因素,是需要考虑的。

1.accuracy

那之前主要考虑的是 accuracy 就是分类器的准确度。

2.speed

那其实在模型选择的时候,除了要考虑它的准确率,可能还要考虑这个模型的它的速度,也就是如果这个分类器比较复杂,它的分类准确度可能会比较高,但它的时间需要的时间比较多,速度比较慢,也会考虑是否去选择这个分类器,

3.robustness

其余还需要考虑的就是这个分类器的鲁棒性,就是如果数据中噪音比较多,这个分类器是不是会受比较大的影响。

4.scalability

还有这个可扩展性,也就是数据可能是会更新的,这样的一个分类器,它是不是可以方便的更新,那有可能训练集的数量会非常非常大,这个分类器它是不是对于这种大数据级是不是能够非常快速地进行构建和分类。

5.interpretability

此外,可能还需要考虑这个分类器的可解释性,因为一个分类器它只有具有可解释性,人们才能更好的理解它,才能更好的去利用它,除了之前的一些指标,可能还有一些其它的指标用于帮助去选择分类器。

相关文章
|
存储 网络协议 API
大端与小端概念、多字节之间与单字节多部分的大小端转换详解
大端与小端概念、多字节之间与单字节多部分的大小端转换详解
1085 1
|
Linux BI 网络架构
mtr网络监测工具
mtr网络监测工具
1257 2
mtr网络监测工具
|
小程序 Linux 区块链
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
6294 0
|
9月前
|
JSON JavaScript 前端开发
shpfile转GeoJSON;控制shp转GeoJSON的精度;如何获取GeoJSON;GeoJSON是什么有什么用;GeoJSON结构详解(带数据示例)
在使用Openlayers、leaflet、mapbox等地图控件的时候,GeoJSON几乎是不可避免打交道的数据类型,如果您想要从事gis行业相关的开发工作,本篇文章应该能为您带来一些帮助。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
数据采集 并行计算 大数据
LabVIEW 32位与64位版本比较分析:性能与兼容性详解
LabVIEW 32位与64位版本比较分析:性能与兼容性详解
882 0
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】模型选择中正则化、交叉验证详解及实战应用(超详细 附源码)
【数据挖掘】模型选择中正则化、交叉验证详解及实战应用(超详细 附源码)
500 0
|
人工智能 定位技术
如何将国家地图服务系统的EPS地图转为shp图层
如何将国家地图服务系统的EPS地图转为shp图层
3896 0
|
机器学习/深度学习 监控 Devops
机器学习测试笔记(26)——自动特征选择(下)
机器学习测试笔记(26)——自动特征选择(下)
291 0
机器学习测试笔记(26)——自动特征选择(下)
|
2天前
|
数据采集 人工智能 安全