欢迎大家来到IT世界,在知识的湖畔探索吧!
2.1经验误差与过拟合
错误率(error rate)——分类错误的样本占样本总数的比例 E=a/m
精度(accuracy)——1-错误率
误差(error)——学习器的实际预测输出与样本的真实输出之间的差异
我们希望泛化误差最小,实际上我们事先并不知道新样本的特征,只能努力使经验误差最小化。
误差率为0的学习器多数情况下并不好。
过拟合(overfitting)——学习器把训练样本学习的“太好”,即把训练样本本身的一些特点当初所有潜在样本的一般特性,导致泛化性能下降。
过拟合无法避免,只能缓解。
a.优化目标加正则项
b.early stop
欠拟合(underfitting)——对训练样本的一般性质尚未学好。
欠拟合容易克服。
a.在决策树学习中扩展分支
b.在神经网络学习中增加训练轮数
模型选择问题:
理想方案——选择泛化误差最小的模型
现实——无法直接获得泛化误差
2.2评估方法
以测试集来测试学习器对新样本的判别能力,以测试误差来作为泛化误差的近似。
测试集尽可能与训练集互斥,即测试样本尽量不要出现在训练集中、未在训练过程中使用过(学生测验的例子,学习器“举一反三”)。
2.2.1留出法(hold-out)
将数据集D划分为两个互斥的集合,训练集S和测试集T;
训练/测试集划分应尽可能保持数据分布的一致性(避免数据划分过程产生额外偏差而对最终结果产生影响);
一般采用若干次随机划分、重复实验评估去平均值(单次留出法结果不准确)
S/T的取值一般为2:1~4:1。
e.g.
2.2.2交叉验证法(cross validation)
将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子集作为测试集,最终返回k个测试结果的均值,k最常用的取值是10。
与留出法类似,将数据集D划分为k个子集同样存在多种划分方式,为了减小因样本划分不同而引入的差别,k折交叉验证通常随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的“10次10折交叉验证”。
若数据集D包含m个样本,k=m称作“留一法”(leave-one-out,LOO),该方法不受样本划分方式的影响;结果往往比较准确;数据集较大时,计算开销过大。
留一法的评估方法未必比其他评估算法准确。
2.2.3自助法
以自助采样法为基础,对数据集D有放回采样m次得到训练集D’,D\D’用做测试集。
实际模型与预期模型都使用m个训练样本
约有1/3的样本没在训练集中出现
优点
数据集较小,难以划分训练、测试集时很有用;
能从原始数据集产生多个不同训练集,对集成学习等有很大好处。
缺点
改变了原始数据集分布,会引入估计误差。
因此,在初始数据量足够时,留出法和交叉验证法更常用。
2.3性能度量(performance measure)
性能度量——衡量模型泛化能力的评价标准,反映了任务需求;使用不同的性能度量往往会导致不同的评判结果。
在预测任务中,给定样例集
要评估学习器的性能f,就是把预测结果f(x)和真实标记y进行比较。
回归任务最常用的性能度量是“均方误差”:
2.3.1错误率与精度
错误率——分类错误的样本数占样本总数的比例
精度——分类正确的样本数占样本总数的比例
样例集D
分类错误率
分类精度
数据分布D和概率密度函数p(·):
2.3.2查准率、查全率与F1
信息检索、Web搜索等场景中经常需要衡量预测出来的正例中正确的比率或者正例被预测出来的比率,此时查准率(precision)和查全率(recall)比错误率和精度更适合。
对于二分类问题,可以根据真实类别与预测类别组合得到“混淆矩阵”(TP—true positive、FN—falsepositive)。
查准率和查全率是一对矛盾的度量。
例如,希望尽可能多的好瓜被选出来,就加大选瓜数量,将所有西瓜都选上,这样好瓜数量也能增大,但是查准率就比较低;希望选出来瓜好瓜比率尽可能高,可以只挑选有把握的瓜,这样查全率就比较低。
根据学习器的预测结果按正例可能性大小对样例进行排序,并逐个把样本作为正例进行预测,则可以得到查准率-查全率曲线,简称“P-R曲线”。
通常一个学习器的PR曲线被另一个包围,认为后者优于前者,但交叉的时候就难以断言,合理判断是根据PR下面积,但是面积难以判断,因此设计综合考虑度量:平衡点(Break-Even Point,BEP)是曲线上“查准率=查全率”时的取值,可用来度量P-R曲线有交叉的分类器性能高低。
比P-R曲线平衡点更常用的是F1度量:
2.3.3 ROC与AUC
类似P-R曲线,根据学习器的预测结果对样例排序,并逐个作为正例进行预测,以“假正例率”为横轴,“真正例率”为纵轴可得到ROC曲线,全称“受试者工作特征”(receiver operatingcharacteristic)。
通常一个学习器ROC曲线被另一个包围,认为后者优于前者。但交叉的时候就难以断言。合理判断是根据ROC下面积–AUC(area underROC curve),形式化的看AUC考虑的是样本预测的排序质量,与排序误差有紧密联系。
2.3.4代价敏感错误率与代价曲线
现实任务中不同类型的错误所造成的后果很可能不同(医疗诊断和门禁系统),为了权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”(unequal cost)。
以二分类为例,可根据领域知识设定“代价矩阵”,其中costij表示将第i类样本预测为第j类样本的代价,损失程度越大,cost01与cost10值的差别越大。
在非均等代价下,不再最小化错误次数,而是最小化“总体代价”,则“代价敏感”(cost-sensitive)错误率为
在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”可以。
代价曲线的横轴是取值为[0,1]的正例概率代价
其中p是样例中为正例的概率;
纵轴是取值为[0,1]的归一化
其中PNR是假正例率。
ROC曲线上每个点对应了代价曲线上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)(1,FNR的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为所有条件下学习器的期望总体代价。
2.4比较检验
性能比较影响因素:
a.测试性能并不等于泛化性能
b.测试性能随着测试集的变化而变化
c.机器学习算法的随机性
2.4.1假设检验
采用统计假设检验推断学习器A泛化性能是否在统计意义上优于B,并且把握多大。
二项检验
t检验
多次重复留出法或者交叉验证法进行多次训练/测试时可使用“t检验”
平均测试错误率μ和方差σ²为
多次重复训练/测试获得的k个测试错误率可看做泛化错误率
的独立采样,则变量
服从自由度为k-1的t分布
2.4.2交叉验证t检验
对不同学习器的性能进行比较。
5*2交叉验证法
5*2折交叉验证就是做5次二折交叉验证,每次二折交叉验证之前将数据打乱,使得5次交叉验证中的数据划分不重复。
为缓解测试数据错误率的非独立性,仅计算第一次2折交叉验证结果的平均值
和每次二折实验计算得到的方差
变量
服从自由度为5的t分布。
2.4.3McNemar检验
列联表:估计学习器A、B的测试错误率;获得两学习分类结果的差别,两者都正确,都错误或者一个正确一个错。
Friedman检验
Friedman检验在一组数据集上对多个算法进行比较。
假定用D、D2、D3、D4四个数据集对ABC进行比较,由好到坏排序,并赋予序值1,2,……
Nemenyi后续检验
进行”后续检验”来进一步区分个算法,常用的有Nemenyi后续检验。
Nemenyi检验计算出平均序值差别的临界值域
如果两个算法的平均序值之差超出了临界阈值CD,则以相应的置信度拒绝“两个算法性能相同”这一假设。
Friedman检验图
横轴为平均序值,每个算法圆点为其平均序值,线段为临界阈值的大小。
2.5偏差与方差
偏差-方差分解——解释学习算法泛化性能的一种重要工具。
偏差
对测试样本x,令yD为x在数据集中的标记,y为x的真实标记,f(x;D)为训练集D上学得模型f在x上的预测输出。
以回归任务为例,学习算法的期望预测为
使用样本数目相同的不同训练集产生的方差为
噪声为
期望输出与真实标记的差别称为偏差(bias),即
假定噪声期望为0,通过简单的多项式展开合并,可对算法的期望泛化误差进行分解
即泛化误差可分解为偏差、方差和噪声之和。
偏差度量了学习算法期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
方差度量了同样大小训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务为了取得好的泛化性能,需要使偏差小(充分拟合数据)而且方差较小(减少数据扰动产生的影响)。
方差
偏差和方差是有冲突的,称为偏差-方差窘境。
训练不足时,由偏差主导泛化错误率;训练充足时,有方差主导泛化错误率。
本文部分内容参考《机器学习》—周志华配套课件
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22775.html