2.0 模型评估与选择

目录

2.1 经验误差与过拟合

2.1.1 误差相关概念

2.1.2 过拟合(过配)与欠拟合(欠配)

2.2、评估方法

2.2.1 留出法

2.2.2 交叉验证法

2.2.3 自助法

2.2.4 调参与最终模型

2.3、性能度量

2.3.1 回归任务性能度量(待续)

2.3.2 分类任务的性能度量

          错误率与精度 : 

          查准率、查全率与Fl:

          F1 度量:

2.3.3 ROC与 AUC

2.3 .4代价敏感错误率与代价曲线

2.4 比较检验

2.5 偏差与方差


2.1 经验误差与过拟合

2.1.1 误差相关概念

错误率(error  rate) :即分类错误的样本数占样本总数的比例,即如果在 m 个样本中有 a 个样本分类错误,则错误率 E= α/m.

精度:1-a/m 称为"精度" (accacy) ,即"精度=1 一错误率".常写成百分比形式(1-a/m)*100%.

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

训练误差(经验误差):学习器在训练集上的误差.

泛化误差(generalization  error):在新样本上的误差

测 试数据:学得模型在实际使用中遇到的数据

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

2.1.2 过拟合(过配)与欠拟合(欠配)

过拟合当学习器把训练样本学得"太 好"了的时候,很可能巳经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,从而导致泛化性能下降的现象.-------不易克服,无可避免.(若可彻底避免过拟合, 则通过经验误差最小化就能获最优解,这就意味着我们构造性地证 明了“ P=NP" ;因此 只要相信 "P≠NP ”,过拟合不可避免).

欠拟合:与过拟合相对,是指对训练样本的一般性质尚未学好.-------易克服.

产生原因:有多种因素可能导致过拟合,其中最常见的情况是由于学习能力过于强大, 以至于把训练样本所包含的不太一般的特性都学到了,而欠拟合则通常是由 于学习能力低下而造成的.

二者对比如图所示:

2.2、评估方法

通常, 我们可通过实验测试来 学习器的泛化误差进行评估并进而做出选择, 为此, 需使用一个 "测试集 (testing set) 测试学习器对新样本的判别 ,然后 测试 上的"测试误差" (testing error) 作为泛化误差的近似,通常,我们假设测试样本也是从样本真实分布 中独立同分布采样而得,但需注意 是,测试集应该尽可能与训练 即测试样本尽量不在训练集中出现、未在练习过程中使用过.(好比同平常练习的题目拿去测验一样,这很可能检测不出学生的真实水平)

2.2.1 留出法

"留出法" (hold-out) 直接将数据集D划分为两个互斥的集合,其中一个 集合作为训练集 S,另一个作为测试集 T,即D=S∪T ,S∩T=∅,在S上训 练出模型后,用T来评估其测试误差,作为对泛化误差的估计.

以二分类任务为例,假定 包含 1000 个样本,将其划分为 包含 700 个样本,T包含 300 个样本,用 进行训练后,如果模型在 上有 90 个样本分类错 误,那么其错误率为 (90/300) x 100% 30% ,相应的,精度为 1- 30% = 70%.

注:训练/测试集的划分要尽可能保持数据分布的一致性,则保留类别比例的采样方式通常称为"分层采样" .常见做法是将大约2/3~ 4/5 样本用于训练,剩余样本用 测试.

2.2.2 交叉验证法

"交叉验证法" (cross alidation) 将数据 集D分为 个大小相似的 互斥子集,即D = D1 ∪D2... U Dk,  Di n∩Dj = ∅ (í ≠j) .每个子集 Di尽可保持数据分布的一致性,即从D中 通过分层采样得到。 然 后,每次用 k-1 子集的并集作为训练集,的那个子集作测试集;这样就可获得k

组训练 /测试集,从而可进行k 次训练和测试,最终返回的是这k个 测试结果 的均值.

注:交叉验证法评估结果的稳定性和保真性在很大程 度上取决于k的取值,为强调这一点,通常把交叉验证法称为 “k折交叉验证" (k-fold cross validation)

留一法:

