1. 数据集划分
1.1 留出法(hold - out):直接将数据集D划分成两个互斥的集合,训练集S、测试集T,即 ,
,T来评估测试误差,作为泛化误差的估计。常用的方法是2/3~4/5的样本用于训练,剩余的用于测试。
EX :D中包含1000个样本,S为700,T为300,T上有90个样本分类错误,则错误率为(90/300)*100% = 30%,精度为1-30% = 70%。
1.2 交叉验证法(cross validation) 先将数据集D划分成k个大小相似的互斥子集,即,
,每个子集
都尽可能保持数据分布的一致性,从D中通过分层采样得到,然后每次k-1个子集的并集作为训练集,余下的子集作为测试集;这样可以获得k组训练/测试集,从而进行k次训练和测试,最终返回k个结果的均值。显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,为强调这一点,通常把交叉验证法称为“k折交叉验证”(k - fold cross validation),k通常取值是10, 其他常用为5,20等。
与留出法类似,数据集D划分为k个子集同样存在多种划分方式,为减少因样本划分不同而引入的差别,k折交叉验证通常随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,常见的有“10次10折交叉验证”
“留一法”(Leave - One - out, LOO)假定数据集D中包含m个样本,令k = m。显然LOO不受随机样本划分的影响,因为m个样本只有唯一的方式划分为m个子集--每个子集包含一个样本,LOO的评估结果比较准确,缺点是计算量比较大。
1.3 自助法(Boostrapping)直接以自主采样(bootstrap sampling)为基础,包含m个样本的数据集D,对它进行采样产生数据集: 每次随机从D中挑选出一个样本,将其拷贝放入
,然后再将该样本放回初始数据集D中,使得该样本在一次采样时仍有可能被采到;重复m次后,就得到包含m个样本的数据集
,这就是bootstrap sampling的结果,显然D中有一部分样本会在
中多次出现,而另一部分样本不出现,做一个简单的估计,样本在m次采样中始终不被采到的概率是
,极限得到,
, 即通过自主采样,初始数据集D中约有36.8%的样本未出现在采样数据集
中,于是我们可将
作为训练集,
\
用作测试集;这样实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有1/3的、没在训练集中出现的样本用于测试,这样的测试结果,称为“包外估计”(out - of - bag estimate)
1.4 调参与最终模型
“调参” parameter tuning
训练数据划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。
2. 性能度量
在预测任务中,给定样例集 = {
}, 评估学习器
的性能,即把学习器预测结果
与真实标记
进行比较。
回归任务最常用“均方误差” mean squared error ,
对于数据分布和概率密度函数
,均方误差可描述为
2.1 错误率与精度
错误率和精度是分类任务中最常用的性能度量,适用于二分类与多分类。错误率是分类错误的样本数占样本总数的比例,精度则是分类正确的样本数占样本总数的比列,对样本集D,
分类错误率 ,
指示函数, 真取1 假取0,
精度则为 =
2.2 查准率、查全率与F1
对于二分类问题,可将样本根据其真是类别与学习器预测类别的组合划分为真正例(true positive), 假正例(false positive)、真反例(true negative)、假反例(false negative)四种,令TP、 FP、TN、FN分别表示对应的样例数,有 样例总数。
mnist 任务是否为“5”的混淆矩阵

查准率 ,查全率
, P和R是一对矛盾的度量,P高时,R往往偏低, 而R高时,P往往偏低,通常只有在一些简单任务中,才能使查全率和查准率都很高。
以查准率为纵轴、查全率为横轴作图, 得到“查准率-查全率曲线” 建成“P-R曲线”

