淘先锋技术网

首页 1 2 3 4 5 6 7

过拟合

当学习器把训练样本学得"太

好"了的时候,很可能巳经把训练样本自身的一些特点当作了所有潜在样本都

会具有的一般性质,这样就会导致泛化性能下降这种现象在机器学习中称为

"过拟合" (overfitting). 与"过拟合"相对的是"欠拟合" (underfitting) ,这

是指对训练样本的一般性质尚未学好.

留出法

"留出法" (hold-out)直接将数据集D 划分为两个互斥的集合?其中一个

集合作为训练集5,另一个作为测试集T, 即D=BUT, 5 门T= 正~.在S 上训

练出模型后,用T 来评估其测试误差,作为对泛化误差的估计.S、T 中样本类别比例差别很大,则误差估计将由于训练/测试数据分布的差异

而产生偏差.

交叉验证法

"交叉验证法" (cross validation)先将数据集D 划分为k 个大小相似的

互斥子集, 即D = D1 U D2υ... U Dk, Di n Dj = ø (í 手j ) . 每个子集Di 都

尽可能保持数据分布的一致性,即从D 中通过分层采样得到. 然后,每次用

k-1 个子集的并集作为训练集?余F 的那个子集作为测试集;这样就可获得k

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

的均值显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于k

的取值,为强调这一点,通常把交叉验证法称为" k 折交叉验证" (k-fold cross

validat ion). k 最常用的取值是10 ,此时称为1 0 折交叉验证; 其他常用的k 值

有5、20 等.图2.2 给出了10 折交叉验证的示意图.

留一法

{院假定数据集 D 中包含 m 个样本3 若令 k=m , 则得到了交叉验证法的一

个特例:留一法(Leave- One-Ot比,简称LOO) . 显然, 留一法不受随机样本划分

方式的影响,因为m 个样本只有唯一的方式划分为m 个子集一一每个子集包含

一个样本;留一法使用的训练集与初始数据集相比只少了一个样本,这就使得

在绝大多数情况下,留一法中被实际评估的模型与期望评估的用D 训练出的模

型很相似.因此,留一法的评估结果往往被认为比较准确.然而,留一法也有其

缺陷:在数据集比较大时,训练m 个模型的计算开销可能是难以忍受的(例如数

据集包含1 百万个样本,则需训练1 百万个模型),而这还是在未考虑算法调参

的情况下.另外,留一法的估计结果也未必永远比其他评估方法准确;"没有免

费的午餐"定理对实验评估方法同样适用.

"自助法

"自助法" (bootstrapping)是一个比较好的解决方案,它直接以自助采样

法(bootstrap sampling) 为基础[Efron and Tibshirani, 1993]. 给定包含m 个样

本的数据集D , 我们对它进行采样产生数据集D': 每次随机从D 中挑选一个

样本7 将其拷贝放入DF' 然后再将该样本放回初始数据集D 中,使得该样本在

下次采样时仍有可能被采到;这个过程重复执行m 次后?我们就得到了包含m

个样本的数据集DF,这就是自助采样的结果.显然, D 中有一部分样本会在D'

中多次出现,而另一部分样本不出现.可以做一个简单的估计,样本在m 次采

样中始终不被采到的概率是(1 一去)m , 取极限得到

即通过自助来样,初始数据集D 中约有36.8% 的样本未出现在采样数据集D'

中.于是我们可将D' 用作训练、集, D\D' 用作测试集;这样?实际评估的模型与

期望评估的模型都使用m 个训练、样本,而我们仍有数据总量约1/3 的、没在训

练集中出现的样本用于测试.这样的测试结果,亦称"包外估计" (out-of-bag

estimate).

调参

大多数学习算法都有些参数(parameter) 需要设定,参数配置不同,学得模

型的性能往往有显著差别.因此,在进行模型评估与选择时,除了要对适用学习

算法进行选择,还需对算法参数进行设定,这就是通常所说的"参数调节"或

简称"调参" (parameter tuning).现实中常用的做法?是对每个参数选定一个

范围和变化步长,例如在[0 , 0.2] 范围内以0.05 为步长,则实际要评估的候选参

数值有5 个,最终是从这5 个候选值中产生选定值.显然,这样选定的参数值往

往不是"最佳"值,但这是在计算开销和性能估计之间进行折中的结果,通过

这个折中,学习过程才变得可行

验证集

另外,需注意的是,我们通常把学得模型在实际使用中遇到的数据称为测

试数据,为了加以区分,模型评估与选择中用于评估测试的数据集常称为"验

证集" (validation set). 例如,在研究对比不同算法的泛化性能时,我们用测试

集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分

为训练集和验证集,基于验证集上的性能来进行模型选择和调参.

性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需

要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure).

性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往

往会导致不同的评判结果;这意味着模型的"好坏"是相对的,什么样的模型

是好的?不仅取决于算法和数据,还决定于任务需求.

均方误差

在预测任务中?给定样例集D = {(X1, Y1) , (X2 , 的), . . . , (Xm, Ym)} , 其中饥

是示例Xi 的真实标记.要评估学习器f 的性能,就要把学习器预测结果I(x)

与真实标记υ 进行比较.

回归任务最常用的性能度量是"均方误差" (mean squared error)

 

错误率和精度

本章开头提到了错误率和精度?这是分类任务中最常用的两种性能度量,

既适用于二分类任务,也适用于多分类任务.错误率是分类错误的样本数占样

本总数的比例,精度则是分类正确的样本数占样本总数的比例.对样例集D , 分

查准率亦称"准确卒"

查全卒亦称"召回率"

类似的需求在信息检索、Web搜索等应用中经常出现?例如在信息检索

