模型评估与选择

一、经验误差与过拟合

1)错误率:分类错误的样本数占样本总数的比例

2)精度:精度 = 1 一 错误率

3)误差:学习器的实际预测输出与样本的真实输出之间的差异

4)训练误差/经验误差:学习器在训练集上的误差

5)泛化误差:学习器在新样本上的误差


6)过拟合:当学习器把训练样本学得"太好"了的时候,很可能巳经把训练样本自身的一些特点当作了所有潜在样本都
会具有的一般性质,这样就会导致泛化性能下降。这种现象称为过拟合

其中最常见的情况是由于学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了


6.2)过拟合为什么无法避免

机器学习面临的问题通常是NP 难甚至更难,而有效的学习算法必然是在多项式时间内运行完成,若可彻底避免过拟合, 则通过经验误差最小化就能获最优解,这就意味着我们构造性地证明了" P=NP" ;因此 只要相信"p ≠NP " ,过拟合就不可避免


7)欠拟合:是指对训练样本的一般性质尚未学好。。通常是由于学习能力低下而造成的

模型评估与选择


二、模型评估的方法

1)不同的模型:不同的算法;相同的算法,但是不同的参数配置


2)理想的模型选择方案:

对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。。缺陷是没有新样本,无法直接获得泛化误差


3)测试集:从样本中划分出训练集和测试集,以测试误差来近似泛化误差


测试集的划分:(终究是对数据的完整性有影响,要找的潜在规律可能也被影响)

3.1)留出法(hold-out)

直接将数据集D 划分为两个互斥的集合,一个用来训练模型,一个评估


需要注意:

3.1.1)划分比例:大约2/3 到 4/5 的样本用于训练,剩余样本用于测试.

3.1.1)最好分层抽样,也就是训练/测试集的划分要尽可能保持数据分布的一致性

3.1.2)划分的问题,哪些进入训练集,哪些进入测试集,随机还是什么? 所以往往需要多次随机划分,评估结果取平均值


3.2)交叉验证法(cross validation)

先将数据集D 划分为k 个大小相似的互斥子集,每次用k-1 个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集。。k次评估结果取平均值


3.2.1)将数据集D 划分为k 个子集同样存在多种划分方式.为减小因样本划分不同而引入的差别, k 折交叉验证通常要随机使用不同的划分重复p 次,最终的评估结果是这p 次k 折交叉验证结果的均值


3.3)自助法(bootstrapping)

给定包含m 个样本的数据集D,每次有放回取出一个样本,重复m次,构成采样数据集D'


3.3.1)样本在m 次采样中始终不被采到的概率

模型评估与选择

意味着,初始数据集D 中约有36.8% 的样本未出现在采样数据集D'中。

可将D' 用作训练集, D\D' 用作测试集


3.3.2)用处:在数据集较小、难以有效划分训练/测试集时很有用

3.3.3)缺陷:产生的数据集改变了初始数据集的分布,这会引入估计偏差


4)调参

4.1)限制:学习算法的很多参数是在实数范围内取值,因此,对每种参数配置都训练出模型来是不可行的

4.2)做法:对每个参数选定一个范围和变化步长

4.3)验证集:模型评估与选择中用于评估测试的数据集


4.4)最终模型

在模型选择完成后,学习算法和参数配置己选定,此时应该用数据集D 重新训练模型.这个模型在训练过程中使用了所有m 个(所有)样本

原因是训练模型时,划分了一部分作为验证集,也就是说并没有使用所有的数据来训练


5)均方误差

模型评估与选择

更一般的形式如下

模型评估与选择


6)错误率

模型评估与选择

更一般的形式如下

模型评估与选择


7)精度

模型评估与选择

更一般的形式如下

模型评估与选择


8)查准率和查全率

8.1)查准率:检索出的相关文件数量 / 检索出的文件数量

8.2)查全率:检索出的相关文件数量 / 相关文件(不一定全部检索出来了)的总量

8.3)例子:

假设查询q为一个给定的查询式,而包含q的相关文档集Rq为下面的文档集:

Rq={d2,d5,d6,d9,d12,d23,d30,d34,d35} // 相关文件的总数量9

而针对q的检出文档集为:

Aq={d3,d4,d5,d6,d8,d10,d12,d19,d20,d23,d24,d26} //检索出的文件数量12

则Ra集为:(在Aq里面,找出所有在Rq里面的文档)

Ra={d5,d6,d12,d23} //检索出的相关文件的数量4

查准率P,查全率R

 P = 4/12     R = 4/9  


8.4)分类结果混淆矩阵

模型评估与选择


8.5)查准率与查全率之间的关系(大体是个反比)

模型评估与选择

实际上不是这么光滑的曲线,下面这个更现实

模型评估与选择


8.6)P-R图能看出什么

8.6.1)在进行比较时,若一个学习器的P-R 曲线被另一个学习器的曲线完全"包住" , 则可断言后者的性能优于前者

如上图的A曲线包住了C。。。(竖着比查准率比你大,横着比查全率比你大,当然性能比你好)

8.6.2)看平衡点的大小来比较性能。。若是没有完全包住。。比如上面A曲线的平衡点大于B曲线,所以性能更好

8.6.3)用平衡点比不准确,那么比面积吧

8.6.4)面积不好算,那么用F1

模型评估与选择

其中ß>O 度量了查全率对查准率的相对重要性 ß = 1时退化为标准的F1; ß> 1 时查全率有更大影响; ß < 1 时查准率有更大影响.

8.6.5)查准率更重要的情况

为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要

8.6.6)查全率更重要的情况

在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要.


9)ROC与AUC 

ROC与AUC


10)代价敏感错误率与代价曲线

10.1)非均等代价:把正的当成负的,把负的当成正的,这两种错误引发的后果严重性不一样,所以赋予非均等代价

10.2)代价矩阵

模型评估与选择

其中costi,j 表示将第i类样本预测为第j类样本的代价。cost10与cost01的代价比值越大,相差程度越大

10.3)代价敏感错误率

模型评估与选择


10.4)代价曲线的横轴是取值为[0,1]的正例代价,其中p是样本为正例的代价

模型评估与选择

10.5)代价曲线的纵轴是取值为[0,1]的归一化代价

模型评估与选择

其中FPR 是假正例率, FNR = 1 - TPR 是假反例率.


10.6)代价曲线的画法

老实说,我并不知道为什么要这么画?为什么面积就是总体代价了?不知道有没有路过的大神

ROC 曲线上每点对应了代价平面上的一条线段。设ROC 曲线上点的坐标为(TPR, FPR) ,则可相应计算出FNR,然后在代价平面上绘制一条从(0, FPR) 到(1 , FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价;

如此将ROC 曲线土的每个点转化为代价平面上的一条线段,然后
取所有线段的下界,围成的自积即为在所有条件下学习器的期望总体代价

模型评估与选择