模型评估与选择

2.1 经验偏差与过拟合


错误率(error rate):分类错误的样本数占总样本数的比例算法

精度(accuracy)= 1 - 错误率bootstrap

偏差(error):学习器的实际预测输出与样本的真实输出之间的差别app

训练偏差(training error)/经验偏差(empirical error):学习器在训练集上的偏差机器学习

泛化偏差(generalization error):学习器在新样本上的偏差函数

过拟合(overfitting):学习器将训练样本学习得太好,而致使泛化性能降低的现象性能

欠拟合(underfitting):对训练样本的通常性质还没有学好学习

选择模型时(model selection),理想的解决方案是对候选模型的泛化偏差进行评估,而后选择泛化偏差最小的。然而,泛化偏差没法直接得到,这就引出模型评估与选择问题。测试

2.2 模型评估与选择


为评估泛化偏差而一般采用的方法为实验测试,即便用一个测试集来测试学习器对新样本的判断能力,而后将测试集上的测试偏差(testing error)做为泛化偏差的近似。通常状况下,假设测试集样本是从样本真实分布iid采样获得。值得注意的是,采用此方法时,测试集应尽量与训练集互斥。spa

经过对数据集D={(x1,y1),(x2,y2),...,(xm,ym)}进行处理,能够获得训练集S与测试集T。处理方法包含如下几类:3d

a. 留出法(hold-out)

直接将D划分为互斥的集合S与T,值得注意的是,划分时要保证S与T的数据分布一致性。另外一个问题是,即使给出了S与T的比例,仍然存在对D的多种分割方式,采不一样的分割方式的评估策略间会有差别。通常将2/3~4/5的样本用于训练,剩下的用于测试,采用若干随机划分、重复进行实验后取平均值做为留出法的评估结果。

b. 交叉验证法(cross validation)

先将D划分为k个大小类似的互斥子集,即

每一个子集Di都尽量保持数据分布一致性,即从D中分层采样获得。而后,每次用k-1个子集做为训练集,余下的那个子集做为测试集。最终返回k组测试的均值。

交叉验证法的结果的稳定性和保真性很大程度上取决于k的取值,所以又称为“k折交叉验证”(k-fold cross validation)。一般取k=10。

设D包含m个样本,令k=m,则获得交叉验证法的一个特例:留一法(Leave-One-Out, LOO)。留一法不受随机样本划分方式的影响。另外,在绝大多数状况下,留一法中被实际评估的模型与指望评估的用D训练出的模型很类似,所以其评估结果每每认为比较准确。缺陷是:数据集较大时,训练m个模型的开销太大,以及NFL定理对留一法一样适用。

c. 自助法(bootstrapping)

自助法以自助采样(bootstrap sampling)为基础[Efron and Tibshirani, 1993],即给定包含m个样本的数据集D,对其随机采样产生数据集D‘:每次随机挑选一个样本,将其拷贝放入D',再将样本放回D中,使得该样本在下次采样时仍可能被采集到;此过程重复n次后,获得了包含m个样本的D'。作一个简单的估计,样本在m次采样中始终不被采集到的几率是(1-1/m)m,取极限获得1/e≈0.368。所以,经过自助采样,D中36.8%的样本未出如今D‘中。因而能够将D'用做训练集,将D\D'用做测试集。这样的测试结果亦称为“包外估计”。

自助法适用于数据集较小、难以有效划分训练/测试集的状况。以及,它能够从初始数据集中产生多个不一样的训练集,这对集成学习算法比较有用。缺陷是,因为改变了初始数据集分布,自助法会引入估计误差。所以,在数据量足够时,留出法与交叉验证法更经常使用。

d. 调参与最终模型

大多数学习算法有参数设定。所以在评估、选择模型时,除了选择算法,还须要调整参数(parameter tuning)。经常使用的作法是为每一个参数选定范围和步长。强大的学习算法须要大量的参数设定,以至在许多任务中,参数设定对模型的性能有关键性影响。

在选定学习算法和参数后,应当用数据集D从新训练模型。

事实上,咱们一般把模型在实际应用中遇到的数据称为“测试数据”,为加以区分,将评估测试时的数据集称为“验证集”(validation set)。

2.3 性能度量


性能度量(performance measure)的含义是衡量模型泛化能力的评价标准。在预测任务中,评估学习器ƒ的性能,就是要把学习器预测结果ƒ(x)与真实标记y比较。

回归任务最经常使用性能度量为“均方偏差”(mean squared error):

更通常的,对于数据分布D和几率密度函数p(•),均方偏差能够描述为

2.3.1 错误率与精度

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

精度则定义为

更通常的,对于数据分布D和几率密度函数p(•),错误率与精度能够分别描述为

 

2.3.2 查准率,查全率与F1