院定数据集 D中包含m个样本 ,若令k=m 则得到了交叉验证法的 一个特例: 留 一法(Leave- One-Out, 简称 LOO.

  • 留一法的评估结果往往被认为比较准确
  • 缺陷是计算复杂度高.

2.2.3 自助法

在留出法和交叉验证法中,由于 保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比 小,这 必然会引入一些因训练样本规模不同而导致的估计偏差.留一法受训练样本规 模变化的影响较小,但计算复杂度又太高了,为了减少训练样 本规模不同造成的影响,同时还能比较高效地进行实验估计,提出了自助法.

原理:给定包含m个样 本的数据集A我们对它进行采样产生数据集 B: 每次随机从A中挑选一个 样本 将其拷贝放入 B 然后再将该样本放回初始数据集 A中,使得该样本在 下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含 m个样本的数据集 B.以B作为训练,而没被采样(不包含在B)的样本用来测试.

样本在m次采 样中始终不被采到的概率取极限得到:

  • 自助法在数据集较小、难以有效划分训练/测试集时很有用
  • 自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差

2.2.4 调参与最终模型

  • 大多数学习算法都有些参数(parameter) 需要设定,参数配置不同,学得模 型的性能往往有显著差别. 即调参.
  • 学习算法的很多参数是在实数范围内取值,因此,对每种参数 配置都训练出模型来是不可行的.现实中常用的做法?是对每个参数选定一个 范围和变化步长,例如在 [0 0.2] 范围内以 0.05 为步长,则实际要评估的候选参 数值有5 个.
  • 先用一部分数据集训练,另一部分测试,在得出模型后后(算法和参数),再用所有样本进行训练得出最终模型.
  • 训练数据另外划分 为训练集和验证集,基于验证集上的性能来进行模型选择和调参.
  • 基于验证集上的性能来进行模型选择和调参.

 

2.3、性能度量

2.3.1 回归任务性能度量(待续)

要评估学习器 的性能,就要把学习器预测结果 f(x) 与真实标记 进行比较.

如均方误差

样本值(yi,即真实标记)与平均值之差的平方的平均值

 

 

 

 

 

更一般的,对于数据分布D和概率密度函数 p(.) 均方误差可描述为:

 

 

 

 

 

 

 

2.3.2 分类任务的性能度量

错误率与精度 : 

错误率是分类错误的样本数占样 本总数的比例,精度则是分类正确的样本数占样本总数的比例,

对样例集D,分类错误率定义为:

注:II:表示示性函数,表示当括号内条件成立时取值为1,否则为0.常用于查准率和查全率等

精度则定义为:

更一般的,对于数据分布 D和概率密度函数 p(.) 错误率与精度可分别描 述为:

查准率、查全率与Fl:

通俗来讲,以挑选西瓜为例:

  • 查准率(准确率):即选出的好瓜中真正是好瓜的比率,检索出的信息中有多少比例是用户感兴趣的.
  • 查全率(召回率):所有瓜中好瓜被选出的比率,户感兴趣的信息中有多少被检索出来了.

假设二分类问题分类结果混淆矩阵如下:

则查准率P 与查全率R 分别定义为:

查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往 偏低;  而查全率高时,查准率往往偏低,解读如下:

若希望将好瓜尽可能多地选出来, 则可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低;若希望选 的瓜中好瓜比例尽可能 高,则可只挑选最有把握的瓜 但这样就难免会漏掉不少好瓜,使得查全率较 低.

P- R 与  P-R图:

在很多情形札我们可根据学习器的预测结果对样例进行排序,排在前面 的是学习器认为"最可能 "是正例的样本,排在最后的则是学习器认为"最 不可能"是正例的样本.按此顺序逐个把样本作为正例进行预测,则每次可以 计算出当前的查全率、 查准率以查准率为纵轴、查全率为横轴作图 ,就得到 了查准率 查全率曲线,简称 P- R曲线,显示该 曲线的图称为 P-R,如下图:

  • 若一个 习器的 P-R 曲线被另一个学习器的曲线完全"包住 则可断言 后者的性能优于前者, 如图学习器A的性能优于学习器 C.
  • 如果两个 学习器 P-R 曲线发生了交叉 ,例如图中的A和B ,则难以一般性地断 言两者孰优孰劣.个比较合理的判据 是比较 P-R 曲线下面积的大小.
  • 而基于 BEP 的比较,可认为学习器A优于B

"平衡点 (Break-Event Point ,简称 BEP)就是这样一个度量,它是" 查准率= 查全率".

 

F1 度量:

但BEP 还是过于简化了些,更常用的是 F1 度量:

注:P:查准率   R:查全率    TP:真正例   TN:真假例

F1 度量的一般形式 -Fß' 能让我们表达出对查准率/查全率的不同偏 好,它定义为

ß>O 度量了查全率对查准率的相对重要性.

  • ß = 1  时退化为标准的 F1.
  • ß >  1时查全率有更大影响.
  • ß < 1时查准率有更大影响.

当我们希望在 个二分类混淆矩阵上综合考察查准率和查全率时.

一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率,再计算平均值,这样就得到"宏查准 率" (macro-P)"宏查全率" (macro-R) 以及相应的"宏F1" (macro-F1).

还可先将各泪淆矩阵的对应元素进行平均,得到 TP,FP, TN ,FN的平均值,再基于这些平均值计算出"微查准 "(micro P) 、"微查全率" (micro-R) 和"F1" (micro-F1):

 

2.3.3 ROC与 AUC

ROC

ROC 曲线的纵轴是"真正例率" (True Positive Rate ,简称 TPR) 横轴是"假正例率" (False Positive Rate ,简称 FPR) ,两者分别定义为:

AUC:

与P-R 图相似:

  • 一个学习器的 ROC 曲线被另一个学习器的曲线完全"包住", 则可断言后者的性能优于前者;
  • 两个学习器的ROC 曲线发生交叉,则难以-般性地断言两者孰优孰劣 此时如果一定要进 行比较 则较为合理的判据是 比较 ROC 线下 的面积,即AUC (Area Under ROC Curve)

从定义可知, AUC 通过对 ROC 线下各部分的面积求和而得,假定ROC 曲线是由座标为 {(Xl yl), (X2, Y2) , . . . , (xm, Ym)} 的点按序连接而形成(X1 =0, Xm = 1) 上图(b) ,则 AUC 可估算为:

形式化地看, AUC 考虑的是样本预测的排序质量,因此它与排序误差有紧 密联系.给定 M+个正例和M-个反例,令 D+ 和D-分别表示正、反例集合, 则排序"损失" (loss) 定义为:

 

即考虑每一对正、反例,若正例的预测值小于反例,则记一个"罚分,若相等等,则记0.5 个"罚分"容易看出 损失(Lrank) 对应的是 ROC 曲线之上的面积:若 一个正例在 ROC 曲线上对应标记点的座标为 (x,y),则x 恰是排序在其之前的 反例所占的比例,即假正例率。因此有:

 

2.3 .4代价敏感错误率与代价曲线

为权衡不同类型错误所造成的不同损失,可为错误赋予"非均等代价" (unequal cost)。

比如:在现实任务中常会遇到这样的情况:不同类型的错误所造成的后果不同。例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者, 看起来都是犯了"一次错误"但后者的影响是增加了进→步检查的麻烦,前 者的后果却可能是丧失了拯救生命的最佳时机。

一般来说重要的是代价比值而非绝对值,比如5:1和50:10是一样的。

代价敏感" (cost-sensitive) 错误率:就是在非均等代价下,考虑了代价的错误率。

 

代价曲线:

在非均等代价下, ROC 曲线不能直接反映出学习器的期望总体代价,而 "代价曲线" (cost curve) 则可达到该目的。代价曲线图的横轴是取值为 [0 1] 的正例概率代价。

其中 是样例为正例的概率;纵轴是取值为 [0 1] 的归一化代价

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

代价曲线的绘制很简单: ROC 由线上每一点对应了代价平面上的二条线段 ,设ROC曲线上点的座标为 (TPR,FPR) ,则可相应计算出 FNR,然后在代价平面上绘制 一条从 (O,FPR) 到(l1,FNR) 的线段,线段下的面积即表示了该条件下的期望 总体代价;如此将 ROC 曲线土的每个点转化为代价平面上的一条线段,然后 取所有线段的下界,围成的自积即为在所有条件下学习器的期望总体代价,如图:

 

2.4 比较检验

为我们进行学习器性能比较提供了重要依据,主要有:

  1. 假设检验
  2. 交叉验证 t 检验
  3. McNemar 检验
  4. Friedman 检验与 Nnenyi 后续检验

 

2.5 偏差与方差

对学习算法除了通过实验估计其泛化性能,人们往往还希望了解它"为什 么"具有这样的性能"偏差方差分解" (bias-variance decomposition) 是解 释学习算法泛化性能的一种重要工具。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章