综合考虑查准率P、查全率R的性能度量
“平衡点”(break-even point ,BEP)它是查准率 = 查全率时的取值,但是BEP过于简化,
更常用F1 度量, F1是基于查准率和查全率的调和平均(harmonic mean)定义:
,
=
, n 是样例总数
,
是加权调和平均。与算数平均(
)和几何平均
相比,调和平均更重视较小值。
在商品推荐中,为了尽可能少打扰用户,更希望推荐内容是用户感兴趣的,此时查准率更重要;逃犯信息检索更看中查全率。, 查准率precision, 查全率 recall.
2.3 ROC 与AUC
受试者工作特征 ROC , 根据学习器的预测结果对样例进行排序,按照顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值, 分别以它们的横、纵坐标作图,即ROC曲线,ROC曲线的纵轴是“真正例率”(True Positive Rate, TPR),横轴是“假正例率”(False Positive Rate, FPR)
,

3. 比较检验
几种常用的机器学习性能比较方法,默认以错误率为性能度量,
3.1 假设检验
现实任务中我们并不知道学习器的泛化错误率,只能获知其测试错误率, 泛化错误率与测试错误率未必相同,可以通过测试错误率推出泛化错误率的分布。泛化错误率为
的学习器在一个样本上犯错的概率是
;测试错误率
表示m个测试样本中恰有
个被误分类,假定测试样本是从样本总体分布中独立采样而得,
3.2 交叉验证t检验
对于学习器A和B, 若使用k折交叉验证法得到的测试错误率分别为和
, 其中
和
是在相同的第i折训练/测试集上的结果,则可同k折交叉验证“成对t检验”(paired t-tests)来进行比较检验,这里的基本思想是,若两个学习器性能相同,则
。
***t 检验:假定我们有k个测试错误率, , 则平均测试错误率
和方差
为:
,
考虑k个测试错误率可看作泛化错误率的独立采样,则变量

“交叉验证t检验”,具体来说,对k折交叉验证产生的k对测试错误率,先对每对结果求差根据差值
来对“学习器A和B性能相同”假设做t检验,计算出差值的均值
和方差
,在显著度
下,若变量
小于临界值
,则假设不能被拒绝,认为两个学习器的性能没有显著差别,否则两个学习器的性能有显著差别,且平均误差率较小的学习器性能更优,这里
是自由度为
的
分布上尾部累积分布为
的临界值。
有效的假设检验,一个重要前提是测试错误率均为泛化错误率的独立采样,然而通常情况下,在使用交叉验证等实验估计方法时,不同轮次的训练集会有一定程度的重叠,这样使得测试错误率实际上并不独立,会导致过高估计假设成立的概率。采用“5X2交叉验证”, 5次2折交叉验证,在每次2折交叉验证之前将随机数据打乱,使得5次交叉验证中的数据划分不重复,对两个学习器A和B,第i次2折交叉验证将产生两对测试错误率,分别对他们求差,得到第1折的差值和第2折的差值
, 为缓解测试错误率的非独立性,仅计算第1次2折交叉验证的两个结果的平均值
,但对每次两折的结果都计算出其方差
, 变量
,服从自由度为5的t分布,其双边检验的临界值
当
时为2.5706,
时为2.0150.
4.偏差与方差
“偏差-方差分解”bias -variance decomposition 是解释学习算法泛化性能的一种重要工具。对测试样本x,为x在数据集中的标记,y为x的真实标记,
为训练集D学得模型f在x上的预测输出。
回归任务中,学习算法的期望预测为,
方差 var(x) =
噪声
期望输出与真实标记的差别称为偏差(bias),
对期望泛化误差进行分解 =
+
+
偏差度量了学习算法的期望预测与真实结果的偏离程度,刻画了学习算法本身的拟合能力。
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
噪声则表达了当前任务上任何学习算法所能达到的期望泛化误差的下届,即刻画了学习问题本身的难度。
偏差-方差分解说明,泛化性能是由学习算法的能力,数据的充分性和学习任务本身的难度所共同决定的,给定学习任务,为了取得好的泛化性能,则需使偏差较小,能够充分拟合数据。并且使方差较小,使得数据扰动产生的影响小。

网友评论