博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
西瓜书-第2章-模型评估选择
阅读量:4282 次
发布时间:2019-05-27

本文共 2016 字,大约阅读时间需要 6 分钟。

目标模型是怎样的?

如果把训练样本自身的一些特点当做了所有潜在样本都具有的特质,就会导致泛化性能下降,这称之为过拟合,与之相对的,称为欠拟合,这是指一般性质尚未学好。

把不太一般的特性都学到了,就过拟合了,一般的特性没学到就欠拟合了。

比如模型认为绿色并且带锯齿才是树叶,那么遇到不带锯齿的树叶就会被认为不是树叶,这是过拟合

如果认为所有绿色的都是树叶,那么遇到绿色的大树也会被认为是树叶,这就是欠拟合

我们能做的是把经验误差最小化,但是我们想要的却是让泛化误差最小化。

由于我们不能评估泛化误差,所以我们使用“测试集”来测试学习器对新样本的判别能力,以测试集上的“测试误差”作为“泛化误差”的近似。

测试样本尽量不在训练集中出现、未在训练过程中使用过,这样才能把测试误差近似为泛化误差,否则测试误差就近似于经验误差了。

评估方法,评估测试误差,怎么评估?比如训练1000次,每10次训练进行一次测试,总共100次测试的误差均值(准确率)就是这个模型的测试误差(准确率),模型的测试误差均值越小(准确率越高),泛化能力越好。

评估方法(不如说是介绍了训练/测试集的划分方法)

留出法:将样本集的2/3~4/5的样本用于测试,剩余的用于测试,两个集合尽量互斥,且正反例的比例均匀。

留一法:只保留一个样本用作测试,但是数据量大时,需要训练太多模型。

交叉验证法:比如划分为10个(k个) 大小相似的互斥子集,每次用其中的9个作为训练集,剩余1个作为测试集,那么可以有10种(k种) 取法(即:10个(k个)训练/测试集),这种方法称之为10(k)折交叉验证

n次k折验证:对样本集重新划分10个(k个)互斥子集10次(n次),分别进行10(k)折交叉验证,就叫做10(n)次10(k)折验证

自助法:每次从样本集D(m个样本)中取一个样本,取出后再放回去,取m次得出采样数据集D,那么始终没被取到的概率是(1-1/m)m,m无穷大时,(1-1/m)m=1/e约等于0.386,即通过自助采样,初始样本集D中约有36.8%没出现在采样数据集D中,那么D就作为训练样本集,D/D作为测试集,约占数据总量的1/3。

数据量难划分训练测试集时,自助法很有用。

数据量充足时,留出法交叉验证更常用一些。

调参:调参和算法选择没什么区别,都是把对应最好模型的参数作为结果,通常会选定实数范围,和步长,最终在这选定的候选值中产生选定值。

性能度量(这里才介绍真正的性能评估方法)

不同的任务需求,在评估模型的性能时,使用不同的性能度量会导致不同的评判结果

回归任务,最常用的性能度量是“均方误差”。

分类任务,使用的性能度量有错误率或者精度等。

分类任务,还有更多的性能度量:

  比如有些分类任务需求,希望查准率(Precision) 高,有些则希望查全率(Recall) 高,而查准率和查全率是一对矛盾的度量,我们又可能希望权衡查准率和查全率,这就有了平衡点(BEP:查准率等于查全率时的取值) 这个度量,更好用些的F1度量= 2PR/P+R,加上一个权重w,Fw= (1+w2)PR/(w2P)+R;当w>1时,分母的P被放大,F1会偏小,因而想要F1更大就需要R(查全率)更大些。当w<1时,则更看中P(查准率)。当w=1时就是标准的F1了。
  分别求出所有P和R,这些P和R平均值叫宏查准率(macro-P)宏查全率(macro-R),由它们求出的叫宏F1(macro-F1)
  先求出所有TP、FP、TN、FN的平均值,进而求出的P和R分别叫微查准率(micro-P)微查全率(micro-R),由它们求出的叫微F1(micro-F1)

ROC曲线和AUC面积:有些学习器(比如神经网络)是为测试样本产生一个实值或概率预测值,然后将这个预测值与一个分类阈(yu:第四声)值进行比较,大于阈值为正类,小于为反类。

ROC曲线横轴是假正例率,纵轴是真正例率,AUC面积越大,性能越好。
真正例率:预测对的正例数量/所有正例的真实数量=TP/TP+FN
假正例率:预测错的正例数量/所有反例的真实数量=FP/TN+FP

代价敏感错误率与代价曲线:在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”则可达到目的。赋予不同类别预测错误的代价值(costij,代价值越大,损失越大。

比较检验(性能度量接近的学习器,可通过以下检验比较,并能给出此结果的可信程度)

假设检验:对单个学习器的泛化错误率进行某种判断(测试结果应当符合正态分布)。

交叉验证t检验:对不同学习器的性能进行比较
McNemar检验:对二分类的不同学习器的性能进行比较
Freidman检验和Nemenyi后续检验:在一组数据集对多个算法进行性能比较

偏差与方差

偏差-方差分解:是解释泛化性能的一种重要工具

转载地址:http://yibgi.baihongyu.com/

你可能感兴趣的文章
WEB模糊查询注意的问题(排除%等通配符并支持不连续关键字查询)
查看>>
PostgreSQL中表的阶层数据取得方法
查看>>
如何用产品思维迭代项目管理流程?(创业有感)
查看>>
Linux ALSA 声卡驱动之一:ALSA架构简介
查看>>
Linux ALSA 声卡驱动之二:声卡的创建
查看>>
Linux ALSA 声卡驱动之三:PCM设备的创建
查看>>
Linux ALSA 声卡驱动之四:Control设备的创建
查看>>
Linux ALSA 声卡驱动之五:移动设备中的ALSA(ASoc)
查看>>
Linux ALSA 声卡驱动之六:ASoc架构中的Machine
查看>>
Linux ALSA 声卡驱动之七:ASoc中的Codec
查看>>
android电池系统
查看>>
android4.x 耳机插拔检测机制
查看>>
Android 4.x耳机插拔检测实现方法
查看>>
android修改开机动画和铃声
查看>>
android audio音量控制流程
查看>>
解密回声消除技术之一(理论篇)
查看>>
Speex编解码在Android上实现
查看>>
speex回音消除
查看>>
audio 声道路由策略分析
查看>>
Android Audio 代码分析- Audio Strategy
查看>>