错误率与精度不能知足全部任务要求。这样的需求在信息检索、Web搜索等应用中十分常见。例如,当咱们想要知道“检索出的信息中有多少比例是用户感兴趣的”,或者“用户感兴趣的信息中有多少被检索出来”时,错误率是不够用的。为此,引入“查准率”(precision)与“查全率”(recall)性能度量。

对于二分问题,能够将样例根据其真实类别与学习器预测类别的组合,划分为四种情形:

  • 真正例(true positive)
  • 假正例(false positive)
  • 真反例(true negative)
  • 假反例(false positive)

获得分类结果的“混淆矩阵”(confusion matrix):

 

用TP,FP,TN,FN分别表示其对应的样例数,则有TP+FP+TN+FN=样例总数。因而,查准率P与查全率R分别定义以下:

值得注意的是,查全率与查准率是一对矛盾的度量;其中一者高时,另外一者每每比较低。

不少情形下,能够根据学习器的预测结果对样例进行排序,学习器认为“最可能”是正例的样本排在前。按此顺序把样本做为正例预测,能够计算出当前的查全率、查准率。以查准率为纵轴,查全率为横轴,获得显示“P-R曲线”的“P-R图”(以下图,图取自书中):

进行比较时,若一个学习器的P-R曲线被另外一个学习器的曲线彻底“包住”,则能够断言后者的性能优于前者。对于曲线交叉的状况,则能够比较将面积的大小。

但面积一般不太容易计算,因而引入“平衡点”(Break-Event Point, BEP)做为性能度量,即P=R时的取值。取值越高,认为学习器的性能越好。

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

F1是基于查准率与查全率的调和平均定义的(harmonic mean)。与几何平均与算术平均相比,调和平均更注重较小值。

当查准率与查全率并非同等重要时,能够采用F1度量的通常形式——Fβ

Fβ是加权调和平均(对1/R加权β2)。其中β>0度量了查全率对查准率的相对重要性;β>1时查全率有更大影响,β<1时查准率有更大影响,β=1是退化为F1。

如何在n个二分混交矩阵上综合考虑查准率与查全率?

一种方法是先算出查准率与查全率,再取平均,获得:

宏查准率(macro-P

宏查全率(macro-R

F1(macro-F1)

 

另外一种方法是先对TP、TN、FP、FN取平均,再计算查准率、查全率、F1,获得:

微查准率(micro-P

 

微查全率(micro-R

 

 

F1(micro-F1)

 

2.3.3 ROC与AUC

ROC全称为“受试者工做特征”(Receiver Operating Characteristic)曲线,源于二战中雷达信号分析技术,后引入机器学习[Spackman,1989]。

根据学习器为样本产生的几率预测,对样本进行排序:“最可能”是正例的排在前,“最不可能”是正例的排在后。分类过程至关于在对样例的排序中插入“截断点”(cut point),前一部分判为正例,后一部分判为反例。在不一样应用任务中,可根据任务需求的不一样采用不一样的截断点。所以,这个排序自己的好坏,体现了综合考虑学习器在不一样任务下“指望泛化性能”的好坏。ROC曲线从这个角度出发研究学习器泛化性能。

如上一段所述,咱们将样例排序,按此顺序逐个把样本做为正例进行预测,每次计算出两个重要的值:“真正例率”(True Positive Rate, TPR)“假正例率”(False Positive Rate, FPR),分别做为横轴和纵轴做图,就获得ROC曲线。其中

  

 

ROC曲线的做图方法详见书p.34。

与P-R图类似,若一个学习器的ROC曲线被另外一个学习器的曲线包住,则能够断言后者性能优于前者。曲线发生交叉时,能够比较ROC曲线下的面积,即AUC(Area Under ROC Curve)。

AUC考虑样本预测的排序质量。给定m+个正例和m-个反例,则有

 

其中lrank为排序的“损失”(loss),定义以下:

2.3.4 代价敏感错误与代价曲线

 现实任务中,不一样的错误会形成不一样的结果。为权衡不一样类型的错误形成的不一样损失,可为错误赋予“非均等代价”(unequal cost)

 例如,在二分任务中,能够获得下述”代价矩阵“(cost matrix):

在非均等代价下,咱们但愿作的再也不是简单地最小化错误次数,而是但愿最小化“整体代价”(total cost)。例如,若将上表中第0类做为正类,第一类做为反类,令D+和D-分别表明正例子集和反例子集,则“代价敏感”(cost-sensitive)错误率

 

在非均等代价下,ROC曲线不能直接反映出学习器的指望整体代价,而“代价曲线”(cost curve)则能够达成目的。代价曲线的横轴是取值为[0,1]的正例几率代价

 

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

 

 

其中FNR=1-FPR是假反例率。代价曲线的绘制方法见书p.36。

相关文章
相关标签/搜索