中,我们经常会关心"检索出的信息中有多少比例是用户感兴趣的" u 用

户感兴趣的信息中有多少被检索出来了

率" (reca叫all) 是更为适用于此类需求的性能度量.

真正例(true positive) 、假正例(false positive) 、真反倒(true negative) 、

假反例(false negative)

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划

分为真正例(true positive) 、假正例(false positive) 、真反倒(true negative) 、

假反例(false negative) 四种情形,令TP 、FP 、TN 、FN 分别表示其对应的

样例数,则显然有TP+FP+TN+FN=样例总数.分类结果的"泪淆矩

阵" (co时usion matrix) 如表2.1 所示

" P-R 曲线""平衡点"

在很多情形札我们可根据学习器的预测结果对样例进行排序,排在前面

的是学习器认为"最可能"是正例的样本?排在最后的则是学习器认为"最

不可能"是正例的样本.按此顺序逐个把样本作为正例进行预测,则每次可以

计算出当前的查全率、查准率以查准率为纵轴、查全率为横轴作图,就得到

了查准率-查全率曲线,简称" P-R 曲线"显示该曲线的图称为" P-R图" 图

2 .3 给出了一个示意图.

P-R 图直观地显示出学习器在样本总体上的查全率、查准率.在进行比较

时?若一个学习器的P-R 曲线被另一个学习器的曲线完全"包住" , 则可断言

后者的性能优于前者, 例如图2 . 3 中学习器A 的性能优于学习器C; 如果两个

学习器的P-R 曲线发生了交叉7 例如图2 . 3 中的A 与B ,则难以-般性地断言

两者孰优孰劣?只能在具体的查准率或查全率条件下进行比较然而,在很多情

形下,人们往往仍希望把学习器A 与B 比出个高低. 这时一个比较合理的判据

是比较P-R 曲线节面积的大小,它在一定程度上表征了学习器在查准率和查全

率上取得相对"双高"的比例.但这个值不太容易估算, 因此7 人们设计了一些

综合考虑查准率、查全率的性能度量.,"平衡点" (Break-Event Point,简称BEP)就是这样一个度量,它是" 查

准率=查全率"时的取值3 例如图2.3 中学习器C 的BEP 是0 . 64,而基于BEP

的比较,可认为学习器A 优于B .

 

 

分类阔值

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与

一个分类阔值(threshold)进行比较,若大于|词值则分为正类,否则为反类.例

如,神经网络在一般情形下是对每个测试样本预测出一个[0.0 ,1. 0] 之间的实值,

然后将这个值与0.5 进行比较,大于0.5 则判为正例,否则为反例.这个实值或

概率预测结果的好坏,直接决定了学习器的泛化能力.实际上?根据这个实值或

概率预测结果,我们可将测试样本进行排序,"最可能"是正例的排在最前面,

"最不可能"是正例的排在最后面.这样,分类过程就相当于在这个排序中以

某个"截断点" (cut point)将样本分为两部分,前一部分判作正例,后一部分则

判作反例.

ROC

ROC 全称是"受试者工作特征" (Receiver Operating Characteristic) 曲

线7 它源于"二战"中用于敌机检测的雷达信号分析技术,二十世纪六七十

年代开始被用于→些心理学、医学检测应用中?此后被引入机器学习领域

[Spackman, 1989]. 与2.3.2 节中介绍的P-R 曲线相似?我们根据学习器的预

测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算

出两个重要量的值,分别以它们为横、纵坐标作图'就得到了"ROC 曲线

与P卫-R 曲线使用查准率、查全率为纵、横轴不同, ROC 曲线的纵轴是"真正

例率" (True Positive Rate,简称TPR) ,横轴是"假正例率" (False Positive

Rate,简称FPR) ,基于表2.1 中的符号,两者分别定义为

 

"非均等代价"

在现实任务中常会遇到这样的情况:不同类型的错误所造成的后果不同.

例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者,

看起来都是犯了"一次错误"但后者的影响是增加了进→步检查的麻烦,前

者的后果却可能是丧失了拯救生命的最佳时机;再如,门禁系统错误地把口J通

行人员拦在门外,将使得用户体验不佳,但错误地把陌生人放进门内,则会造成

严重的安全事故.为权衡不同类型错误所造成的不同损失,可为错误赋予"非

均等代价" (unequa1 cost).

代价敏感

回顾前面介绍的一些性能度量可看出,它们大都隐式地假设了均等代价,

例如式(2 .4)所定义的错误率是直接计算"错误次数",并没有考虑不同错误会

造成不同的后果.在非均等代价下,我们所希望的不再是简单地最小化错误次

数,而是希望最小化"总体代价" (total cost). 若将表2.2 中的第0 类作为正

类、第1 类作为反类?令D+ 与D一分别代表样例集D 的正例子集和反例子

集,则"代价敏感" (cost-sensitive)错误率为

E (f; D; cost) =二|艺II (f (叫)向) xωtQ1

\X; ξ D+

+ L 1I(f (Xi) 向i) XωstlO I . (2.23)

Xi 巳D一/

类似的,可给出基于分布定义的代价敏感错误率,以及其他一些性能度量

如精度的代价敏感版本.若令costij 中的4 、j 取值不限于0 、1 ,则可定义出多

分类任务的代价敏感性能度量.

最小二乘法

均方误差有非常好的几何意义?它对应了常用的欧几里得距离或简称"欧

氏距离" (Euclidean distance). 基于均方误差最小化来进行模型求解的方法称

为"最小二乘法" (least squ町e method). 在线性回归中,最小A乘法就是试图

找到一条直线,使所有样本到直线上的欧氏距离之和最小.

信息熵